4. シンタックスハイライト/prism.js/カスタマイズ 改行の調整

 
 ここ、ご注意です。きちんとプラグインをダウンロードしたら、下記の手順をふまなくても改行の調整ができているようです。
4.1 改行の調整
4.2 prism.js をいじる

4.1 改行の調整


#include <stdio.h>

int main(int argc, char* argv[])
{
	print("Hello World!");

	return 0;
}
 と表示させるのに

<pre class="line-numbers"><code class="language-c">#include <stdio.h>

int main(int argc, char* argv[])
{
	print("Hello World!");

	return 0;
}</code></pre>
 と書くのではなく

<pre class="line-numbers"><code class="language-c">
#include <stdio.h>

int main(int argc, char* argv[])
{
	print("Hello World!");

	return 0;
}
</code></pre>
 と書きたいのですよ。

4.2 prism.js をいじる

 prism.js をいじるのですが、minify 化されていますので、いったん
Pretty Diff
 あたりで読みやすくします。  その上で

var s = t.textContent,
    u = {
        code    : s,
        element : t,
        grammar : l,
        language: i
    };

if (n.hooks.run("before-sanity-check", u), !u.code || !u.grammar)
 を下記のように書き換えます。

var s = t.textContent,
    u = {
        code    : s,
        element : t,
        grammar : l,
        language: i
    };

var str = u.code;
var a = str.slice(1);
u.code = a.slice(0, -1) ;

if (n.hooks.run("before-sanity-check", u), !u.code || !u.grammar)
 9~11行で、コードの先頭一文字と末尾一文字を削除しています。  弊害で、ハイライトで指定する行が1行ずれてしまいます。  また、改行をいれずに記述すると、先頭・末尾が1文字ずつ削られてしまうので注意が必要です。