静的シンタックスハイライト


静的シンタックスハイライトとは、ユーザーが変更_できない_コードに対するハイライトのことです。コードスニペットやイテレーションなどが含まれます。

Note

オンラインエディターでは、ユーザーがその場でコードを変更できるため、静的シンタックスハイライトを_使いません_。 オンラインエディターでのシンタックスハイライトの扱いについてもっと知りたい場合は、動的シンタックスハイライトのドキュメントを確認してください。

実装

静的シンタックスハイライトには、highlightjsライブラリを使用します。

自分の言語のサポートを追加する場合、3つの選択肢があります。

  1. その言語がhighlightjsで_すぐに_サポートされている(つまり、サポート対象の言語として掲載されている)場合。 その場合は、トラックの設定のセクションに進みます。
  2. 既存のhighlightjsプラグインを介してその言語がサポートされている場合。 その場合は、既存のプラグインの使用のセクションに進みます。
  3. その言語がサポートされて_いない_場合。 ここでも3つの選択肢があります。
    1. 新しいプラグインの作成のセクションで説明するように、highlightjsプラグインを一から書きます。
    2. 自分の言語の構文が別の言語の構文に(よく)似ている場合(たとえば、Unisonの構文はHaskellに似ています)。その場合は、その言語のシンタックスハイライトを自分の言語に使うことを検討できます。 詳しくはトラックの設定のセクションを参照してください。
    3. 静的シンタックスハイライトを用意しない。

トラックの設定

トラックの言語でhighlightjsのサポートを有効にするには、トラックのconfig.jsonファイルを変更する必要があります。config.jsonファイルの中で、online_editor.highlightjs_languageキーを、適切なhighlightjsの言語識別子(ドキュメントに記載されています)に追加または設定します。

例

{
  "online_editor": {
    "highlightjs_language": "csharp"
  }
}

既存のプラグインの使用

既存のプラグインを使用するには、そのプラグインがNPMで公開されている必要があります。プラグインがNPMで公開されていない場合は、次のいずれかを行います。

  1. プラグインの作者に、NPMで公開する意思があるか尋ねます。
  2. リポジトリをフォークして、自分で公開します。
  3. Exercismがリポジトリをフォークして公開する、という方法もあります。 その場合は、フォーラムでトピックを立てて依頼してください。

次のステップは、プラグインの有効化です。

プラグインの有効化

プラグイン(NPMで公開されている必要があります)を有効にするには、フォーラムでトピックを立て、そのプラグインのサポートをウェブサイトに追加してほしいと依頼します。するとExercismが、プラグインをウェブサイトに追加するPull Requestを作成します。PRがマージされたら、トラックの設定のセクションの手順に従って、highlightjsのサポートを有効にできます。

新しいプラグインの作成

プラグインを作成したい場合、ホスティングには2つの選択肢があります。

  1. 自分の個人アカウントでリポジトリを作成し、自分で公開します。
  2. Exercismにリポジトリを作成してもらい、公開してもらいます。 その場合は、フォーラムでトピックを立てて依頼してください。

リポジトリができたら、言語のコントリビューション手順に従ってプラグインを実装します。

その後、プラグインをNPMで公開する必要があります。次のステップは、プラグインの有効化です。

別の言語を使う

自分の言語の構文が別の言語の構文に(よく)似ている場合は、その言語のシンタックスハイライトを自分の言語に使うことを検討できます。そうするには、トラックがその別の言語のhighlightjs言語識別子を使うように設定します。詳しくはトラックの設定のセクションを参照してください。