Google Code Prettify
Javascriptライブラリによるコードハイライターです。
ソースコード表示を行うライブラリは色々ありますが、Google Code PrettifyはjQueryなどを使用せずにシンプルに動作します。
以下のような特徴があります。
- Bash,C++,CS,HTML,Java,JavaScript,XML,Perl,Python,Ruby,PHP,CSS,SQL,VBなどの言語に対応しています
- 自動的に言語を判別します。
- 表示したいソースコードを<pre></pre>タグで囲むだけです。
以下のページからダウンロードして、ダウンロードしたものをサーバーにアップロードして下さい。
google-code-prettify
当ページでも以前はGoogle Code Prettifyを使用していましたが、現在はGoogle Code PrettifyをベースにしたEx Code Prettifyを使用しています。
CSSとjavascriptの読み込み
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Title記述</title> <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="js/google-code-prettify/prettify.css" rel="stylesheet"> </head> <body> コードを記述 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script src="js/google-code-prettify/prettify.js"></script> <script src="js/bootstrap.min.js"></script> <script>prettyPrint();</script> </body> </html>
使い方
使い方は簡単で、<pre>タグに"prettyprint"クラスを追加するだけです。
<pre class="prettyprint"> こんな感じ <pre>
行番号を追加するには、更に"linenums"を追加します。
<pre class="prettyprint linenums"> こんな感じ <pre>
そして最後に、ページロード時にprettyPrint()を実行します。
<body>タグのonload時に実行するか、最初のソースコードの16行目のように<script>タグで実行するといいでしょう。
<body onload="prettyPrint()"> または <script>prettyPrint();</script>
Bootstrapで使用する場合の注意点
Bootstrapで使用する場合、ダウンロードしたままのCSSでは表示が期待通りにはなりませんでした。
色々調べてみると、prettify.cssの内容がBootstrapではよろしくないとの事でした。
バージョンにもよると思いますが、うまく表示されない時はprettify.cssを以下の通りにコピペで置き換えてください。
表示色をデフォルトから変更し、表示設定をBootstrapに合うように変更しています。
.pln { color: #ffffff; } .str { color: #d1f1a9; } .kwd { color: #ebbbff; } .com { color: #7285b7; } .typ { color: #bbdaff; } .lit { color: #ffc58f; } .pun { color: #ffffff; } .opn { color: #ffffff; } .clo { color: #ffffff; } .tag { color: #ff9da4; } .atn { color: #ffc58f; } .atv { color: #99ffff; } .dec { color: #ffc58f; } .var { color: #ff9da4; } .fun { color: #bbdaff; } .prettyprint { padding: 10px; background-color: #002451; border: 1px solid #cccccc; } .prettyprint.linenums { -webkit-box-shadow: inset 40px 0 0 #008faf; -moz-box-shadow: inset 45px 0 0 #008faf; box-shadow: inset 45px 0 0 #008faf; } ol.linenums { margin: 0 0 0 0; } ol.linenums li { padding-left: 8px; color: #ffffff; line-height: 18px; }