highlight.js - にほんご。

Building and testing

更新日: 2018-09-14

実際にhighlight.jsを実行するには、 ブラウザ、node.jsサーバ等、環境に併せてビルドする必要があります。

ビルド

ビルドツールはnode.jsを使用したJavaScriptで書かれています。 スクリプトを実行する前に、node.jsがインストールされていることを確認し、 npm intallで依存するライブラリをインストールしてください。

このツールはtool/build.jsにあります。 いくつか便利な例を紹介します。

  • 一般的な言語のみをブラウザで使うためのビルド。
    $ node tools/build.js :common

  • 使用可能な全ての言語を含めて、node.js用にビルド。
    $ node tools/build.js -t node

  • 特定の2種類の言語をデバッグ用にビルド。この場合、圧縮しません。
    $ node tools/build.js -n python ruby

いくつかのシステムではnodeのバイナリ名がnodejsの場合があります。 上記の例では、単純にnodenodejsに置き換えるだけで動作します。

全オプションのリファレンスは--helpオプションで利用可能です。

ビルド結果はbuild/ディレクトリ以下に格納されます。


基本テスト

言語のデバッグとテストは通常、最初は視覚的に行います。 まず、作成中の言語のみでビルドする必要があります。 (コードを圧縮せずに、ブラウザのメッセージで理解できるコードのままで。) そして、tools/developer.htmlにあるディベロッパーツールを使って、 その言語のスニペットがどのようにハイライトされるかを確認します。

テストスニペットは短く、全体的な見栄えを考える必要があります。 スニペットは、全ての構文要素を含めるよりも、実用的なコードであるべきです。

見栄えが整ったら、作成した言語定義が一式の中に含まれていても正常に言語検出されるかを確かめなくてはなりません。

テストはMochaを使って行います。 ファイルはtest/以下にあります。 コマンドラインでnpm intallを使って依存するライブラリをインストールした後、 npm testでテストを実行することができます。

メモ:UbuntuのようなDebian系のマシンでは、 nodeへのnodejsのエイリアスか、シンボリックリンクを作成する必要があります。 これは、highlight.jsをテストする依存ライブラリにはnodeへの参照が存在するためです。

ブラウザのテストで使用したスニペットをtest/detect/<language>/default.txtに配置します。 そして、全ての言語でパッケージを構築し、テストを実行します。 もし、作成した言語で、言語の自動検出ができない場合、 コードの関連性を高めるように修正しなければならず、 これはそれ自体が黒魔術です。 疑問や不明点があれば、ディスカッショングループ(?)を参照してください!


マークアップテスト

言語に追加のマークアップテストを提供して、 様々な言語構造での固有のケースをテストすることもできます。 言語に19種類の異なる文字列リテラルがある場合や、 正規表現とは別に、複雑な文字列分割の検出手法がある場合等です。

テストケースは2つのファイルで構成されます。

  • test/markup/<language>/<test_name>.txt : テストコード
  • test/markup/<language>/<test_name>.expect.txt : リファレンスレンダリング

リファレンスレンダリングを生成するには、 tools/developer.htmlにあるディベロッパーツールを使います。 この場合、言語の自動検出が動作しない可能性があるので、 言語をプルダウンで明示的に選択してください。



© 2006 Highlight.js is released under the BSD License. See LICENSE file for details.

このコンテンツはhighlightjsドキュメントを翻訳/改変したものです。