本文へ移動

Jisho辞書

JMdictの単語を読み、表記、英語の意味、含まれる漢字、ローマ字から引け、必要な小さなチャンクだけを取得します。初期値はセーフモードで、各語義にはJMdictの印が付き、「フィルターなし」も選べます。2,999字の漢字の学年、JLPTレベル、読み、意味、形の似た漢字の組も収め、表ごとに独立したエントリポイントがあります。

「Jisho」は「辞書」のローマ字表記です。日本語の単語と漢字を収めています。 名前について(英語)

目次

解説

構成

ソースの構成とその理由。

構成

メインのエントリは型と関数だけで、データを持ちません。表はそれぞれ独立したエントリポイントなので、ページはインポートしたものの分だけを読み込みます。src/data/は機械出力で、scripts/build-data.mjsが書き出し、src/data/words/はscripts/build-words.mjsが書き出します。単語だけは表がいくつものチャンクに分かれていて、words.tsが引くときに必要なチャンクを見つけて取得します。

src/
├── index.ts   型と、漢字の表を読む関数
├── entries.ts 完全な項目のエントリポイント:loadEntry、readEntry、referenceOf。wordsには入れていないので、単語を引くだけのページは完全な項目を読み込まない
├── words.ts   単語を引く(必要なチャンクを取得)
├── words-manifests.ts チャンクの場所を書いた小さなファイル。データのファイルを名指しするのはここだけなので、entriesは単語のデータを持たない
├── words-filter.ts  引いた結果を絞る小さな道具
├── examples.ts 例文のエントリポイント:loadExamples、exampleCredit、furiganaOfExample。wordsには入れていないので、単語を引くだけのページは例文を読み込まない
├── words-examples.ts loadExamples:単語の例文を、示す語義に結び付けて、専用のチャンクから取得
├── strokes.ts  筆順のエントリポイント:loadStrokes、strokeOrderSvg(筆順を描く)、findByDrawing(描いた漢字から探す)
├── words-suggest.ts suggestWords:何も見つからなかった検索のために、入力から1文字違いのよく使う単語を返す
├── words-entry.ts  loadEntry:単語の完全な項目(すべての語義とJMdictが記すこと)を、専用のチャンクから取得
├── words-inflected.ts 活用した文字列を、もとの辞書形から見つける(findInflected、inflectedOf)
├── reader.ts     readText:テキストを最長一致で単語に分け、ふりがな、意味、レベルを付ける
├── furigana.ts   単語(と、その活用形)のどのかなが、どの漢字を読むか
├── study-list.ts 読んだテキストの単語を1つずつ並べた表(行、CSV、TSV)
├── deinflect.ts  語尾の規則の表:活用した語のもとになりうる辞書形と道すじ。データなし
├── version.ts パッケージのバージョン
└── data/      表(それぞれ独立したエントリポイント)
    ├── grades.data.ts      学年
    ├── jlpt.data.ts        JLPTレベル
    ├── kanji.data.ts       読み、意味、画数、順位
    ├── look-alike.data.ts  形の似た漢字の組
    ├── strokes/            漢字の筆順(スクリプトが書き出す)
    │   ├── stroke-manifest.data.ts  筆順のチャンクの始まりと取得の方法
    │   └── t00.data.ts …     漢字ごとの筆順のチャンク(KanjiVG由来)
    ├── examples/           例文(スクリプトが書き出す)
    │   ├── example-manifest.data.ts  例文のチャンクの始まりと取得の方法
    │   ├── example-extra-manifest.data.ts  セーフモードが除く一覧についての同じもの(フィルターなしのときだけ取得)
    │   ├── s000.data.ts …    例文のチャンク(JMdictの項目番号順)
    │   └── xs0.data.ts …     セーフモードが例文を除く項目の完全な一覧(フィルターなしのときだけ取得)
    └── words/              単語(スクリプトが書き出す)
        ├── common.data.ts    セーフモードで残るよく使う単語を一つの表に
        ├── common-extra.data.ts  よく使う単語をすべてそろえるために加えるもの
        ├── manifest.data.ts  各チャンクの始まりと取得の方法
        ├── extra-manifest.data.ts  セーフモードが除くものを収めたチャンクについての同じもの
        ├── entry-manifest.data.ts  完全な項目のチャンクの始まりと取得の方法
        ├── entry-extra-manifest.data.ts  セーフモードが除く完全な項目についての同じもの(フィルターなしのときだけ取得)
        ├── e000.data.ts …    完全な項目のチャンク(JMdictの番号順)
        ├── xe0.data.ts …     セーフモードが除く語義を持つ完全な項目のチャンク(フィルターなしのときだけ取得)
        ├── r000.data.ts …    読みで分けた行のチャンク
        ├── f00.data.ts …     表記から読みへの索引のチャンク
        ├── xr0.data.ts …     セーフモードが除くものを読みで分けたチャンク(フィルターなしのときだけ取得)
        └── xf0.data.ts …     表記の索引についての同じもの

ソースを見るGitHub で編集@johnmorrisdotca/jisho 2.11.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。