WordPress

シンタックスハイライト「Prism.js」の使い方

はじめに

バッチファイルやSQL文などのソースコードをそのまま記事に掲載するとわかりにくいので、当ブログではシンタックスハイライトが使用できる「Prism.js」を使用しています。

基本的な書き方や具体的な書き方などをご紹介します。

「Prism.js」の導入方法は下記をご参照ください。

シンタックスハイライト「Prism.js」の導入方法

続きを見る

Prism.jsの使い方

シンタックスハイライトしたいソースコードをタグで囲むだけでOKです。

codeタグのclassには「language-xxxxx」の形式でシンタックスハイライトする言語名を指定します。

<pre>
 <code class="language-言語名">
 表示したいソースコード
 </code>
</pre>

CSSのソースコードを表示する場合は下記のように記述します。

<pre><code class="language-css">p { color: red }</code></pre>

シンタックスハイライトするとこのようになります。

p { color: red }

下記のリンクから言語の指定文字列やサンプルを確認することができます。

Examples ▲ Prism
Prism : Examples

prismjs.com

HTML言語をハイライトする

今回の紹介記事のようにHTML言語のソースコードを掲載したい場合は、codeタグのclassに[language-markup]と記載します。

<pre class="line-numbers">
    <code class="language-markup">
    表示したいソース
    </code>
</pre>

行番号を表示する

preタグのclassに[line-numbers]を追記すると行番号が表示されます。

既に他のclassを使用している場合は、半角スペース区切りで複数のclassを指定可能です。

<pre class="line-numbers">
    <code class="language-言語名">
    表示したいソース
    </code>
</pre>

開始する行番号を指定する

行番号を表示する際にpreタグに追加した[line-numbers]の後ろに[data-start="開始する行番号"]を追記すると開始番号を指定することができます。

<pre class="line-numbers" data-start="7">
    <code class="language-言語名">
    表示したいソース
    </code>
</pre>

指定行をハイライトする

preタグのclassに[data-line]を追記するとハイライト表示されます。

<pre class="line-numbers" data-line="1,3-4">
    <code class="language-言語名">
    表示したいソース
    </code>
</pre>

"1,3-4":1行目、3~4行目をハイライト

コマンドライン表示する

preタグのclassに[command-line]を追加するとコマンドラインとして表示されます。

<pre class="command-line">
    <code class="language-言語名">
    表示したいソース
    </code>
</pre>

シンタックスハイライトするとこのようになります。

pwd
/home/sysuser

行番号でコマンド出力結果を指定する

このままでは出力結果もコマンドとして表示されてしまうので出力結果部分を行番号で指定してコマンド表示から除外します。

preタグに[data-ouput]属性を追加して出力結果の行番号を指定します。

<pre class="command-line" data-output="2,4-7"><code class="language-bash">pwd
/home/sysuser
ls -l
total 17376
drwxrwxr-x 3 sysuser sysuser     4096 Jan  7 08:58 backup
-rw-rw-r-- 1 sysuser sysuser 17782444 Dec  9 14:00 latest-ja.tar.gz
drwxr-xr-x 5 sysuser sysuser     4096 Dec 21 14:03 wordpress</code></pre>

上記の例をシンタックスハイライトするとこのようになります。

pwd
/home/sysuser
ls -l
total 17376
drwxrwxr-x 3 sysuser sysuser     4096 Jan  7 08:58 backup
-rw-rw-r-- 1 sysuser sysuser 17782444 Dec  9 14:00 latest-ja.tar.gz
drwxr-xr-x 5 sysuser sysuser     4096 Dec 21 14:03 wordpress

data-output="2,4-7":2行目、4~7行目を出力結果として表示

指定文字列でコマンド出力結果を指定する

行番号でコマンド出力装置を指定する方法では、コマンドを変更したり出力結果が変わって行が変わってしまうと行番号を都度変更しないといけません。

そこであらかじめ出力結果として表示する行の先頭に指定の文字列を設定してフィルターで判定することもできます。

フィルターする指定文字列はpreタグに[data-filter-output]属性を追加します。

<pre class="command-line" data-filter-output="(output)"><code class="language-bash">pwd
(output)/home/sysuser
ls -l
(output)total 17376
(output)drwxrwxr-x 3 sysuser sysuser     4096 Jan  7 08:58 backup
(output)-rw-rw-r-- 1 sysuser sysuser 17782444 Dec  9 14:00 latest-ja.tar.gz
(output)drwxr-xr-x 5 sysuser sysuser     4096 Dec 21 14:03 wordpress</code></pre>

指定文字列はシンタックスハイライトされる際に削除されるので下記のように(output)は削除されて表示されます。

pwd
(output)/home/sysuser
ls -l
(output)total 17376
(output)drwxrwxr-x 3 sysuser sysuser     4096 Jan  7 08:58 backup
(output)-rw-rw-r-- 1 sysuser sysuser 17782444 Dec  9 14:00 latest-ja.tar.gz
(output)drwxr-xr-x 5 sysuser sysuser     4096 Dec 21 14:03 wordpress

ホスト名を指定する

コマンドライン表示する際に特に指定していしていない場合は"[user@localhost] $"と表示されます。

ホスト名、ユーザー名、プロンプトを指定することができるのでpreタグに追加します。

ホスト名を指定する場合はpreタグに[data-host]属性を追加します。

<pre class="command-line" data-host="ホスト名"><code class="language-bash"></code></pre>

シンタックスハイライトで表示するとこのようになります。

pwd
(output)/home/sysuser

ユーザー名を指定する

ユーザー名を指定する場合はpreタグに[data-user]属性を追加します。

<pre class="command-line" data-user="ユーザー名"><code class="language-bash"></code></pre>

シンタックスハイライトで表示するとこのようになります。

pwd
(output)/home/sysuser

また、ユーザー名を[root]とするとコマンドプロンプトが"#"に変化します。

pwd
(output)/home/sysuser

プロンプトを指定する

プロンプトを指定する場合はpreタグに[data-prompt]属性を追加します。

<pre class="command-line" data-prompt="プロンプト"><code class="language-bash"></code></pre>

シンタックスハイライトで表示するとこのようになります。

pwd
(output)/home/sysuser

ソースコード掲載時の注意点

HTMLやCSSなどのソースコードはそのまま掲載すると記事を表示する際にタグとして認識されるため実体参照変換を実施してください。

「<」は「&lt;」、「>」を「&gt;」に変換します。

手動で変更するのは手間なので下記のサイトを利用して変換すると便利です。

ソースコード変換 < & " > br改行 WEB用に自動エスケープ
HTML実体参照変換

www.netyasun.com

参考
AFINGER5で行番号がずれてしまうのを修正する方法

続きを見る

  • この記事を書いた人
  • 最新記事

かじ

マッチングアプリで出会った女性と結婚をした埼玉県在住の新婚さん。 ガジェット好きではあるけど子どもができたため下火に。。。 社内SEとしてプログラミングなど自分の知識と経験をいろんな人に役立ってもらえるように記事を更新します!

-WordPress
-