Skip to content

oguna/jsmigemo

Repository files navigation

jsmigemo

Node.js CI npm version

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.jsmigemo-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のもとで配布します。