9年前に書いて下書きのまま埋もれてた、用語集をyamlで書くというエントリがあります。(このエントリと一緒に公開しました)
YAML で用語集を書くと索引付きの HTML が1枚出てくる、ygloss という小さいツールの話です。

で、ツールの方もその後どうなったかというと、放置してました😃

中身は Python 2 で、テンプレートは CDN から jQuery を読んでいて、旧エントリには pip install ygloss と書いてあるけど、 PyPI には公開してなかったみたい。

というわけで、コンセプトは変えずに Claude Code に全部任せて書き直してみた、というエントリ。

ygloss のおさらい

用語集ツールって、探してもあんまり流行ってるのが無いんですよね。(9年前の時点での話ですが)
なので、テキストで書けるやつを自分で作ったのが ygloss です。

こんな YAML を書くと、

---
lang: ja
title: 用語集のタイトル
description: タイトルの下に表示される説明。
---
用語: |
  説明文。ほかの用語や URL は自動でリンクになり、
  改行はそのまま表示されます。
別の用語: 1 行だけの説明。

索引付きの HTML が1枚出てきます。仕様は9年前と同じで、

これだけ。

Claude に頼んだこと

ローカルに clone して、Claude Code にこう投げました。

ygloss は9年前から放置してたリポジトリです。
コンセプトは変えずに現在の最新pythonに書き直したいです。
コンセプトは「読める範囲の小さい実装」です。

できたもの

https://github.com/yosiopp/ygloss

新しい ygloss で生成した用語集。左に索引と絞り込み欄、右に用語と説明が並び、説明文中の用語がリンクになっている

ygloss.py の先頭はこうなりました。

#!/usr/bin/env -S uv run --script
# /// script
# requires-python = ">=3.13"
# dependencies = ["pyyaml>=6"]
# ///

これは PEP 723 のインラインスクリプトメタデータというやつで、必要な Python のバージョンと依存をスクリプト自身に書いておくと、uv が初回実行時に環境を用意してくれる仕組み。
なので使い方はこう。

uv run ygloss.py example/glossary.yaml > glossary.html

shebang が uv run を呼んでいるので ./ygloss.py example/glossary.yaml でも同じです。pip も venv も出てこない。

実装で変わったところは、ざっくりこんな感じでした。

tmpl.html の方は jQuery が消えて、絞り込みは素の JavaScript で 18行。
CSS は 71行から 145行に増えて、ダークモードは prefers-color-scheme で OS に追従、印刷時は索引と検索欄が消えてタイトルと本文だけになります。

おしまい

9年放置したリポジトリが、プロンプトと選択肢を選んだだけで、現代化されました。
次にまた9年放置しても、また Claude に頼めば良いですね。

ちなみに、このエントリも Claude に下書きしてもらってます 😉

参考