参照と出現の構造

出現のマークアップ
[[ターム]]  start:'[['
[[ターム@接尾辞]]   start:'[[' delim: '@'
ターム(マークアップなし)
ターム@接尾辞(マークアップなし、厳しそう)
[-非ターム]  start: '[-'


[外部ラベル](URL)


[>参照先ラベル] start: "[>"


[(引用キー)] start: "[("

[[ターム (引用キー)]] start: "[[" delim "("

出現行列作成で拾う。自動マークアップ、自動接尾辞付けが可能となるように。ビルドスクリプトで記述する。auto-term-markup ツール。

auto-term-markup --dict dict.json --context tag-context.json article.md  

バリデーション項目:

  1. タームは定義済みか、または required terms に入っているか?
  2. 接尾辞は suffixes に入っているか?
  3. 外部ラベルは external labels に入っているか?
  4. 外部ラベルが意図せぬ別名になってないか? 別名は許す。
  5. 外部ラベルが曖昧ラベルになってないか? 曖昧ラベルは許す。
  6. 引用キーは citekeys に入っているか?
  7. 引用キーが別名になってないか? 別名禁止
  8. 引用キーが曖昧キーになってないか? 曖昧キーは禁止

対照データ:

  1. defined terms リスト
  2. required terms リスト
  3. suffixes リスト
  4. external labels リスト
  5. citekeys リスト
  6. external terms リスト
  7. external URIs リスト

生成データ:

  1. term occurrences 行列
  2. external-reference occurrences 行列
  3. citekey occurences 行列
  4. external-term occurences 行列
  5. external-term map-table マップテーブル
定義のマークアップ
[+ターム1/の/ターム2@接尾辞] start: '[-'

索引で拾う。

バリデーション項目:

  1. 接尾辞は suffixes に入っているか?

対照データ:

  1. suffixes リスト

生成データ:

  1. definition links 行列
先頭文字パターン
  • '[[' ターム term
  • '[-' 非ターム non-term
  • '[>' ラベル参照 internal reference by label
  • '[(' 引用キー参照 internal reference by citekey
  • '[+' 定義 defining term

これくらいで、ビルダー、検索・分析エンジンの入力データとなる。

パーズ結果

[[ターム]]

{
"type": "text",
"value": "[[ターム]]"
}

[-非ターム]

{
"type": "text",
"value": "[-非ターム]"
}

[外部ラベル](URL)

{
"type": "link",
"title": null,
"url": "URL",
"children": [
  {
  "type": "text",
  "value": "外部ラベル",
  }
]
}

[>参照先ラベル]

{
"type": "text",
"value": "[>参照先ラベル]"
}

[(引用キー)]

{
"type": "text",
"value": "[(引用キー)]"
}

[[ターム (引用キー)]]

{
"type": "text",
"value": "[[ターム (引用キー)]]"
}

[+ターム1/の/ターム2@接尾辞]

{
"type": "text",
"value": "[+ターム1/の/ターム2@接尾辞]"
}