SyntaxHighlighter を使ってみる(導入編) JavaScript
「とにかくなんでもやってみる」の最初の記事は「SyntaxHighlighterを使ってみる(導入編)」です。
SyntaxHighlighterは行番号のついたソースコードを表示してくれるJavascriptライブラリで、言語ごとに見やすく色分け表示してくれる便利なライブラリです。
どんなことができるか
まずはどんな風に表示されるのか見てみましょう。
最初に<pre>タグを使って通常のHTMLソースコード表示
<h4 class="id_title4">使用用途</h4> <p> 移動先のページやページ内の特定の場所を指定する<br /> HTMLだけでなく、画像や音声にリンクを指定することもできる </p>
次はSyntaxHighlighterを使ってHTMLのソースコード表示
<h4 class="id_title4">使用用途</h4> <p> 移動先のページやページ内の特定の場所を指定する<br /> HTMLだけでなく、画像や音声にリンクを指定することもできる </p>
SyntaxHighlighterを使うと要素や属性値などのキーワードが色分けされて見やすい。HTML以外の言語にも対応しており、下記のように各言語のキーワードが色分け表示されます。
同様に通常の<pre>タグを使ってCSSのソースコード表示
#header-description {
color:#AAAAAA;
}
SyntaxHighlighterを使ってCSSのソースコード表示
#header-description {
color:#AAAAAA;
}
通常の<pre>タグを使ってJavaのソースコード表示
class Test {
public static void main(String args[]){
int i = 5;
System.out.println(i + 100);
}
}
SyntaxHighlighterを使ってJavaのソースコード表示
class Test {
public static void main(String args[]){
int i = 5;
System.out.println(i + 100);
}
}
ファイルのダウンロード
まずは「SyntaxHighlighter」を http://alexgorbatchev.com/SyntaxHighlighter/ からダウンロードします。
右メニューの「download」をクリック
「Click here to download.」をクリックするとダウンロードが始まります
今回2010年10月時点での最新版「SyntaxHighlighter 3.0.83」をダウンロードしました。
ファイルをサーバに設置
ダウンロードしたファイルを解凍すると以下のファイルが入っているので、この中の「scripts」フォルダと「styles」フォルダをサーバの任意の場所にアップロードします。
SyntaxHighlighterのライブラリを読み込む
SyntaxHighlighterを使いたいHTMLファイルの<head>部分にライブラリ読み込みの記述を追加する
「http://-YourServer-/」部分を自分のサーバ名に置き換えてください。
今回は絶対パスで指定しましたが、相対パスで指定してももちろんOK。
<script type="text/javascript" src="http://-YourServer-/scripts/shCore.js" charset="Shift_JIS"></script> <script type="text/javascript" src="http://-YourServer-/scripts/shBrushCss.js"></script> <script type="text/javascript" src="http://-YourServer-/scripts/shBrushPhp.js"></script> <link type="text/css" rel="stylesheet" href="http://-YourServer-/styles/shCore.css" /> <link type="text/css" rel="stylesheet" href="http://-YourServer-/styles/shThemeDefault.css" /> <script type="text/javascript"> SyntaxHighlighter.all(); </script>
上の例ではCSSとPHPのソースコードをSyntaxHighlighterで表示させることにしています。
では、どの部分でその指定をしているか見てみましょう
<script type="text/javascript" src="http://-YourServer-/scripts/shBrushCss.js"></script> <script type="text/javascript" src="http://-YourServer-/scripts/shBrushPhp.js"></script>
4行目で「shBrushCss.js」を読み込みCSSの表記を、同様に5行目で「shBrushPhp.js」を読み込むことでPHPの表記に対応させています。
「shBrushCss.js」や「shBrushPhp.js」は、さきほどアップロードした「scripts」フォルダの中に入っており、CSSやPHP以外にも各言語に対応したjsファイルが入っているので適宜読み込みます。
尚、対応している言語と読み込みjsファイルの対応表は下記のとおり。
| 対応言語 | 読み込むjsファイル |
|---|---|
| ActionScript3 | shBrushAS3.js |
| Bash/shell | shBrushBash.js |
| ColdFusion | shBrushColdFusion.js |
| C# | shBrushCSharp.js |
| C++ | shBrushCpp.js |
| CSS | shBrushCss.js |
| Delphi | shBrushDelphi.js |
| Diff | shBrushDiff.js |
| Erlang | shBrushErlang.js |
| Groovy | shBrushGroovy.js |
| JavaScript | shBrushJScript.js |
| Java | shBrushJava.js |
| JavaFX | shBrushJavaFX.js |
| Perl | shBrushPerl.js |
| PHP | shBrushPhp.js |
| Plain Text | shBrushPlain.js |
| PowerShell | shBrushPowerShell.js |
| Python | shBrushPython.js |
| Ruby | shBrushRuby.js |
| Scala | shBrushScala.js |
| SQL | shBrushSql.js |
| Visual Basic | shBrushVb.js |
| XML, HTML | shBrushXml.js |
ソースコードを記述する
ソースコードを記述する際は<pre>タグを使って記述し、「class="brush:言語"」を追加します。下記の例ではCSSを記述しているので「class="brush:css"」と記述しています。
<pre class="brush:css">#header-description {
color:#AAAAAA;
}
</pre>
「class="brush:言語"」の言語部分は下記の表から対応するキーワードを選んで指定します。
| 対応する言語 | 記述するキーワード |
|---|---|
| ActionScript3 | as3, actionscript3 |
| Bash/shell | bash, shell |
| ColdFusion | cf, coldfusion |
| C# | c-sharp, csharp |
| C++ | cpp, c |
| CSS | css |
| Delphi | delphi, pas, pascal |
| Diff | diff, patch |
| Erlang | erl, erlang |
| Groovy | groovy |
| JavaScript | js, jscript, javascript |
| Java | java |
| JavaFX | jfx, javafx |
| Perl | perl, pl |
| PHP | php |
| Plain Text | plain, text |
| PowerShell | ps, powershell |
| Python | py, python |
| Ruby | rails, ror, ruby |
| Scala | scala |
| SQL | sql |
| Visual Basic | vb, vbnet |
| XML | xml, xhtml, xslt, html, xhtml |
最後に導入までの手順をおさらい
今回は導入編でした。こんな素敵なライブラリをオープンソースで公開している「http://alexgorbatchev.com/」に感謝です。次回は「SyntaxHighlighter を使ってみる(使い方編)」を書こうと思います。