Refactor
:my
=>
'code'
Codes
Refactorings
Popular
Best
Submit
Spam
Account
Logout
Login
JavaScript doesn't seem to be activated, expect things to be ugly and sloppy!
More Jobs
Recent
Displaying numbers to words.
Williams Words
Doing a 'blank?' in named_scope
Factoring Integers
Filterting a List<> with a Regular Expression
Converting Textile to S5
Efficiently load a text file into a sorted String Array
Cheap ruby block templating
Bindings on caller
Initial script execution very slow and skewing results
Popular
Displaying numbers to words.
Filterting a List<> with a Regular Expression
Efficiently load a text file into a sorted String Array
Factoring Integers
Doing a 'blank?' in named_scope
Converting Textile to S5
Williams Words
Caching Methods
Cheap ruby block templating
How to find max, min of three numbers?
Pastable version of
Markdown-like editor
<div style="overflow:auto;border:solid 1px #ccc;background:#000;color:#F8F8F8"> <div class="section"> <pre style="float:left;margin:0 10px;border-right:0;color:#666;">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204</pre> <pre class="sunburst"><span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">toHTML</span>(<span style="color:#3E87E3;">code</span>) { code <span style="color:#E28964;">=</span> removeTags(code) code <span style="color:#E28964;">=</span> convertTables(code) code <span style="color:#E28964;">=</span> convertLists(code) code <span style="color:#E28964;">=</span> removeBlankLines(code) code <span style="color:#E28964;">=</span> convertHeaders(code) code <span style="color:#E28964;">=</span> convertParagraphs(code) code <span style="color:#E28964;">=</span> convertNewLines(code) code <span style="color:#E28964;">=</span> convertLinks(code) code <span style="color:#E28964;">=</span> convertBolds(code) code <span style="color:#E28964;">=</span> convertItalics(code) <span style="color:#E28964;">return</span> code } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Removes any html code blocks by encoding '<' and '>'</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">removeTags</span>(<span style="color:#3E87E3;">code</span>) { code <span style="color:#E28964;">=</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span>><span style="color:#E9C062;">/</span>g</span>,<span style="color:#65B042;"><span style="color:#65B042;">"</span>&gt;<span style="color:#65B042;">"</span></span>) <span style="color:#E28964;">return</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span><<span style="color:#E9C062;">/</span>g</span>,<span style="color:#65B042;"><span style="color:#65B042;">"</span>&lt;<span style="color:#65B042;">"</span></span>) } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Removes blank lines such that there is at most one blank line between texts</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">removeBlankLines</span>(<span style="color:#3E87E3;">code</span>) { <span style="color:#E28964;">return</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span><span style="color:#CF7D34;">\n</span><span style="color:#CF7D34;">\n</span>+<span style="color:#CF7D34;">\n</span><span style="color:#E9C062;">/</span>gm</span>,<span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#DDF2A4;">\n</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span>) } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Takes links in the format of "link text":[link (with spaces)] and converts</span> <span style="color:#AEAEAE;font-style:italic;"> * it to a valid href link</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">convertLinks</span>(<span style="color:#3E87E3;">code</span>) { <span style="color:#E28964;">return</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span>"([^"]*)":<span style="color:#CF7D34;">\[</span>([^<span style="color:#CF7D34;">\]</span>]*)<span style="color:#CF7D34;">\]</span><span style="color:#E9C062;">/</span>gm</span>,<span style="color:#99CF50;">function</span>(match,text,url) { <span style="color:#E28964;">return</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><a href=<span style="color:#DDF2A4;">\"</span><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>url<span style="color:#E28964;">+</span><span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#DDF2A4;">\"</span>><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>text<span style="color:#E28964;">+</span><span style="color:#65B042;"><span style="color:#65B042;">"</span></a><span style="color:#65B042;">"</span></span> }) } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Takes headers in the form of "h#. Header Text" and surrounds them with</span> <span style="color:#AEAEAE;font-style:italic;"> * <h#> tags</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">convertHeaders</span>(<span style="color:#3E87E3;">code</span>) { <span style="color:#E28964;">return</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span>^[hH](<span style="color:#CF7D34;">\d</span>). *(.*) *<span style="color:#E9C062;">/</span>gm</span>,<span style="color:#99CF50;">function</span>(match,number,text) { <span style="color:#E28964;">return</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><h<span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>number<span style="color:#E28964;">+</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>text<span style="color:#E28964;">+</span><span style="color:#65B042;"><span style="color:#65B042;">"</span></h<span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>number<span style="color:#E28964;">+</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>><span style="color:#65B042;">"</span></span> }) } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Replaces any new lines that do not signify a new paragraph with <br> tags</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">convertNewLines</span>(<span style="color:#3E87E3;">code</span>) { <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/*</span>return code.replace(/(?!\n)/gm,function(match,text) {</span> <span style="color:#AEAEAE;font-style:italic;"> return text+"<br>"</span> <span style="color:#AEAEAE;font-style:italic;"> })<span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#E28964;">return</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span>(.| )$<span style="color:#CF7D34;">\n</span>(?!(<span style="color:#CF7D34;">\n</span>|<))<span style="color:#E9C062;">/</span>gm</span>,<span style="color:#99CF50;">function</span>(match,text) { <span style="color:#E28964;">return</span> text<span style="color:#E28964;">+</span><span style="color:#65B042;"><span style="color:#65B042;">"</span><br><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span> }) } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Takes any block of text not already converted into HTML and surrounds it with</span> <span style="color:#AEAEAE;font-style:italic;"> * <p> tags. A block of text is one which has a blank line either preceding or</span> <span style="color:#AEAEAE;font-style:italic;"> * proceding it.</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">convertParagraphs</span>(<span style="color:#3E87E3;">code</span>) { <span style="color:#E28964;">return</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span>^<span style="color:#CF7D34;">\n</span>?(([^<<span style="color:#CF7D34;">\n</span>]|<span style="color:#CF7D34;">\n</span>(?!<span style="color:#CF7D34;">\n</span>)| )*)<span style="color:#E9C062;">/</span>gm</span>,<span style="color:#99CF50;">function</span>(match,text) { <span style="color:#E28964;">if</span>(text) <span style="color:#E28964;">return</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#DDF2A4;">\n</span><p><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>text<span style="color:#E28964;">+</span><span style="color:#65B042;"><span style="color:#65B042;">"</span></p><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">return</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#65B042;">"</span></span> }) } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Converts text surrounded by two consecutive '*' into bolded text with</span> <span style="color:#AEAEAE;font-style:italic;"> * <strong> tags</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">convertBolds</span>(<span style="color:#3E87E3;">code</span>) { <span style="color:#E28964;">return</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span><span style="color:#CF7D34;">\*</span><span style="color:#CF7D34;">\*</span>(.+)<span style="color:#CF7D34;">\*</span><span style="color:#CF7D34;">\*</span><span style="color:#E9C062;">/</span>gm</span>,<span style="color:#99CF50;">function</span>(match,text) { <span style="color:#E28964;">return</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><strong><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>text<span style="color:#E28964;">+</span><span style="color:#65B042;"><span style="color:#65B042;">"</span></strong><span style="color:#65B042;">"</span></span> }) } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Converts text surrounded by a single '*' into italics text with <em> tags</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">convertItalics</span>(<span style="color:#3E87E3;">code</span>) { <span style="color:#E28964;">return</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span><span style="color:#CF7D34;">\*</span>(.+)<span style="color:#CF7D34;">\*</span><span style="color:#E9C062;">/</span>gm</span>,<span style="color:#99CF50;">function</span>(match,text) { <span style="color:#E28964;">return</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><em><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>text<span style="color:#E28964;">+</span><span style="color:#65B042;"><span style="color:#65B042;">"</span></em><span style="color:#65B042;">"</span></span> }) } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Takes blocks of text which look like the below and form them into a valid</span> <span style="color:#AEAEAE;font-style:italic;"> * HTML table. Pipes ('|') signify the start of a new cell</span> <span style="color:#AEAEAE;font-style:italic;"> * Forward-slashes ('/') signify the end of a row</span> <span style="color:#AEAEAE;font-style:italic;"> *</span> <span style="color:#AEAEAE;font-style:italic;"> * | cell 1 | cell 2 /</span> <span style="color:#AEAEAE;font-style:italic;"> * | cell 3 | cell 4 /</span> <span style="color:#AEAEAE;font-style:italic;"> *</span> <span style="color:#AEAEAE;font-style:italic;"> * <table></span> <span style="color:#AEAEAE;font-style:italic;"> * <tr></span> <span style="color:#AEAEAE;font-style:italic;"> * <td>cell 1</td><td>cell 2</td></span> <span style="color:#AEAEAE;font-style:italic;"> * </tr></span> <span style="color:#AEAEAE;font-style:italic;"> * <tr></span> <span style="color:#AEAEAE;font-style:italic;"> * <td>cell 3</td><td>cell 4</td></span> <span style="color:#AEAEAE;font-style:italic;"> * </tr></span> <span style="color:#AEAEAE;font-style:italic;"> * </table></span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">convertTables</span>(<span style="color:#3E87E3;">code</span>) { <span style="color:#E28964;">return</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span><span style="color:#CF7D34;">\|</span>(.|<span style="color:#CF7D34;">\n</span>(?!<span style="color:#CF7D34;">\n</span>))*<span style="color:#CF7D34;">\/</span><span style="color:#E9C062;">/</span>g</span>,<span style="color:#99CF50;">function</span>(match) { match <span style="color:#E28964;">=</span> match.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span>^<span style="color:#CF7D34;">\|</span> *(?=.)<span style="color:#E9C062;">/</span>gm</span>,<span style="color:#65B042;"><span style="color:#65B042;">"</span><tr><td><span style="color:#65B042;">"</span></span>) match <span style="color:#E28964;">=</span> match.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span> *<span style="color:#CF7D34;">\|</span> *(?=.)<span style="color:#E9C062;">/</span>gm</span>,<span style="color:#65B042;"><span style="color:#65B042;">"</span></td><td><span style="color:#65B042;">"</span></span>) match <span style="color:#E28964;">=</span> match.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span> *<span style="color:#CF7D34;">\/</span>$<span style="color:#E9C062;">/</span>gm</span>,<span style="color:#65B042;"><span style="color:#65B042;">"</span></td></tr><span style="color:#65B042;">"</span></span>) <span style="color:#E28964;">return</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><table><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>match<span style="color:#E28964;">+</span><span style="color:#65B042;"><span style="color:#65B042;">"</span></table><span style="color:#65B042;">"</span></span> }) } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Let a list Item be defined by " *[-*+]|([a-zA-Z0-9](.|\))) *"</span> <span style="color:#AEAEAE;font-style:italic;"> * Let the number of spaces before a list Item be the Item Rank</span> <span style="color:#AEAEAE;font-style:italic;"> * Let the subness of a list be its Order</span> <span style="color:#AEAEAE;font-style:italic;"> *</span> <span style="color:#AEAEAE;font-style:italic;"> * Let there be a relational list between previous Ranks and their Order called R/O-Prev</span> <span style="color:#AEAEAE;font-style:italic;"> *</span> <span style="color:#AEAEAE;font-style:italic;"> * If R/O-Prev is empty then Order = 1</span> <span style="color:#AEAEAE;font-style:italic;"> * If the Rank is in R/O-Prev then Order = R/O-Prev[Rank]</span> <span style="color:#AEAEAE;font-style:italic;"> * If the Rank is greater than previous then the Order is increased by 1</span> <span style="color:#AEAEAE;font-style:italic;"> * If the Rank is lesser than previous then Order = Order associated with the closest but less Rank</span> <span style="color:#AEAEAE;font-style:italic;"> * Association is set in R/O-Prev and all greater Rank associations are nullified</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">convertLists</span>(<span style="color:#3E87E3;">code</span>) { code <span style="color:#E28964;">=</span> code.<span style="color:#DAD085;">replace</span>(<span style="color:#E9C062;"><span style="color:#E9C062;">/</span>^ *[-*+](.|<span style="color:#CF7D34;">\n</span>(?!<span style="color:#CF7D34;">\n</span>))*<span style="color:#E9C062;">/</span>gm</span>,<span style="color:#99CF50;">function</span>(match) { <span style="color:#99CF50;">var</span> html <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#65B042;">"</span></span> <span style="color:#99CF50;">var</span> ranks <span style="color:#E28964;">=</span> [] <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>order = index, rank = ranks[index]</span> <span style="color:#99CF50;">var</span> lists <span style="color:#E28964;">=</span> [] <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>order = index, type = lists[index] = "</ul>" or "</ol>"</span> <span style="color:#99CF50;">var</span> <span style="color:#89BDFF;">getRank</span> = <span style="color:#99CF50;">function</span>(<span style="color:#3E87E3;">arrRanks, curRank</span>) { <span style="color:#E28964;">for</span>(<span style="color:#99CF50;">var</span> i<span style="color:#E28964;">=</span><span style="color:#3387CC;">0</span>;i<span style="color:#E28964;"><</span>arrRanks.<span style="color:#CF6A4C;">length</span>;i<span style="color:#E28964;">++</span>) <span style="color:#E28964;">if</span>(arrRanks[i]<span style="color:#E28964;">==</span>curRank) <span style="color:#E28964;">return</span> i <span style="color:#E28964;">else</span> <span style="color:#E28964;">if</span>(arrRanks[i]<span style="color:#E28964;">></span>curRank) <span style="color:#E28964;">return</span> i<span style="color:#E28964;">-</span><span style="color:#3387CC;">1</span><span style="color:#E28964;">>=</span><span style="color:#3387CC;">0</span>?i<span style="color:#E28964;">-</span><span style="color:#3387CC;">1</span>:<span style="color:#3387CC;">0</span> <span style="color:#E28964;">return</span> arrRanks.<span style="color:#CF6A4C;">length</span> } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>var bullet = /^( *)[-*+]((.|\n *[\w\d])*)/gm</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * ^( *) #number of spaces</span> <span style="color:#AEAEAE;font-style:italic;"> * ([-*+]|[a-zA-Z0-9][).]) #orderd vs unordered</span> <span style="color:#AEAEAE;font-style:italic;"> * ((.|\n *[\w\d]{2,})*) #to end of line or next line if not</span> <span style="color:#AEAEAE;font-style:italic;"> * #beginning of new item</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#99CF50;">var</span> bullet <span style="color:#E28964;">=</span><span style="color:#E9C062;"> <span style="color:#E9C062;">/</span>^( *)([-*+]|[a-zA-Z0-9][).])((.|<span style="color:#CF7D34;">\n</span> *[<span style="color:#CF7D34;">\w</span><span style="color:#CF7D34;">\d</span>]{2,})*)<span style="color:#E9C062;">/</span>gm</span> <span style="color:#99CF50;">var</span> prevOrder <span style="color:#E28964;">=</span> <span style="color:#E28964;">-</span><span style="color:#3387CC;">1</span>, prevRank <span style="color:#E28964;">=</span> <span style="color:#E28964;">-</span><span style="color:#3387CC;">1</span>, order, rank <span style="color:#E28964;">while</span>((item <span style="color:#E28964;">=</span> bullet.<span style="color:#DAD085;">exec</span>(match))<span style="color:#E28964;">!</span><span style="color:#E28964;">=</span><span style="color:#3387CC;">null</span>) { rank <span style="color:#E28964;">=</span> item[<span style="color:#3387CC;">1</span>].<span style="color:#CF6A4C;">length</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>figure out the order</span> <span style="color:#E28964;">if</span>(ranks.<span style="color:#CF6A4C;">length</span><span style="color:#E28964;">==</span><span style="color:#3387CC;">0</span>) order <span style="color:#E28964;">=</span> <span style="color:#3387CC;">0</span> <span style="color:#E28964;">else</span> { <span style="color:#E28964;">if</span>(rank<span style="color:#E28964;">></span>prevRank) { order <span style="color:#E28964;">=</span> ranks.<span style="color:#CF6A4C;">length</span> ranks[ranks.<span style="color:#CF6A4C;">length</span>] <span style="color:#E28964;">=</span> rank } <span style="color:#E28964;">else</span> { order <span style="color:#E28964;">=</span> getRank(ranks,rank) } } ranks[order] <span style="color:#E28964;">=</span> rank <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>ensure rank is in there</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>reinit spArr</span> <span style="color:#E28964;">if</span>(order<span style="color:#E28964;"><</span>prevOrder) { <span style="color:#99CF50;">var</span> nRanks <span style="color:#E28964;">=</span> [] <span style="color:#E28964;">for</span>(<span style="color:#99CF50;">var</span> i<span style="color:#E28964;">=</span><span style="color:#3387CC;">0</span>;i<span style="color:#E28964;"><=</span>order;i<span style="color:#E28964;">++</span>) nRanks[i] <span style="color:#E28964;">=</span> ranks[i] ranks <span style="color:#E28964;">=</span> nRanks } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">/**</span></span> <span style="color:#AEAEAE;font-style:italic;"> * Apply HTML. Each item should be given an open </span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">*/</span></span> <span style="color:#E28964;">if</span>(order<span style="color:#E28964;">></span>prevOrder) { <span style="color:#E28964;">if</span>(item[<span style="color:#3387CC;">2</span>].<span style="color:#DAD085;">substr</span>(<span style="color:#3387CC;">0</span>,<span style="color:#3387CC;">1</span>)<span style="color:#E28964;">==</span><span style="color:#65B042;"><span style="color:#65B042;">'</span>-<span style="color:#65B042;">'</span></span>) { html <span style="color:#E28964;">+</span><span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#DDF2A4;">\n</span><ul><span style="color:#65B042;">"</span></span> lists[order] <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#DDF2A4;">\n</span></ul><span style="color:#65B042;">"</span></span> } <span style="color:#E28964;">else</span> { html <span style="color:#E28964;">+</span><span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><ol><span style="color:#65B042;">"</span></span> lists[order] <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span></ol><span style="color:#65B042;">"</span></span> } html <span style="color:#E28964;">+</span><span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><li><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>item[<span style="color:#3387CC;">3</span>] } <span style="color:#E28964;">else</span> <span style="color:#E28964;">if</span>(order<span style="color:#E28964;"><</span>prevOrder) { <span style="color:#E28964;">for</span>(<span style="color:#99CF50;">var</span> i<span style="color:#E28964;">=</span>prevOrder;i<span style="color:#E28964;">></span>order;i<span style="color:#E28964;">--</span>) html<span style="color:#E28964;">+</span><span style="color:#E28964;">=</span><span style="color:#65B042;"><span style="color:#65B042;">"</span></li><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>lists[i] html <span style="color:#E28964;">+</span><span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span></li><li><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>item[<span style="color:#3387CC;">3</span>] } <span style="color:#E28964;">else</span> html <span style="color:#E28964;">+</span><span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span></li><li><span style="color:#65B042;">"</span></span><span style="color:#E28964;">+</span>item[<span style="color:#3387CC;">3</span>] <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>order and rank are now old</span> prevRank <span style="color:#E28964;">=</span> rank prevOrder <span style="color:#E28964;">=</span> order } html <span style="color:#E28964;">+</span><span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span></li></ul><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">return</span> html }) <span style="color:#E28964;">return</span> code } </pre> </div> </div> <a href="http://www.refactormycode.com/codes/349-markdown-like-editor" style="color:#fff" title="As seen on RefactorMyCode.com"><img alt="Small_logo" src="http://www.refactormycode.com/images/small_logo.gif" style="border:0" /></a>