2016.5.6
2020.1.7

ソースコードのハイライト表示(google-code-prettify)

google-code-prettifyを使ってソースコードをハイライトで表示する方法です。

詳細

こちらから「distrib」ディレクトリ配下の圧縮ファイルをダウンロードして解凍。解凍されたファイルの「prettify.css」と「prettify.js」を自分のWebサイト環境に設置します。
(ソースコードを変更したい場合は「src」ディレクトリ配下の同ファイル)


<link href="prettify.css" rel="stylesheet" />
<script src="prettify.js"></script>

続いて、ハイライト表示したいソースコードを<pre>タグで囲います。


<pre class="prettyprint lang-js linenums:1">
var count = 0;
function count_up(){
    count = count + 1;
    alert("回数:" + count);
}
</pre>

上記のコードを実際にハイライト表示すると、以下のとおり。


var count = 0;
function count_up(){
    count = count + 1;
    alert("回数:" + count);
}

「prettyprint」でハイライトのスタイルを設定。

ちなみに当サイトでは以下のような感じになります。(2016年5月現在)


.prettyprint {
  background: #f5f5f5;
  font-family: Menlo, 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', Monaco, Consolas, monospace;
  font-size: 12px;
  line-height: 1.5;
  border: 1px solid #ccc;
  padding: 10px 0px;
  overflow:auto;
}
.pln {color: gray;}

@media screen {
  .str {color: #dd1144;}
  .kwd {color: #333333;}
  .com {color: #999988;}
  .typ {color: #445588;}
  .lit {color: red;}
  .pun {color: #333333;}
  .opn {color: #333333;}
  .clo {color: #333333;}
  .tag {color: blue;}
  .atn {color: green;}
  .atv {color: #dd1144;}
  .dec {color: #333333;}
  .var {color: teal;}
  .fun {color: #990000;}
}
@media print, projection {
  .str {color: #006600;}
  .kwd {color: #006;font-weight: bold;}
  .com {color: #600;font-style: italic;}
  .typ {color: #404;font-weight: bold;}
  .lit {color: #004444;}
  .pun, .opn, .clo {color: #444400;}
  .tag {color: #006;font-weight: bold;}
  .atn {color: #440044;}
  .atv {color: #006600;}
}

ol.linenums {
  margin-top: 0;
  margin-bottom: 0;
}

li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9 {
  background-color:#eee;
}

li.L1,li.L3,li.L5,li.L7,li.L9 {
  background-color:#f5f5f5;
}

「lang-js」は「JavaScript」用。

設定可能な言語は以下のとおり、いくつかあるので該当するものを選択します。

lang-c
lang-java
lang-python
lang-bash
lang-sql
lang-html
lang-xml
lang-css
lang-js
lang-ruby
lang-php
lang-perl

「linenums:1」は行番号の表示。

数字は開始行番号で「linenums:2」にすると以下のようになります。


var count = 0;
function count_up(){
    count = count + 1;
    alert("回数:" + count);
}

最後にページ表示後にprettyPrint()を実行すればOKです。


<body onload="prettyPrint()">

JavaScript】関連記事