JavaScriptでMigemoを利用するためのライブラリ
$ npm install jsmigemo
https://cdn.jsdelivr.net/npm/jsmigemo/dist/<filename> の <filename> の部分に、用途に応じて以下のファイル名を指定してください。
| Format | Default | Minified |
|---|---|---|
| ESModule | jsmigemo.mjs | jsmigemo.min.mjs |
| CommonJS | jsmigemo.cjs | jsmigemo.min.cjs |
| IIFE | jsmigemo.iife.js | jsmigemo.min.iife.js |
DefaultとMinifiedの違いは以下です。
- Defaultは、ソースコードを1つにまとめただけの、変数名もそのまま残っているJSファイルです。開発時にはこちらをご利用ください。
- Minifiedは、ファイルサイズを小さくするための様々な処理をしたJSファイルです。配布時にはこちらをご利用ください。
ESModuleとCommonJS、IIFEの違いは以下です。
- ESModuleは、最近のバンドラやNode.JS、モダンブラウザなど幅広く利用できるフォーマットです。
- CommonJSは、browserifyやwebpack1のような古いバンドラでの利用を意図したフォーマットです。
- IIFEは、レガシーブラウザやESModuleの利用できない環境(例えばローカルのJSファイル)での利用を意図したフォーマットです。
$ npm install jsmigemo
$ jsmigemo
QUERY: kensaku
PATTERN: (kensaku|けんさく|ケンサク|建策|憲[作冊]|検索|献策|研削|羂索|kensaku|ケンサク)
import { readFile } from "node:fs/promises";
import { CompactDictionary, Migemo } from "jsmigemo";
const data = await readFile("migemo-compact-dict");
const buffer = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
const dict = new CompactDictionary(buffer);
const migemo = new Migemo();
migemo.setDict(dict);
console.log(migemo.query("kensaku"));
//=> (kensaku|けんさく|ケンサク|建策|憲[作冊]|検索|献策|研削|羂索|kensaku|ケンサク)import { CompactDictionary, Migemo } from "https://cdn.jsdelivr.net/npm/jsmigemo/dist/jsmigemo.min.mjs";
const data = await Deno.readFile("./migemo-compact-dict");
const dict = new CompactDictionary(data.buffer);
const migemo = new Migemo();
migemo.setDict(dict);
console.log(migemo.query("kensaku"));
//=> (kensaku|けんさく|ケンサク|建策|憲[作冊]|検索|献策|研削|羂索|kensaku|ケンサク)<input id="queryInput" type="text" placeholder="kensaku">
<pre id="regexOutput"></pre>
<script src="https://cdn.jsdelivr.net/npm/jsmigemo/dist/jsmigemo.min.iife.js"></script>
<script>
const DICT_URL = "https://cdn.jsdelivr.net/npm/jsmigemo/migemo-compact-dict";
const queryInput = document.getElementById("queryInput");
const regexOutput = document.getElementById("regexOutput");
let migemo = null;
async function setup() {
const response = await fetch(DICT_URL);
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
const buffer = await response.arrayBuffer();
const dict = new window.jsmigemo.CompactDictionary(buffer);
migemo = new window.jsmigemo.Migemo();
migemo.setDict(dict);
}
queryInput.addEventListener("input", () => {
if (!migemo) {
return;
}
regexOutput.textContent = migemo.query(queryInput.value.trim());
});
setup().catch((error) => {
regexOutput.textContent = `辞書の読み込みに失敗: ${error.message}`;
});
</script>> node bin/jsmigemo-dict.mjs <text-dict-file> <compact-dict-file><text-dict-file> は、C/Miemoで使われているテキスト形式の辞書ファイルです。
<compact-dict-file> は、出力ファイル名です。
本ライブラリに付属の辞書ファイルは、MITライセンスのプロジェクトから生成されています。 yet-another-migemo-dict
本プロジェクト配下のファイルは、MIT LICENSEのもとで配布します。