難しい言葉を、読んでいるその場で説明 — popup の使い方
popup は Web ページや の難しい言葉に説明カードを付けるスキルです。点線の言葉にマウスを乗せてカードを見たら、インストールして頼みましょう。
何を作ってくれるのか
読んでいて知らない言葉が 1 つあると、段落全体がわからなくなります。popup はその言葉に小さなカードを付けます。マウスを乗せる(スマートフォンはタップ、キーボードは Tab)とカードが開きます。説明はすべて 1 つの用語集 ファイルにあるので、一度直せばすべてのページが直ります。
ここで試してみてください。このページの点線の付いた言葉(JSON、、 など)にマウスを乗せると、SONUB の用語ポップアップが出ます。popup が作るカードもこのような見た目です。
カード 1 枚に入るもの
- 言葉・読み方・どの分野の言葉か
- 太字 1 行の意味
- 2〜3 文の説明
- かんたんに言うと — 身近なたとえ 1 つ
- 例 — 1 行に 1 つ、とその働き
- コピーボタン付きのソースコード
- その場でカードが切り替わる関連用語と、プロジェクトのより詳しいページへの「もっと知る」リンク
インストール
プロジェクトのフォルダーので実行してください。すべてのプロジェクトで使うなら -g を付けます。インストールしたら、を読み込むようにの新しいセッションを始めてください。
npx skills add https://sonub.com -s popup
ブラウザの中で動く練習用の Linux(ホームフォルダ /home/you)なので、自分のパソコンには何もインストールされません。Enter を押すとコマンドが実行されます。引き出しを閉じても、再読み込みしても、あとで戻ってきても、作業はこのブラウザにそのまま残ります。消すには[最初の状態に戻す]を押します。
Linux をダウンロード中 % Linux を起動中… Linux を起動できませんでした。接続を確認して、もう一度ボタンを押してください。
npx skills add https://sonub.com -s popup -g
ツール popup.py に必要なのは 3.8 以上だけです(のみ使用)。ポップアップ自体はも手順もなしに、最新のならどこでも動きます。
使い方 — エージェントに頼む
では /popup のあとに何を対象にするかを書きます。ほかのエージェントでは「popup スキルで …」と言います。頼む範囲が狭いほど、その部分だけを正確に行います。
こう話しかけてみて
- 「/popup はじめにのページ」
- 「/popup 、、」
- 「/popup 上部メニュー」
- 「/popup を初心者にも読みやすく」
エージェントがすること — 7 つのステップ
- 対象を見つける どのページ・ファイル・部分かを決め、まずプロジェクトにすでにある用語集やの仕組みを探します。あれば、2 つ目のポップアップの仕組みを足さずに、それを広げます。
- 最初に一度だけ準備 popup.py init が popup.js と popup.css をコピーし、選んだ言語の空の用語集と .popup.json を作ります。そのあとに 2 行を加えます。
- 点検 popup.py audit が、ドキュメントごとにすでに用語集にある用語と、項目のない候補(略語・ の言葉・コードの言葉)を一覧にします。自分の言語の言葉は検出されないので、エージェントが本文を読んで選びます。
- 選ぶ 初めての人が立ち止まる言葉、知らないと段落全体がわからなくなる言葉、プロジェクトのあちこちにくり返し出る言葉を選びます。日常語や、本文がその場で説明している言葉は外します。
- 書く プロジェクトが提供するすべての言語で、確かめた事実だけを書きます。項目は 1 つの入力ファイルにまとめ、popup.py add --dry-run で確認してから取り込みます。既存の項目は --overwrite なしでは上書きしません。
- 付ける main と article の中のふつうの文章は自動で囲みます。や文は data-term で示し、リンク・カード・見出しの横には ? ボタンを置きます。 で読む には、代わりに GLOSSARY.md とリンクを付けます。
- 確かめる popup.py check で用語集を検査し、エージェントがブラウザーでページを開いて、マウスを乗せる・離す・クリック・関連用語・Esc・Tab・狭い画面・別の言語を確かめます。確かめられなかったことは報告に書きます。
ツール popup.py — 自分で実行してもかまいません
popup.py はインストールしたスキルの scripts フォルダーにあります(例:popup/scripts/popup.py)。下のボックスでは短く popup.py と書いています。パスは のいちばん上にある .popup.json から読みます。
Web ページに付ける
ビルド手順はありません。ページかレイアウトにこの 2 行を入れれば、popup.js が用語集を読み、本文の用語を見つけます。
<link rel="stylesheet" href="/popup/popup.css">
<script defer src="/popup/popup.js" data-glossary="/popup/glossary.json"></script>
用語集 JSON — 説明はすべてここに
ページには用語の id だけを置き、説明はこの 1 つのファイルに書きます。言語ごとに term・short・long は必須で、easy・example・code・reading は任意です。一度使った id は変えません。
{
"defaultLocale": "en", "locales": ["en", "ko"],
"categories": { "web": { "en": "Web", "ko": "웹" } },
"terms": {
"api": {
"category": "web", "aliases": ["API", "APIs"], "related": ["endpoint"], "href": "../docs/api.md",
"text": {
"en": { "term": "API", "short": "…", "long": "…", "easy": "…", "example": "`GET /users/42` asks for user 42" },
"ko": { "term": "API", "reading": "에이피아이", "short": "…", "long": "…" }
}
}
}
}
言葉の示し方
main · article · [data-popup-root]- 自動 — これらの範囲のふつうの文章で、各用語の最初の出現を囲みます
<span data-term="api">APIs</span>- 活用形や、自動で拾うべきでない語句・文
<button class="popup-info" data-term="api"></button>- リンク・カード・見出しの横の ? ボタン — スマートフォンとキーボード向け
<a href="/docs/api" data-term="api">- リンクに付けると:マウスを 止めるとプレビュー、クリックすればそのままリンク先へ
data-popup-scope="shell"- その部分だけ別の意味になる言葉に
PopupGlossary.apply(element)- が描き直したあと、新しい内容を囲む(二重には囲まない)
・・、・・、のやアプリでも使えます。ごとの付け方はスキルの references/integrate.md にあります。
GitHub で — README と Markdown
GitHub は を実行しないので、Markdown ではポップアップの代わりにリンクを使います。popup.py md が GLOSSARY.md を書き出し、popup.py link がすべてのファイルで各用語の最初の出現をそこにつなぎます。リンクのタイトルが短い意味なので、マウスを乗せると表示されます。コードブロック・見出し・フロントマターはそのままにし、表の中の | は \| に変えて表が崩れないようにします。
Call the [API](../GLOSSARY.md#api "The agreed way one program asks another for something") with an API key.
読む人の使い方
- マウスを乗せるとカードが開き、離すと閉じます。言葉からカードへ移る間は開いたままです。
- クリックするとカードが固定され、コードをコピーしたりリンクを開いたりできます。もう一度クリックすると閉じます。
- 関連用語のチップを押すと、その場でカードが切り替わります。
- Tab で言葉に移ると開き、Enter でカードの中に入り、Esc で閉じるとが言葉に戻ります。
- スマートフォン( 以下)では下からせり上がるシートになり、大きな画面の下のほうの言葉ではカードが言葉の上に開きます。
- 右から左に書く言語とに対応し、、アラビア語の接頭辞、中国語や日本語など、文字ごとに合った方法で言葉を見つけます。
よくある質問
下線だらけになりませんか?
各用語を囲むのは、ページ(または部分)ごとに最初の 1 回だけです。また、スキルはエージェントに、1 つの段落で下線を多くても 3〜4 個までにするよう教えています。
すでにツールチップがあるプロジェクトでは?
エージェントはまず既存の用語集やツールチップの仕組みを探し、それを広げます。たとえば SONUB では popup.js を加えず、17 言語の自前の 用語集に項目を足します。
複数の言語はどう扱うのですか?
すべての言語を 1 つの用語集 JSON にまとめて置きます。check が抜けている言語を見つけ、ポップアップはページの言語(html lang)の説明を表示します。
説明がまちがっていたら?
まちがったポップアップは、すべての読者にまちがいを教えてしまいます。そのためスキルは、ドキュメントや実際にコードを動かして確かめた数字・・動作だけを書かせます。直すときは用語集を一度直せば、すべてのページが追従します。