属性だけでHTML要素からAJAX、WebSocket、SSEリクエストを送れる軽量なJavaScriptライブラリ
davatron5000/microlighter
各トークンをspan要素で囲まず、CSS Custom Highlight APIを使って構文をハイライトする、依存関係のないJavaScriptライブラリ。
- スター
- 1,055
- フォーク
- 33
- 未解決の Issue
- 22
- 最終コミット
- 先月
これは何?
MicroLighterは、Webページ向けの軽量な構文ハイライターです。TextMateの文法を読み込み、ブラウザーのCSS Custom Highlight APIで色を適用するため、コードブロック内にトークン用のspanを挿入せず、マークアップをすっきり保てます。圧縮時のサイズは約2 KiBで、実行時の依存関係はありません。
オンデマンドで読み込める37言語と、CSSカスタムプロパティで制御する10種類のテーマを備えています。プログラムから呼び出す`highlightAll()`関数、`syntax-highlight`イベントに応答する自動実行スクリプト、CDNリンク、またはコピーボタンと行番号を追加するオプションの`<micro-lighter>` Webコンポーネントから利用できます。
トークナイザーは、OnigurumaやWebAssemblyではなく、ブラウザー標準のRegExpを使用します。そのためバンドルサイズを小さく抑えられる一方、Shikiなどの大規模なツールと比べて、対応言語や文法の精度は劣ります。
主な機能
- 01圧縮時のサイズは約2 KiBで、実行時の依存関係なし
- 02トークン用のspan要素をDOMに挿入せずにコードをハイライト
- 03TextMateの文法を使い、37言語をオンデマンドで読み込み
- 04CSSカスタムプロパティで設定できる10種類のテーマを同梱
- 05プログラム、オート実行、Webコンポーネントの各APIを提供
- 06ハイライトしたコードブロックをプレーンテキストとして編集可能
ユースケース
- ドキュメントサイトやブログに軽量な構文ハイライトを追加する
- 編集可能なWebコンポーネントやブラウザー内コードエディターでコードをハイライトする
- Shikiのような大きな依存関係を追加せずにハイライトを導入したいプロジェクト
クイックスタート
- 1
パッケージをインストールする
npm install microlighter - 2
テーマをインポートし、JavaScriptでハイライターを実行する
import "microlighter/themes/github.css"; import { highlightAll } from "microlighter"; document.body.dataset.syntaxTheme = "github"; await highlightAll();
使う前に知っておきたいこと
- 言語の対応範囲と文法の精度は、Shikiなどの大規模なツールより限定的です。
- CSS Custom Highlight APIを使用するため、ブラウザーがこれに対応している必要があります。
トピック
よくある質問
- microlighter とは?
- 各トークンをspan要素で囲まず、CSS Custom Highlight APIを使って構文をハイライトする、依存関係のないJavaScriptライブラリ。 MicroLighterは、Webページ向けの軽量な構文ハイライターです。TextMateの文法を読み込み、ブラウザーのCSS Custom Highlight APIで色を適用するため、コードブロック内にトークン用のspanを挿入せず、マークアップをすっきり保てます。圧縮時のサイズは約2 KiBで、実行時の依存関係はありません。
- microlighter は無料で使えますか?ライセンスは?
- microlighter は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- microlighter は今もメンテナンスされていますか?
- 半年以内に更新あり。microlighter の最終コミットは 2026年9月11日 です。
- microlighter は何に使えますか?
- ドキュメントサイトやブログに軽量な構文ハイライトを追加する 編集可能なWebコンポーネントやブラウザー内コードエディターでコードをハイライトする Shikiのような大きな依存関係を追加せずにハイライトを導入したいプロジェクト
- microlighter のインストール方法は?
- パッケージをインストールする: npm install microlighter テーマをインポートし、JavaScriptでハイライターを実行する: import "microlighter/themes/github.css"; import { highlightAll } from "microlighter"; document.body.dataset.syntaxTheme = "github"; await highlightAll();
- microlighter はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/davatron5000/microlighter
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
クラスを使わず、ネイティブ要素をスタイリングできる、約10KBの依存関係ゼロのセマンティックHTML・CSS・JS UIライブラリ。
Node.jsとChromiumを基盤に、JavaScript、HTML、CSSでクロスプラットフォームのデスクトップアプリを構築するフレームワーク。
CLI、JavaScript API、Go APIを備えた、非常に高速なJavaScript、TypeScript、JSX、CSSバンドラー。
コードを変更せずに、不要な再レンダリングを引き起こすコンポーネントを自動検出してハイライトするReactパフォーマンスツール。
ブラウザー上で動作するJavaScript製の図表・ホワイトボード編集ツール。クライアント側で実行でき、セルフホストにも対応します。