専門記事を書いていると、記事の外に「用語集」ページがほしくなる瞬間がある。読者が意味を確認しに戻ってこられる場所、検索から用語で入ってくる入口。ところが手作業でHTMLを組んだ用語集は、用語を1つ足すたびに崩れる。並び順を直し、リンクを貼り直し、説明文をコピーして貼り付ける。記事本文の説明と用語集の説明が食い違う、という地味な事故も起きる。
解決の方向はシンプルで、用語集を「書く」のをやめて「生成する」に切り替える。サイト共通の用語辞書を一つ持ち、そこから用語集ページを組み立てる。
辞書を単一のソースにする
用語注釈マネージャーは、用語名・読み方・短い説明・詳細説明・別名・カテゴリーなどを持つ用語辞書(cam_term)でサイト全体の用語を一元管理する。この辞書は本文中のツールチップや脚注の説明元でもある。
つまり用語集ページのためだけに説明を書き直す必要がない。本文に注釈を付けるときに整えた説明が、そのまま用語集にも並ぶ。辞書を直せば両方が同時に更新される。二重管理をなくすのが、作っている側の狙いとしても設計の中心になっている。
用語集ページの置き方


固定ページや投稿に、ショートコードかブロックを一つ置くだけでいい。
[cam_glossary]
ブロック派なら「用語集」ブロックを選ぶ。どちらも中身は同じで、置いた場所に辞書の内容が展開される。パラメータで並び順や粒度を指定すると、同じ辞書から用途の違う用語集を作り分けられる。
指定できるのは、おおよそ次のあたり。
| 指定できること | 選べる内容 |
|---|---|
| 並び順 | 読み方の50音順 / カテゴリー別 / 用語名順 |
| 説明の粒度 | 短い説明 / 詳細説明 / 両方 |
| カテゴリー絞り込み | 特定カテゴリーだけ表示 |
| 列数 | 1〜4列 |
読み方(ふりがな)は、この50音の並べ替えとページ内の検索に使う。本文から用語を拾う検出には別名(表記ゆれ)のほうを使うので、役割が分かれている点は押さえておきたい。
載せる用語を選ぶ
辞書にある用語を全部並べたいとは限らない。社内向けの用語、まだ説明が固まっていない用語は、用語集には出したくないこともある。
そこで用語ごとに「用語集に掲載」のオン/オフを持たせてある。辞書には残したまま、用語集ページには出さない、という切り分けができる。掲載する/しないを用語単位で決められるので、公開用の用語集と本文注釈用の辞書を、無理に一致させなくていい。
用語集だけのページは軽い

注釈のあるページには、ツールチップや脚注を動かすためのフロントJSが読み込まれる。いっぽう用語集だけを置いたページは、CSSのみで表示され、JavaScriptを必要としない。用語をただ一覧するページに、余計なスクリプトを積まない作りになっている。
もう一つ、用語集ページには DefinedTermSet という構造化データ(JSON-LD)が出力される。ただしこれはリッチリザルトのように検索結果の見た目が変わるものではなく、ページの内容を検索エンジンに補助的に意味づけするためのもの。用語集ページを置けば順位が上がる、という類いの約束はできない。過度な期待はしないほうがいい。
どこから始めるか
まずは本文に注釈を付ける流れの中で、辞書を育てるところから。用語がある程度たまってきたら、固定ページに [cam_glossary] を一行置いて、並び順と粒度を選ぶ。辞書を単一のソースにしておけば、用語集は「作る」ものではなく、辞書の別の見せ方として自然についてくる。
用語辞書から注釈と用語集を一緒に扱う仕組みは、用語注釈マネージャー(https://plugear.net/plugins/content-annotation-manager/)にまとまっている。
