シンタックスハイライトプラグイン(prism.js)を導入しました

今後コードも記載することが多くなると思い、コード部分を見やすくするために、プラグインを導入しました。

ハイライトプラグインはいくつかあり、以下の3つが候補に上がりました。

どれもCDNで導入することができ、ファイルのダウンロードやアップロードは必要なく、タグを記載するだけで使用することができます。

中でも、Google code-prettifyが一番導入しやすいと感じたのですが、すでに開発が終了していることと、テーマが少ないことから今回はPrism.jsを導入することにしました。

 

当サイトのサーバーであるJimdoでは、ファイルのアップロードは可能ですが、基本的に閲覧者にダウンロードさせるためのアップロードとなっているようで、スタイルシートやJSファイルのアップロードが容易にできないため、CDNで導入していきます。

また、全ページ共通のBODYタグを編集できないため、本来BODYタグ内に記載すべきものも、HEADタグ内で導入しました。

 

左側メニューの「基本設定」>「ヘッダー編集」を選択し、ヘッダー内に以下のコードを入力しました。

<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/unescaped-markup/prism-unescaped-markup.min.js"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-okaidia.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/unescaped-markup/prism-unescaped-markup.min.css" />

unescaped-markupプラグインも記載していますが、どうやらJimdoではscriptタグを強制的に変換かけるようで、正常に動作しませんでした。なので、HTMLタグはエスケープして使用しています。

 

この状態で、ハイライトしたいコードの部分の<pre>タグまたは<code>タグのclass属性に、言語の種類「language-xxxx」と行番号表示「line-numbers」を追加します。

<pre><code class="language-html line-numbers">
 〜記述したいソースコード〜
</code></pre>

私はテーマを「Okaidia」にしていますが、他のテーマを使用したい場合は前述のヘッダー部分の8行目を別のテーマに変更することで、表示を変えることができます。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-dark.min.css" />

Prism.jsは超軽量にも関わらず対応する言語が多く、行番号の表示も容易で、大変導入しやすいと感じました。

今後、ブログ等でコードを記載する場合は活用していきたいと思います。