Last active
December 16, 2015 11:38
-
-
Save kmdsbng/5428291 to your computer and use it in GitHub Desktop.
a javascript keyword highlighting sinippet.
original -> http://scott.yang.id.au/2004/06/se-hilite/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Hilite = { | |
| exact: false, | |
| style_name: 'hilite', | |
| style_name_suffix: true | |
| }; | |
| Hilite.hiliteHTML = function(html, query) { | |
| var re = new Array(); | |
| for (var i = 0; i < query.length; i ++) { | |
| query[i] = query[i].toLowerCase(); | |
| if (Hilite.exact) | |
| re.push('\\b'+query[i]+'\\b'); | |
| else | |
| re.push(query[i]); | |
| } | |
| re = new RegExp('('+re.join("|")+')', "gi"); | |
| var subs; | |
| if (navigator.userAgent.search(/Safari/) >= 0 || | |
| !Hilite.style_name_suffix) | |
| { | |
| subs = '<span class="'+Hilite.style_name+ | |
| (Hilite.style_name_suffix?'1':'')+'" style="color: red; font-weight:bold">$1</span>' | |
| } else { | |
| var stylemapper = {}; | |
| for (var i = 0; i < query.length; i ++) | |
| stylemapper[query[i]] = Hilite.style_name+(i+1); | |
| subs = function(match) { | |
| return '<span class="'+stylemapper[match.toLowerCase()]+'" style="color: red; font-weight:bold">'+match+ | |
| '</span>'; | |
| }; | |
| } | |
| var last = 0; | |
| var tag = '<'; | |
| var skip = false; | |
| var skipre = new RegExp('^(script|style|textarea)', 'gi'); | |
| var part = null; | |
| var result = ''; | |
| while (last >= 0) { | |
| var pos = html.indexOf(tag, last); | |
| if (pos < 0) { | |
| part = html.substring(last); | |
| last = -1; | |
| } else { | |
| part = html.substring(last, pos); | |
| last = pos+1; | |
| } | |
| if (tag == '<') { | |
| if (!skip) | |
| part = part.replace(re, subs); | |
| else | |
| skip = false; | |
| } else if (part.match(skipre)) { | |
| skip = true; | |
| } | |
| result += part + (pos < 0 ? '' : tag); | |
| tag = tag == '<' ? '>' : '<'; | |
| } | |
| return result; | |
| }; | |
| Hilite.hiliteElement = function(elm, query) { | |
| if (!query) | |
| return; | |
| var oldhtml = elm.innerHTML; | |
| var newhtml = Hilite.hiliteHTML(oldhtml, query); | |
| if (oldhtml != newhtml) | |
| elm.innerHTML = newhtml; | |
| }; | |
| Hilite.hilite = function(q) { | |
| var e = null; | |
| if (q && (e = document.body)) | |
| { | |
| Hilite.hiliteElement(e, q); | |
| } | |
| }; | |
| var towns = ["尼ケ崎横町", "家永町一町目", "一町目", "浮田町", "蛭子町", "上堀川町", "亀屋町", "北伊勢屋町", "北蟹屋町", "木屋之町", "清元町", "金馬場町", "櫛笥町", "荒神町", "講堂町", "小伝馬町", "小山町", "坤高町", "西院町", "左馬松町三町目", "下堀川町", "下丸屋町", "十四軒町", "主税町", "聚楽町", "白銀町", "新御幸町", "大黒町", "田中町", "田村備前町", "中書町", "天秤町", "天秤丸町", "直家町", "長尾町", "中務町", "中之町", "中御門横町", "中村町", "西神明町", "西辰巳町", "西天秤町", "西橋詰町", "西丸太町二町目", "二本松町", "秤口町", "橋西二町目", "東神明町", "東辰巳町", "東天秤町", "菱屋町", "福島町", "分銅町", "弁天町", "桝屋町", "丸屋町", "南伊勢屋町", "南蟹屋町", "南清水町", "元福大明神町", "森中町", "山本町", "吉野町四町目", "四町目", "藁屋町"] | |
| Hilite.hilite(towns); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment