sxh.inc.php
About
「SyntaxHighlighter」を利用してソースコードを装飾します。
- SyntaxHighlighter に同梱される css を編集しています。
- SyntaxHighlighter の単純なアップデートには対応できないことになります。
- 詳細についてはこの記事の末尾に掲載しています。
対応バージョン
- 3.0.83に対応する全ての機能を実行することが出来ます。
Format
#sxh(language, [ first-line, theme, (highlight:highlight) ]){{ コード }}
Parameter
- language
- 装飾する言語を指定します。
- 未指定の場合は「plain」になります。
- first-line
- コードの一行目の行番号を決定します。
- 未指定の場合は「1」になります。
- theme
- 装飾に利用するテーマ(スタイルシート)を決定します。
- 未指定の場合は「shCoreDefault」になります。
- 下にサンプルがあります。
- (highlight)
- 注目させる行番号を指定します。
- 「first-line」オプションで指定した行数を用いて指定します。
- 未指定の場合は全ての行がデフォルトの装飾になります。
- 「:」で区切って複数行指定することが出来ます(制限は無い)。
- ex.「1:3:10:11」で与えられた行数を全て装飾します。
- 注目させる行番号を指定します。
Theme Samples
shCoreDefault
class hogehoge:interface{ private static hoge; public void hoge(){ printf(hoge); } }
shCoreRDark
class hogehoge:interface{ private static hoge; public void hoge(){ printf(hoge); } }
shCoreMidnight
class hogehoge:interface{ private static hoge; public void hoge(){ printf(hoge); } }
shCoreMDUltra
class hogehoge:interface{ private static hoge; public void hoge(){ printf(hoge); } }
shCoreFadeToGrey
class hogehoge:interface{ private static hoge; public void hoge(){ printf(hoge); } }
shCoreEmacs
class hogehoge:interface{ private static hoge; public void hoge(){ printf(hoge); } }
shCoreEclipse
class hogehoge:interface{ private static hoge; public void hoge(){ printf(hoge); } }
shCoreDjango
class hogehoge:interface{ private static hoge; public void hoge(){ printf(hoge); } }
関連ファイルのカスタマイズ
開発メモです。「shCoreDefault」他「shCoreXXX」系のCSSは「class="syntaxhighlighter"」に対して有効であるため、標準のままでは表示できない。そこでこのclassに「shCoreXXX」を足してやることで各要素のスタイルを識別することにした。幸いなことに、「syntaxhighlighter」はオプションで任意のclassを追記できるので、CSSのみ書き換える。具体的には「.syntaxhighlighter」とある所を全て置換して「.syntaxhighlighter.shCoreXXX」とするだけである。複数classに対してセレクタをかけるので多少速度が落ちるのが玉に傷だがJavascriptなのでサーバーサイドに負荷がかからないだけ良しとする。