Redmineでのコード表示に行番号を付加する(IE不可)
6352 ワード
ViewCustomizePluginを使います。
- Redmine3.4, 4.0
- Chrome/Firefox/Edge
で動作確認しました。
IEでは動きませんでした…
Path pattern: /.*
Type: JavaScript
$(function(){
// Redmine 3.x
//const highlightClass='.CodeRay';
// Redmine 4.x
const highlightClass = "[class$='syntaxhl']";
let codeBlocks = document.querySelectorAll( highlightClass );
let LINE_DELIM_EXP = /\n(?!$)/g;
Array.prototype.forEach.call(codeBlocks,function( codeBlock ) {
if (codeBlock.tagName != "CODE") { return; }
// 行数取得
let codeLines = codeBlock.innerHTML.split(LINE_DELIM_EXP);
// 行の桁数
let figures = String(codeLines.length).length;
let newCode = '';
Array.prototype.forEach.call(codeLines , function ( codeLine , index ) {
// 行番号をつける
let lineStr = (Array(figures).fill(' ').join('') + ( index + 1 ) ).slice( -1 * figures );
let lineNumber = document.createElement("span");
lineNumber.innerHTML = lineStr + ' ';
// lineNumber.className = 'line-numbers';
lineNumber.style = 'padding: 2px 4px 2px 4px; background-color: #eee; margin:0px 5px 0px 0px;';
newCode += lineNumber.outerHTML;
newCode += codeLine;
newCode += '\n';
});
codeBlock.innerHTML = newCode;
});
});
- 4行目/6行目はRedmineのバージョンに合わせてください。
- 昔のRedmineのソースでは、class="line-numbers"となっていましたが、今のRedmineのCSSには存在しないようなので、適当にstyleを書いています。
Author And Source
この問題について(Redmineでのコード表示に行番号を付加する(IE不可)), 我々は、より多くの情報をここで見つけました https://qiita.com/ryouma_nagare/items/d76d9b895477d5813edf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .