<pre>タグに行番号を表示させる
ブログなどにコードを載せる時<pre>タグを使ってコードを書くとエスケープせずにそのまま表示されるので便利。
行番号も表示されたら見やすくなるかなと思い調査。
調べると、行番号を表示させるのにプラグインを使ったり、
難しい事ばっかりやってるサイトだらけなので、考えてみた。

line1,line2,line3の左にナンバリングするにはを考える。
リストにすれば出来そうなので、
line(n)を<li>タグで囲んでJavaScript(jQuery使用)で置換します。
置換されたHTMLはこうなります。
あとはCSSでカスタマイズしていきます。
好きなようにCSSでデザインを調整すれば、完成です。
さらっと書いたけど、思いつくのに5時間以上かかった😂
行番号も表示されたら見やすくなるかなと思い調査。
調べると、行番号を表示させるのにプラグインを使ったり、
難しい事ばっかりやってるサイトだらけなので、考えてみた。
line1,line2,line3の左にナンバリングするにはを考える。
<pre class="code"> line1 line2 line3 </pre>
リストにすれば出来そうなので、
line(n)を<li>タグで囲んでJavaScript(jQuery使用)で置換します。
if($('.code').length > 0) {
//1ページ内に<pre>タグを何個も書く事もあるので要素の数だけループさせます
$('.code').each(function(i) {
//<pre class="code">内のを改行コード前の文字を<li>タグで囲って置換して
//<pre class="code">内に入れ直します
$(this).html($(this).html().replace(/(.*)\n/g, "<li>$1</li>"));
});
}
置換されたHTMLはこうなります。
<pre class="code"> <li>line1</li><li>line2</li><li>line3</li> </pre>
あとはCSSでカスタマイズしていきます。
.code {
/* preをリスト要素に変換します */
display: list-item;
/* カウンターをリセット */
counter-reset: item;
}
.code > li {
/* スタイルを破棄 デフォルトで定義されてる「・」や「1.」は使わない */
list-style: none;
}
.code > li:before {
width: 35px;
text-align: right; /* 数字を右寄せ */
display: inline-block;
counter-increment: item; /* カウントアップ */
content: counter(item); /* カウントされた数字を表示 */
}
好きなようにCSSでデザインを調整すれば、完成です。
list1 list2 list3
さらっと書いたけど、思いつくのに5時間以上かかった😂
コメント
* 誤字脱字、内容の間違いのご指摘もお願いします
* ネガティブコメントは非表示にする場合がございます
* 独自のスパムチェックを導入してます
