OSS探訪GitHubでログイン

コード文字列を180以上の言語定義で構文ハイライトし、言語の自動判定にも対応する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
25,005
主要言語
JavaScript
ライセンス
BSD-3-Clause
リポジトリ最終更新
2026/09/06
ページ内ナビ

概要

Highlight.jsはコードの構文を色分けするJavaScriptライブラリです。ブラウザとサーバーの両方で動作し、フレームワークへ依存せず、言語を明示してhighlightする方法と入力内容から自動判定する方法を提供します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

pre・code要素をまとめて検出しブラウザ上でハイライトする

stylesheetとライブラリを読み込みhljs.highlightAll()を呼ぶと、<pre><code>内のコードを検出してhighlightします。既知の言語はlanguage-htmlのようなclassで明示できます。

出典:[1]

Node.jsで言語指定と自動判定を使い分ける

サーバー側ではhighlight()へ言語名を渡す方法と、highlightAuto()で入力から言語を推定する方法を利用できます。ハイライト済みHTMLは戻り値のvalueから取得します。

出典:[1]

必要な言語だけ読み込み配布サイズを小さくする

トップレベルのpackageでは全言語を利用できますが、highlight.js/lib/commonでは主要言語だけをまとめた構成を読み込めます。さらに必要な言語定義だけ登録する構成も選べます。

出典:[1]

向いている用途

技術文書・コードビューア・記事のコードブロックを統一して表示したい場合に向く

静的な技術文書、Markdownから生成したコードブロック、サーバー側でレンダリングしたコード片などへ共通のハイライト処理を加えたい用途に適します。

出典:[1]

導入前の確認

自動判定より言語を明示できる場合は明示指定を優先する

自動判定は入力内容から候補を推定するため、短いコード片や似た構文では意図と異なる判定になることがあります。言語が分かっている場合はclassやhighlight()のlanguage optionで固定できます。

出典:[1]

11.12.0のnpm packageはNode.js 12以上を要求する

11.12.0のpackage metadataはNode.js >=12.0.0を宣言しています。ブラウザ利用では別途theme stylesheetを読み込み、表示するcode blockにstyleを適用します。

出典:[2][1]

参考にした公式資料

  1. [1]Highlight.js 11.12.0 README(2026-10-05)
  2. [2]Highlight.js 11.12.0 package metadata(2026-10-05)
  3. [3]Highlight.js 11.12.0 release(2026-10-05)
  4. [4]Highlight.js BSD-3-Clause license(2026-10-05)
編集部からの補足

既知の言語を明示して使う方法と、入力から自動判定する方法を同じAPIで選べるのが扱いやすい点です。全言語を読み込む必要がない画面ではlib/commonや個別の言語登録を使い、配布サイズと初期化コストを抑える構成も検討できます。

3ステップで試す

  1. 1

    Node.js要件を確認してHighlight.js 11.12.0を導入する

    確認対象の安定版を一時ディレクトリへ固定し、既存プロジェクトへ影響しない状態で試します。

    node -e 'if (Number(process.versions.node.split(".")[0]) < 12) throw new Error("Highlight.js 11.12.0 requires Node.js >= 12")' && demo=$(mktemp -d "${TMPDIR:-/tmp}/highlightjs.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact highlight.js@11.12.0
  2. 2

    XMLを明示指定して構文をハイライトするスクリプトを作る

    READMEのNode.js例に沿って、言語を自動判定せずXMLとして固定してハイライトします。

    printf "%s\n" "const hljs = require('highlight.js/lib/common');" "const result = hljs.highlight('<h1>Hello</h1>', { language: 'xml' });" "console.log(result.value);" "if (!result.value.includes('hljs-tag')) throw new Error('highlight output missing');" > demo.cjs
  3. 3

    変換結果を実行して確認する

    HTML形式のハイライト結果が出力され、hljs-tagを含むことをスクリプト内で確認します。

    node demo.cjs
公式READMEで確認

成長

成長の推移 · 直近30日

25,005 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
54

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • syntax-highlighting
  • language-grammars
  • highlighting
  • syntax-highlighter
  • javascript
Stars
25,005
Forks
3,752
Watchers
296
Open Issues
65
Contributors
415
所有者種別
Organization
主要言語
JavaScript
ライセンス
BSD-3-Clause
リポジトリ最終更新
2026/09/06

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?