Awesome
jsmigemo
JavaScriptでMigemoを利用するためのライブラリ
Install from npm
$ npm install jsmigemo
Install from CDN
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.js | jsmigemo.min.js |
DefaultとMinifiedの違いは以下です。
- Defaultは、ソースコードを1つにまとめただけの、変数名もそのまま残っているJSファイルです。開発時にはこちらをご利用ください。
- Minifiedは、ファイルサイズを小さくするための様々な処理をしたJSファイルです。配布時にはこちらをご利用ください。
ESModuleとCommonJS、IIFEの違いは以下です。
- ESModuleは、最近のバンドラやNode.JS、モダンブラウザなど幅広く利用できるフォーマットです。
- CommonJSは、browserifyやwebpack1のような古いバンドラでの利用を意図したフォーマットです。
- IIFEは、レガシーブラウザやESModuleの利用できない環境(例えばローカルのJSファイル)での利用を意図したフォーマットです。
HOW TO USE
CLI
$ npm install jsmigemo
$ jsmigemo
QUERY: kensaku
PATTERN: (kensaku|けんさく|ケンサク|建策|憲[作冊]|検索|献策|研削|羂索|kensaku|ケンサク)
Node.js
const migemo = require('jsmigemo');
const path = require('path');
const fs = require('fs');
const buffer = fs.readFileSync('migemo-compact-dict');
const dict = new migemo.CompactDictionary(buffer.buffer);
const m = new migemo.Migemo();
m.setDict(dict);
console.log(m.query('kensaku'));
//=> (kensaku|けんさく|ケンサク|建策|憲[作冊]|検索|献策|研削|羂索|kensaku|ケンサク)
Deno
import * as migemo from "https://cdn.jsdelivr.net/npm/jsmigemo/dist/jsmigemo.min.mjs";
const data = await Deno.readFile("./migemo-compact-dict");
const dict = new migemo.CompactDictionary(data.buffer);
const m = new migemo.Migemo();
m.setDict(dict);
console.log(m.query("kensaku"));
//=> (kensaku|けんさく|ケンサク|建策|憲[作冊]|検索|献策|研削|羂索|kensaku|ケンサク)
Browser
jsmigemo.js
と migemo-compact-dict
を本リポジトリから用意します。
jsmigemoを使うHTMLに次のタグを追加し、jsmigemo.js
を読み込みます。
<script type="text/javascript" src='jsmigemo.js'></script>
次に、scriptタグ内で、辞書ファイルをサーバから読み込みます。
let cd;
const req = new XMLHttpRequest();
req.open("get", "migemo-compact-dict", true);
req.responseType = "arraybuffer";
req.onload = function () {
const ab = req.response;
cd = new jsmigemo.CompactDictionary(ab);
}
req.send(null);
読み込み完了後、migemoを初期化します。 setDictメソッドで、先に読み込んだ辞書ファイルを指定します。 queryメソッドで、検索したい単語をローマ字で引数に与えると、その単語にヒットする正規表現が返ります。
const migemo = new jsmigemo.Migemo()
migemo.setDict(cd);
const rowregex = migemo.query(queryInputElement.value);
queryメソッドはステートレスのため、複数のスレッドから同時に呼び出すことができます。
辞書ファイルの生成
> node bin/jsmigemo-dict.mjs <text-dict-file> <compact-dict-file>
<text-dict-file>
は、C/Miemoで使われているテキスト形式の辞書ファイルです。
<compact-dict-file>
は、出力ファイル名です。
ライセンス
本ライブラリに付属の辞書ファイルは、SKK辞書から生成されています。
そのため、辞書ファイル migemo-compact-dict
のライセンスはSKK辞書から継承しています。
SKK辞書のライセンスについては、SKK辞書配布ページをご覧ください。
migemo-compact-dict
以外のファイルについては、MIT LICENSEのもとで配布します。