前些日子搬家都時候把語法高亮插件從 Google Syntax Highlighter 換成了 Syntax Highlighter,主要是因爲前者對特殊符號的轉義處理不甚完美,且早已不再更新。不過後者也帶來了新問題:
悲伤的采购 @ 2011/08/15, 16:58:59, UTC+8 Says:
话说,复制代码时行号也一并复制了。。。
看了下源碼,用的是 table 來排版,簡單的換爲 ol 應當能避免複製行號,但會失去行號開關的功能,不過只是個小問題,可以無視了。
修改 Scripts/shCore.js 文件,找到
- code +=
- '<div class="line ' + lineClass + '">'
- + '<table>'
- + '<tr>'
- + (hasGutter ? '<td class="number"><code>' + lineNumber + '</code></td>' : '')
- + '<td class="content">'
- + (spaces != null ? '<code class="spaces">' + spaces.replace(' ', ' ') + '</code>' : '')
- + line
- + '</td>'
- + '</tr>'
- + '</table>'
- + '</div>'
- ;
- }
- return code;
替換爲
- code +=
- '<li class="line ' + lineClass + ' content">'
- + (spaces != null ? '<code class="spaces">' + spaces.replace(' ', ' ') + '</code>' : '')
- + line
- + '</li>'
- ;
- }
- return '<ol class="line">' + code + '</ol>';
修改 Style/shCore.css 文件,加入
- .syntaxhighlighter {
- background-color: #e7e5dc !important;
- padding-left: 20px !important;
- }
- .syntaxhighlighter ol li {
- margin-bottom: 0 !important;
- list-style-type: decimal-leading-zero !important;
- line-height: 1.5em !important;
- }
修改 Sytle/shThemeDefault.css 文件,移除
- .syntaxhighlighter {
- background-color: #fff !important;
- }
OK,搞定,收工。