# 構文ハイライトに使用可能なプログラミング言語を構成する

**URL:** <https://meta.discourse.org/t/configure-which-programming-languages-are-available-for-syntax-highlighting/239717>\
**Category:** Site Management\
**Tags:** how-to, customization\
**Created:** [2022 年 9 月 22 日午前 1:43 UTC](https://meta.discourse.org/t/configure-which-programming-languages-are-available-for-syntax-highlighting/239717 "2022-09-22T01:43:43Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/580155_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)\
**Post date:** [2022 年 9 月 22 日午前 1:43 UTC](https://meta.discourse.org/t/configure-which-programming-languages-are-available-for-syntax-highlighting/239717/1 "2022-09-22T01:43:43Z")

</div>

> 🔖 このガイドでは、Discourse で構文ハイライトに使用可能なプログラミング言語を構成する方法について説明します。

> 🙋 必要なユーザーレベル：管理者

構文ハイライトは、コードブロックに対してプログラミング言語に基づいたフォーマットを適用することで、可読性を向上させます。Discourse で利用可能な構文ハイライトの言語をカスタマイズできます。

## highlighted\_languages サイト設定の構成

構文ハイライト用のプログラミング言語のリストを構成するには、以下の手順を実行してください。

1. 管理パネルに移動します。
2. `構成` → `コンテンツ` → `投稿とトピック` にアクセスします。
3. `highlighted_languages` サイト設定を探します。

 ![highlighted_languages サイト設定のスクリーンショット](https://global.discourse-cdn.com/meta/original/4X/7/c/5/7c5672eadc48bf0e292446272d74073c37a6d23a.png)

この設定では、構文ハイライトに使用可能な言語を定義できます。サポートしたい言語の名前をカンマ区切りで入力してください。

## 関連する設定

同じ場所には、構文ハイライトに関連する 2 つの追加のサイト設定があります。

- **`default_code_lang`** — 言語が指定されていない場合にコードブロックに適用されるデフォルトの言語です。デフォルトは `auto` で、言語を自動的に検出しようとします。
- **`autohighlight_all_code`** — 有効にすると、言語クラスが指定されていない `<code>` ブロックに対しても構文ハイライトが適用されます。デフォルトは無効です。

## 追加の言語サポートの追加

希望の言語が highlight.js にバンドルされていない場合は、プラグイン API の `api.registerHighlightJSLanguage()` を使用して、テーマコンポーネント経由で追加できます。以下にその手順を示します。

1. **対象言語のモジュールを見つける:** 追加したい言語をサポートする highlight.js の言語定義を探します。例：

- Solidity: `https://github.com/highlightjs/highlightjs-solidity`
- Supercollider: `https://github.com/highlightjs/highlightjs-supercollider`

1. **テーマコンポーネントを使用してモジュールを統合する:**

- 希望の言語の HighlightJS 言語定義を取得します。
- Discourse で新しい [テーマコンポーネント](https://meta.discourse.org/t/installing-a-theme-or-theme-component/63682) を作成します。
- テーマコンポーネントの JavaScript で、プラグイン API を使用して言語を登録します。

```javascript
api.registerHighlightJSLanguage("languageName", languageDefinitionFunction);

```

- 完全な例については、[テーマコンポーネント経由で Highlight.JS に新しい言語をインストールする](https://meta.discourse.org/t/install-a-new-language-for-highlight-js-via-a-theme-component/97language) を参照してください。

---

_[View the full topic](https://meta.discourse.org/t/configure-which-programming-languages-are-available-for-syntax-highlighting/239717)._
