エディタのようにWebサイト上に綺麗にソースコードを表示する方法。
ソースを書くプロ達や未来の開発者のための学びの場である
HTML,CSS,JS,Perl,PHPなどのマニュアル・解説サイトなどで、
PREソースコードを行頭番号付きでカッコよく表示するソース ビューア
SyntaxHighlighter SyntaxHighlighter:Download
ソース上にオンマウスで の操作タブがソースの右上に表示されるようになった。
ソースを別窓ビュー表示したりクリップボードに保存や印刷も可能な優れものです。
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <title>ソースコードを綺麗に表示</title> <meta name="description" content="HTML,CSS,JS,Perl,PHPなどのソースコードをウェブで表示" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <link type="text/css" rel="stylesheet" href="styles/shCore.css" /> <link type="text/css" rel="stylesheet" href="styles/shThemeDefault.css" /> <script type="text/javascript" src="scripts/shCore.js"></script> <script type="text/javascript" src="scripts/shBrushXml.js"></script> <script type="text/javascript"> SyntaxHighlighter.config.clipboardSwf = 'scripts/clipboard.swf'; SyntaxHighlighter.all(); </script> </head> <body> <div id="container"> <pre class="brush: xhtml;"> ここにソースコードを記述する </pre> </div> </body> </html>
SyntaxHighlighter:Download
SyntaxHighlighterをダウンロード&解凍
このサイトでのバージョンは、version 2.1.364(October 15 2009) 旧バージョンとかなり違う。
SyntaxHighlighter.zip 解凍後の中身
ローカルフォルダ内へドラッグ&ドロップ
このサイトの場合(file:///D:/netyasun.com/syntaxhighlighter/)
トップディレクトリ | +- index.html | +- /syntaxhighlighter/ | +-- /scripts/ | +-- /src/ | +-- /styles/ | +-- test.html
test.htmlを参考に
新しい.htmlを制作し、test.htmlのHEAD内のCSSとJSの<link,<scriptをコピペ。
(新しい.htmlへのCSSとJSのパスを正確に指定する事。相対パスでOK )
ソースコードを記述、文字コードも確認。
テスト的なソースコードをpre内に記述しブラウザで表示確認
<pre class="brush: c-sharp;"> Hello World </pre>
<pre class="brush: c-sharp;"> Hello World </pre>
Brush nameを選択
<pre class="brush: c-sharp;"> </pre> のclass名を
記述する言語形式に合わせBrush aliases名に変更。
Brush nameに合わせ、HEAD内の不要なJSの<script >を削除。再度ブラウザで表示確認。
Brush name | Brush aliases | File name |
---|---|---|
ActionScript3 | as3, actionscript3 | shBrushAS3.js |
Bash/shell | bash, shell | shBrushBash.js |
ColdFusion | coldfusion | shBrushColdFusion.js |
C++ | cpp, c | shBrushCpp.js |
C# | c-sharp, csharp | shBrushCSharp.js |
CSS | css | shBrushCss.js |
Delphi | delphi, pas, pascal | shBrushDelphi.js |
Diff | diff, patch | shBrushDiff.js |
Erlang | erlang | shBrushErlang.js |
Groovy | groovy | shBrushGroovy.js |
Java | java | shBrushJava.js |
JavaFX | jfx, javafx | shBrushJavaFX.js |
JavaScript | js, jscript, javascript | shBrushJScript.js |
Perl | perl, pl | shBrushPerl.js |
PHP | php | shBrushPhp.js |
Plain Text | plain, text | shBrushPlain.js |
PowerShell | ps, powershell | shBrushPowerShell.js |
Python | py, python | shBrushPython.js |
Ruby | rails, ror, ruby | shBrushRuby.js |
Scala | scala | shBrushScala.js |
SQL | sql | shBrushSql.js |
Visual Basic | vb, vbnet | shBrushVb.js |
XML | html, xhtml, xml, xslt | shBrushXml.js |
CSS
syntaxhighlighterフォルダのstyles内から一致するファイルのCSSを変更し
自分好みのソースコード画面にカスタマイズする事も可能です。
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <title>ソースコードを綺麗に表示</title> <meta name="description" content="HTML,CSS,JS,Perl,PHPなどのソースコードをウェブで表示" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <link type="text/css" rel="stylesheet" href="styles/shCore.css" /> <link type="text/css" rel="stylesheet" href="styles/shThemeDefault.css" /> <script type="text/javascript" src="scripts/shCore.js"></script> <script type="text/javascript" src="scripts/shBrushBash.js"></script> <script type="text/javascript" src="scripts/shBrushCpp.js"></script> <script type="text/javascript" src="scripts/shBrushCSharp.js"></script> <script type="text/javascript" src="scripts/shBrushCss.js"></script> <script type="text/javascript" src="scripts/shBrushDelphi.js"></script> <script type="text/javascript" src="scripts/shBrushDiff.js"></script> <script type="text/javascript" src="scripts/shBrushGroovy.js"></script> <script type="text/javascript" src="scripts/shBrushJava.js"></script> <script type="text/javascript" src="scripts/shBrushJScript.js"></script> <script type="text/javascript" src="scripts/shBrushPhp.js"></script> <script type="text/javascript" src="scripts/shBrushPlain.js"></script> <script type="text/javascript" src="scripts/shBrushPython.js"></script> <script type="text/javascript" src="scripts/shBrushRuby.js"></script> <script type="text/javascript" src="scripts/shBrushScala.js"></script> <script type="text/javascript" src="scripts/shBrushSql.js"></script> <script type="text/javascript" src="scripts/shBrushVb.js"></script> <script type="text/javascript" src="scripts/shBrushXml.js"></script> <script type="text/javascript"> SyntaxHighlighter.config.clipboardSwf = 'scripts/clipboard.swf'; SyntaxHighlighter.all(); </script> </head> <body> <pre class="brush: c-sharp;"> ここにソースコードを記述する </pre> </body> </html>
ソースの展開可能 クリックでソースが展開
<pre class="brush: xhtml; collapse: true;"> ここにソースコードを記述する <pre> <!-- これも使えます。 --> <script type="syntaxhighlighter" class="brush: html; collapse: true;"><![CDATA[ ここにソースコードを記述する ]]></script>
javascript 追加
の操作タブを日本語化。(不要なauto-links仕様も解除)
SyntaxHighlighter.config.clipboardSwf = 'clipboard.swf'; SyntaxHighlighter.config.strings.expandSource = 'ソース'; SyntaxHighlighter.config.strings.viewSource = 'ソース表示'; SyntaxHighlighter.config.strings.copyToClipboard = 'コピー Clipboard'; SyntaxHighlighter.config.strings.copyToClipboardConfirmation ='コピー完了'; SyntaxHighlighter.config.strings.print = 'プリンタ'; SyntaxHighlighter.config.strings.help = 'SyntaxHighlighter version 2.1.364'; SyntaxHighlighter.all(); SyntaxHighlighter.defaults['auto-links'] = false;
注意:オプション
サーバにアップロード
HTMLファイルと各フォルダ( scripts , src , styles )をアップロード(制作)
必要なBrush aliases要素をBrush nameを参考に、syntaxhighlighterディレクトリ内の
scriptsディレクトリ内に必要なFile nameのJSファイルをアップロード。
同じく、stylesディレクトリ内に好みのデザインのCSSファイルをアップロード。
やっぱりjavascript環境。一瞬の表示が少し遅い。
PREの各行を判断しol,liとbacgroundで実装していると思いきや、毎行table枠で固めた仕様。
また、ソースをコピーする場合、普通にソースをShiftキーやマウスでなぞってコピペすると、行頭記号なども一緒にペーストされてしまうので(ol仕様)、このSyntaxHighlighterのボタンや操作性が普及して欲しいところです。
今後、shTheme*.cssで各有名エディタ仕様のデザインスキンや、
メモ帳の仕様やブラウザまで対応し、未知のHTML6頃には、
<editor>要素?とかでソースがデザインされると面白いかも。
※ Japanese仕様など今後の開発に期待します。