エントリー本文と追記に abbr (省略語) や acronym (頭文字語) があった場合、それらの語句を定義した定義リストを生成する Movable Type プラグインを作ってみました。各々の要素でコンテナした語句が定義語 (dt)、title 属性の値は定義語の概要 (dd) になります。ヒントは lomo さんの記事から。
今回は abbr (省略語) や acronym (頭文字語) でやりましたが、microformats とか、何か他にも面白い事ができそうな予感。
利用の際は自己責任でお願いします。ぜひ修正案などもお伝えください。
ダウンロードページよりダウンロード後、ダウンロードしたアーカイブを展開し、生成される EntryGlossary ディレクトリを Movable Type の plugins ディレクトリにアップロードするだけです。アップロード後、Movable Type にログインし、システムプラグインメニューで、インストールされている事を確認してください。うまくインストールされていれば、プラグインがリストされているはずです。
MTEntries コンテナタグ内、もしくは個別エントリーアーカイブテンプレートで利用できる変数タグ。このタグを設置した場所に定義リストが出力されます。
設置する場所は自由ですが、記事の終わりに付けるのが良いかもしれません。
<MTEntries><div class="section">
<h3><$MTEntryTitle$></h3>
<$MTEntryBody$>
<$MTENtryMore$>
<$MTEntryGlossary$>
</div></MTEntries>
<$MTEntryGlossary$> 変数タグの出力例です。
<dl class="glossary">
<dt>YAML</dt>
<dd>YAML Ain't Markup Language</dd>
<dt>CSS</dt>
<dd>Cascading Style Sheets</dd>
<dt>JSON</dt>
<dd>JavaScript Object Notation</dd>
</dl>
今回のプラグイン作成には、シックス・アパートのウェブサイトで公開されている柳下さんのドキュメントで Movable Type プラグイン作成の基本的な事を学び取ることができました。
また、hogeラーへの道は fumiakiy 先生がレクチャーしてくださいました。解らないところでは、ほとんど答えのようなヒントを出してくださいながらも、答えは自分自身で出すようにナビゲートしてくださったおかげで、意味を確認しながらきちんと進めることができました。宿題もありますが、それはバージョンアップとともにクリアしていこうと思います。がんばったら Tech Talk Blog に登場できるといいなあ。
これ、素晴らしいです!早速 試してみました。
別途、Glossary 用のページを用意しておいて、
<MTEntries author="[author]">
<$MTEntryGlossary$>
</MTEntries>
なんてしておけば、全エントリーのまとめリストもできちゃいますね。
wish list のようになってしまって恐縮なのですが、個人的には、もし、出力した
定義リストの見出し語そのものを、
sort_by="(ascend|decend)"
のように、昇順・降順 並べ替えできたら嬉しいんですけど、可能ですか?
> ゆう@我的春秋 さん
CSS Nite LP の際はありがとうございました。
また、今回も早速試していただき、ありがとうございます!
用語集が作れると、
<link rel="glossary" title="用語集" href="glossary.html" />
という感じにもできますね。現在はエントリーごとに出力しているので、一部かぶってしまいますが、これも宿題の一つです。また、フィードバックをいただきましたソートの件ですが、こちらも宿題です。
ぜひ対応させたいので、今後のバージョンアップにご期待ください!
よろしくお願いします。
こちらこそ、その節はコメントをいただいてありがとうございました!
実は 2xup も、興味深いエントリーがあって、前々からちょくちょく
立ち寄らせていただいてます。
プラグインの方、特に急ぐ性格のものでもありませんし、今のままでも
かなり使い出がありますので、気が向いた時に検討していただければ
結構です。
大変結構なものをありがとうございました。
> ゆうさん
ありがとうございます!
現在公開中の 0.2 では、はてなダイアリーキーワードにリンクするオプションを設定できるようにしてみました。『システム > プラグイン』ではなく、『ブログ > 設定 > プラグイン』で設定できるようになっています。デフォルトはオンです。
今後ともよろしくお願いします。