Google Code Prettifyの概要
Google Code Prettify(以下Prettify)はソースコードを読みやすく色分けします。
Google Code Prettifyの読み込み
PrettifyはCDNを使って読み込むことができます。次のコードで関連するスクリプトとスタイルシートを一括して読み込みます。
<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>
コードの指定
修飾したいコードをPREタグやCODEタグで囲い、そのクラスにprettyprintを追加します。
console.log('Hello World')
実行例は次の通りです。
See the Pen Google code-prettifyでソースコードを読みやすく色分けする(CDN) by jun (@zionboogie) on CodePen.
URLクエリパラメータを使ったオプション指定
URLクエリパラメータを使ってオプションを指定することができます。
クエリパラメータ | デフォルト | 説明 |
---|---|---|
autoload | true | trueかfalseを指定します。trueの場合、ページの読み込み時に、自動的に実行されます。 |
lang | none | 読み込みたい言語ハンドラを指定します。通常、その言語のファイル拡張子です。複数回(?lang=css&lang=ml)指定することもできます。 |
skin | none | スキンを指定できます。詳しくはテーマで確認してください。 |
callback | none | code-prettifyの処理終了時に実行したいコールバック関数を指定できます。複数回指定可能です。 |
たとえば次のパラメータはCSS言語拡張機能を読み込み、スキンにSunburstを指定しています。
<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?lang=css&skin=sunburst"></script>
テーマの指定
code-prettifyはテーマをいくつか用意しているので、下記のテーマページを参考にして好みの見た目を選んでください。
Gallery of themes for code prettify
行番号を表示
クラスにlinenumsを追加すると行番号を表示することができます。
<pre class="prettyprint linenums"> console.log('Hello World') console.log('Hello World') console.log('Hello World') console.log('Hello World') console.log('Hello World') </pre>
1行ごとに行番号を表示したい場合はCSSでlist-style-typeにdecimalを指定してください。
.prettyprint ol.linenums > li { list-style-type: decimal; }
行番号の開始業を指定する場合はlinenumsの後にコロンを挟んで数値で指定します。15行目から始めたい場合は次のようにlinenums:15と指定します。
console.log('Hello World') console.log('Hello World') console.log('Hello World') console.log('Hello World') console.log('Hello World')
コード言語の指定
code-prettifyはCやPython、JavaScriptなどの多くの言語で動作しますが、言語を明示的に指定することができます。
現在提供されている言語は次の通りです。
default | Prettifyが自動的に判別します。 |
lang-none | Explicitly do not use any syntax highlighting. |
Bashなどのシェルスクリプト | lang-bash, lang-bsh, lang-csh, lang-sh |
C, C++など | lang-c, lang-cc, lang-cpp, lang-cxx, lang-cyc, lang-m |
C# | lang-cs |
Clojure | lang-clj |
CoffeeScript | lang-coffee |
CSS | lang-css |
Dart | lang-dart |
Delphi | lang-pascal |
Erlang | lang-erl, lang-erlang |
Go | lang-go |
Haskell | lang-hs |
HTML | lang-html |
Java | lang-java |
JavaScript | lang-js, lang-javascript |
JSON | lang-json |
LaTeX と TeX | lang-latex, lang-tex |
Lisp と Scheme | lang-cl, lang-el, lang-lisp, lang-lsp, lang-scm, lang-ss, lang-rkt |
Lua | lang-lua |
OCaml, SML, F#, et al | lang-fs, lang-ml |
Pascal | lang-pascal |
Perl | lang-pl, lang-perl |
PHP | lang-php |
Protocol buffers | lang-proto |
Python | lang-py, lang-python, lang-cv |
R and S | lang-r, lang-s |
Regex | lang-regex |
Ruby | lang-rb, lang-ruby |
Rust | lang-rc, lang-rs, lang-rust |
Scala | lang-scala |
SQL | lang-sql |
VHDL | lang-vhdl, lang-vhd |
Visual Basic | lang-vb, lang-vbs |
XML | lang-xml |
code-prettifyのソースコードやドキュメントは次のリポジトリにあります。
詳しい使い方はdocs/gettting_started.mdを参照してください。
スクリプトとスタイルをダウンロードして、自分で提供することができます。
<link rel="stylesheet" type="text/css" href="prettify.css"> <script src="prettify.js"></script>
ページのロードが完了したら、PR.prettyPrint()メソッドを実行します。
window.addEventListener("load", function(event) { PR.prettyPrint() });