Prism.js 軽量・簡単なJavaScriptシンタックスハイライターの使い方
ソースコードを見やすくしてくれるシンタックスハイライター(Syntax Highlighter)、WordPressプラグインでもいろいろシンタックスハイライターはあるけれど、多機能だけど重いものや使い方が複雑なSyntax Highlighterが多い。
Prism Syntax Highlighter(Prism シンタックスハイライター)は軽量・簡単・多機能なJavaScriptシンタックスハイライター。使いたいテーマ・言語・機能を選んで、prism.jsとprism.cssをダウンロードしてセットすれば使える。
Prismの使い方
軽量・簡単・多機能なJavaScriptシンタックスハイライター『Prism Syntax Highlighter(Prism シンタックスハイライター)』使い方。Prismで使いたいテーマ・言語・機能を選んで自動生成されるprism.jsとprism.cssをダウンロードしてくるところから、Prismを設置して、Prismでソースコードをハイライトするやり方まで。
Prismを入手 prism.jsとprism.cssをダウンロードしてくる
Prismのページに行き、右上の「DOWNLOAD」をクリックすると使いたいテーマ・言語・機能を選ぶと自動でprism.jsとprism.cssを生成してダウンロードできるページに移動する。
右側に縦書きで「THEME:」と書いてあるところに丸いアイコンが7つ縦に並んでいるが、クリックして選択するとページの下の方で選んだテーマのプレビューができる。
ファイルの圧縮レベルを選ぶ
「Minified version」でいいんじゃない。
7つのテーマから選ぶ
7つのテーマから使いたいテーマにチェックを入れる。ちなみに私は「Okaidia」を選んだ。
使いたい言語を選ぶ
使いたい言語にチェックを入れる。ちなみに私は、Markup(html)・CSS・CSS Extras・C-like・JavaScript・PHP・PHP Extrasを選んだ。
使いたい機能(プラグイン)を選ぶ
私は「Line Highlight」(任意の行の色を変える)、「Line Number」(行番号表示)、「Show Language」言語を表示するプラグインを選んだ。下のほうにJavaScriptとCSSあわせてファイルサイズは25.05KBと出ている。
生成されたprism.jsとprism.cssをダウンロード保存
生成されたprism.jsとprism.cssを青いボタンおよびオレンジ色のボタンをクリックしてダウンロード保存しておく。
Prismの設置 prism.jsとprism.cssを設置
<link rel="stylesheet" type="text/css" href="prism.css" media="all" />
<script type="text/javascript" src="prism.js"></script>
</head>
サーバーにダウンロード保存したprism.jsとprism.cssをアップロードし、prism.jsとprism.cssを読み込むようにhtmlヘッダーに設定する。
Prismの設置 静的htmlサイト
普通の静的htmlサイト(今時珍しいか)の場合は、prism.jsとprism.cssの設置した場所(URL)を指定、外部styleシート(cssファイル)でcssを管理してるならprism.cssの中身をcssファイルにコピペすればいいんじゃないかな。
Prismの設置 WordPressの場合
WordPressの場合は、prism.cssの中身をゴリゴリとテーマのstyleシートにコピペしてもいいかもしれない。prism.jsはよくない方法だけど、テーマのheader.phpに直で記述するのが一番簡単な設置の仕方かもしれない。
WordPressに独自のCSSやJSを読み込む推奨されてる方法は、独自のCSSやJSの外部ファイルをfunctions.phpで登録、登録したCSSやJSの外部ファイルを読み込む順番を指定するというもの。WordPressに独自のCSSやJSの外部ファイルを読み込む方法は後日備忘録する予定。
Prismの設置 Luxeritasの機能を使う場合
「Luxeritas(ルクセリタス)でSEO的に巧い・速い・安いWordPress無料テーマは決まり」で紹介しているLuxeritasの機能でprism.jsとprism.cssを読み込むというか、prism.jsとprism.cssを結合・圧縮して取り込む。Luxeritasの機能を使って読み込む(取り込む)方法の詳細はこれまた後日備忘録する予定。
Prismでソースコードをハイライトするやり方
Prism ダウンロードページで使いたいテーマ・言語・機能を選んで自動生成されるprism.jsとprism.cssをダウンロード、Prismを設置して、いよいよPrismでソースコードをハイライトする。
普通にソースコードをハイライトする
●●●●●● ●●●●●● ●●●●●●
●●●●●●</code></pre>
例:HTMLコード(<head>部分)をPrismでハイライトする
<html>
<head>
<meta charset="UTF-8″ />
<title>WordPress PC WEB あれこれ堂的備忘録</title>
<meta name="description" content="WordPressのカスタマイズやプラグイン、
パソコン設定やアプリ、
レンタルサーバーの設定やレビュー、
ウェブ・ネット・SNSについてやアフィリエイトについての備忘録" />
<link rel="stylesheet" type="text/css" href="prism.css" media="all" />
<script type="text/javascript" src="prism.js"></script>
</head></code></pre>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>WordPress PC WEB あれこれ堂的備忘録</title>
<meta name="description" content="WordPressのカスタマイズやプラグイン、
パソコン設定やアプリ、
レンタルサーバーの設定やレビュー、
ウェブ・ネット・SNSについてやアフィリエイトについての備忘録" />
<link rel="stylesheet" type="text/css" href="prism.css" media="all" />
<script type="text/javascript" src="prism.js"></script>
</head>
ハイライトする言語のところに、cssやphpやjavascriptなど言語名をいれる。HTMLの場合はhtmlではなくmarkupとする。HTMLタグの場合HTML エンティティ変換が必要になる(他の言語でも特殊文字の変換が必要な場合がある)。HTML エンティティ変換、特殊文字の変換についてはまたまた後日備忘録で。
行番号を表示してソースコードをハイライトする
●●●●●● ●●●●●● ●●●●●●
●●●●●●</code></pre>
例:phpを行番号付きでPrismでハイライト表示
function get_post_views( $postID ) {
$count_key = 'post_views_count’;
$count = get_post_meta( $postID, $count_key, true );
if ( $count == " ) {
delete_post_meta( $postID, $count_key );
add_post_meta( $postID, $count_key, '0’ );
return “まだアクセスがありません";
}
return $count . ' ';
}</code></pre>
<?php
function get_post_views( $postID ) {
$count_key = 'post_views_count';
$count = get_post_meta( $postID, $count_key, true );
if ( $count == '' ) {
delete_post_meta( $postID, $count_key );
add_post_meta( $postID, $count_key, '0' );
return "まだアクセスがありません";
}
return $count . '';
}
<pre class="line-numbers"><code class="language-php">の後で改行すると実際のコードの行番号とPrismで表示している行番号がずれてしまう。1行目を<pre class="line-numbers"><code class="language-php"><?phpのように改行しないで続ける必要がある。
指定した行の色を変えてソースコードをハイライトする
●●●●●● ●●●●●●
</code></pre>
例:phpコードの1行目と4~6行目と10行目の色を変えPrismでハイライト表示
if( has_post_thumbnail() === true ) {
global $post;
$content = '<div class="post-top-thumbnail">’ .
get_the_post_thumbnail( $post->ID, 'full’ ) .
'</div>’ . $content;
}
return $content;
}
add_filter( 'hoge_content’, 'display_post_top_thumbnail’, 11, 1 );</code></pre>
function display_post_top_thumbnail( $content ){
if( has_post_thumbnail() === true ) {
global $post;
$content = '<div class="post-top-thumbnail">' .
get_the_post_thumbnail( $post->ID, 'full' ) .
'</div>' . $content;
}
return $content;
}
add_filter( 'hoge_content', 'display_post_top_thumbnail', 11, 1 );
1や10など1行単位で指定ができ、4-6など複数行の指定も可能。1,4-6,10など複合した形で行の指定もできる。複数行指定、複合指定する場合はカンマ区切り。
テーマの指定した行の背景色があまり目立たない場合はprism.cssの.line-highlightのところを適当にいじって変える。ただし、色をHSLa指定しておりわかりづらい上にグラデーションもかけているのでチンプンカンプン。とりあえずいろいろいじってみて上の様な色になった。
Prism.js JavaScriptシンタックスハイライター良いようだ
俺の頭でりっぱなコードをかけるわけがないので、Prismで十分すぎる。今のところちゃんと動いてくれるし、ほとんどコピペのコードばかりなのだから、ありがたいJavaScriptだ。
PageSpeed Insightsでも100点満点なので重くはなっていないようだ。まあ私の場合、HTML エンティティ変換して貼りつけるだけで十分なんだけど、ソースコードを見やすくしてくれ(見栄え良くか?)軽量で十分な機能があるのでPrism.jsは便利で重宝しそうだ。