Closes #193.
Unified · Split
| @@ -120,6 +120,7 @@ class app.Searcher · 119 unmodified lines | ||
| 120 | 120 | |
| 121 | 121 | EMPTY_STRING = '' |
| 122 | 122 | ELLIPSIS = '...' |
| 123 | + STRING = 'string' | |
| 123 | 124 | |
| 124 | 125 | @normalizeString: (string) -> |
| 125 | 126 | string |
| @@ -209,9 +210,15 @@ class app.Searcher · 83 unmodified lines | ||
| 209 | 210 | matcher = @matcher |
| 210 | 211 | for [0...@chunkSize()] |
| 211 | 212 | value = @data[@cursor][@attr] |
| 212 | − valueLength = value.length | |
| 213 | − if score = matcher() | |
| 214 | − @addResult @data[@cursor], score | |
| 213 | + if value.split # string | |
| 214 | + valueLength = value.length | |
| 215 | + @addResult(@data[@cursor], score) if score = matcher() | |
| 216 | + else # array | |
| 217 | + score = 0 | |
| 218 | + for value in @data[@cursor][@attr] | |
| 219 | + valueLength = value.length | |
| 220 | + score = Math.max(score, matcher() || 0) | |
| 221 | + @addResult(@data[@cursor], score) if score > 0 | |
| 215 | 222 | @cursor++ |
| 216 | 223 | return |
| 217 | 224 | |
| @@ -6,6 +6,7 @@ class app.models.Entry extends app.Model · 5 unmodified lines | ||
| 6 | 6 | constructor: -> |
| 7 | 7 | super |
| 8 | 8 | @text = app.Searcher.normalizeString(@name) |
| 9 | + @text = applyAliases(@text) | |
| 9 | 10 | |
| 10 | 11 | fullPath: -> |
| 11 | 12 | @doc.fullPath if @isIndex() then '' else @path |
| @@ -32,3 +33,27 @@ class app.models.Entry extends app.Model · 20 unmodified lines | ||
| 32 | 33 | |
| 33 | 34 | loadFile: (onSuccess, onError) -> |
| 34 | 35 | app.db.load(@, onSuccess, onError) |
| 36 | + | |
| 37 | + applyAliases = (string) -> | |
| 38 | + if ALIASES.hasOwnProperty(string) | |
| 39 | + return [string, ALIASES[string]] | |
| 40 | + else | |
| 41 | + words = string.split('.') | |
| 42 | + for word, i in words when ALIASES.hasOwnProperty(word) | |
| 43 | + words[i] = ALIASES[word] | |
| 44 | + return [string, words.join('.')] | |
| 45 | + return string | |
| 46 | + | |
| 47 | + @ALIASES = ALIASES = | |
| 48 | + 'angular.js': 'ng' | |
| 49 | + 'backbone': 'bb' | |
| 50 | + 'c++': 'cpp' | |
| 51 | + 'coffeescript': 'cs' | |
| 52 | + 'javascript': 'js' | |
| 53 | + 'jquery': '$' | |
| 54 | + 'knockout.js': 'ko' | |
| 55 | + 'lodash': '_' | |
| 56 | + 'markdown': 'md' | |
| 57 | + 'postgresql': 'pg' | |
| 58 | + 'sass': 'scss' | |
| 59 | + 'underscore.js': '_' | |
| @@ -7,13 +7,16 @@ app.templates.helpPage = """ · 6 unmodified lines | ||
| 7 | 7 | <ul class="_toc-list"> |
| 8 | 8 | <li><a href="#search">Search</a> |
| 9 | 9 | <li><a href="#shortcuts">Keyboard Shortcuts</a> |
| 10 | + <li><a href="#abbreviations">Abbreviations</a> | |
| 10 | 11 | </ul> |
| 11 | 12 | </div> |
| 12 | 13 | |
| 13 | 14 | <h2 class="_lined-heading" id="search">Search</h2> |
| 14 | 15 | <p> |
| 15 | 16 | The search is case-insensitive and supports fuzzy matching (for queries longer than two characters). |
| 16 | − For example, searching <code class="_label">bgcp</code> brings up <code class="_label">background-clip</code>. | |
| 17 | + For example, searching <code class="_label">bgcp</code> brings up <code class="_label">background-clip</code>.<br> | |
| 18 | + Abbreviations are also supported (<a href="#abbreviations">full list</a> below). | |
| 19 | + For example, <code class="_label">$</code> is an alias for <code class="_label">jQuery</code>. | |
| 17 | 20 | <dl> |
| 18 | 21 | <dt id="doc_search">Searching a single documentation |
| 19 | 22 | <dd> |
| @@ -102,4 +105,14 @@ app.templates.helpPage = """ · 82 unmodified lines | ||
| 102 | 105 | </dl> |
| 103 | 106 | <p class="_note"> |
| 104 | 107 | <strong>Tip:</strong> If the cursor is no longer in the search field, press backspace or |
| 105 | − continue to type and it will refocus the search field and start showing new results. """ | |
| 108 | + continue to type and it will refocus the search field and start showing new results. | |
| 109 | + | |
| 110 | + <h2 class="_lined-heading" id="abbreviations">Abbreviations</h2> | |
| 111 | + <p>Feel free to suggest new abbreviations on <a href="https://github.com/Thibaut/devdocs/issues/new">GitHub</a>. | |
| 112 | + <table class="_abbreviations"> | |
| 113 | + <tr> | |
| 114 | + <th>Word | |
| 115 | + <th>Alias | |
| 116 | + #{("<tr><td>#{key}<td>#{value}" for key, value of app.models.Entry.ALIASES).join('')} | |
| 117 | + </table> | |
| 118 | +""" | |
| @@ -381,6 +381,12 @@ · 380 unmodified lines | ||
| 381 | 381 | @extend %label; |
| 382 | 382 | } |
| 383 | 383 | |
| 384 | +// | |
| 385 | +// Abbreviations | |
| 386 | +// | |
| 387 | + | |
| 388 | +._abbreviations td { @extend %code; } | |
| 389 | + | |
| 384 | 390 | // |
| 385 | 391 | // Utilities |
| 386 | 392 | // |