{cdate:2010-07-25}
{what:groovy,dsl,markdown,javascript}
ひさしぶりのHTML+JavaScriptの仕事で
ツリー状のメニューをJavaScriptで書く必要が...
メニュー内容自体は固定なのだが、
記述が煩雑になるので、以下のような作戦で実装することに。
1. 内容は markdown スタイルで記述しておく → menu.markdown
1. menu.markdown をパースして javax.swing.tree.DefaultTreeModel に変換
1. 最後に JavaScript 断片を生成し、本体のHTMLに埋め込み
この方法ならば制作中に内容や階層に変更があっても
苦しみながらJavaScriptをメンテする必要はないはずだ。
このエントリでは、
markdown スタイルで書いたDSLから
javax.swing.tree.DefaultTreeModel に変換する部分をメモしておきます。
> 補足1
> 実際の業務で使うにはリンク先のHTMLファイル名も書いておく必要があります。
>
> 補足2
> markdown形式をパースしていますが、
> groovy ならHTMLBuilderなどを使った方がいいのかもしれないです。
> HTMLBuilderの方がコンテンツ作成時に負荷がかかりますが、その後が楽です。
<script src="http://gist.github.com/489175.js?file=menuTree.markdown"></script>
<script src="http://gist.github.com/489175.js?file=buildMenuTree.groovy"></script>
<table style="width:auto;"><tr><td><a
href="http://picasaweb.google.com/lh/photo/rtQ7G4Rlk024FUKCtO9hXg?feat=embedwebsite"><img
src="http://lh6.ggpht.com/_Rc5LQd9f5Yw/TEuTlX9VH3I/AAAAAAAAAKA/DUkVARcSnb4/s288/menuTree.jpg"
/></a></td></tr><tr><td style="font-family:arial,sans-serif; font-size:11px;
text-align:right">From <a
href="http://picasaweb.google.com/lh/sredir?uname=tomoakiosima&target=ALBUM&id=5493925301069630769&feat=embedwebsite"></a></td></tr></table>