久しぶりのMindTouch Deki Wiki TIPSです。
Dekiでは各ページにファイルを添付でき、添付ファイルも検索対象になるため、とても便利です。
しかし、ページ数が増えてくると全添付ファイル一覧を見たくなることもあると思います。
今回は、Wiki内の全添付ファイルを一覧する方法を紹介します。かなり強引なDekiScriptなのですが・・・
手順
まず、テンプレートに新しいページを作り、以下の内容をDekiScriptフォーマットで記述します。
ページ名はShowFilesとして保存しておきます。
<ul>
var pages = [ ];
foreach (var a in xml.select(wiki.tree("/"), "//a"))
{
var text = xml.text(a, '.', null, true);
var id = string.match(text, 'pageid="([0-9]+)"');
var p = wiki.getpage(num.int(id));
let pages ..= [ p ];
}
foreach (var p in pages) {
foreach (var f in p.files) {
<li>
web.link(f.uri, f.name);
web.html('<span style="color:#999999;"> (' .. num.floor( f.size / 1000) .. 'KB)</span>');
if (f.description) {
web.text(f.description);
}
web.html('<br />');
web.html('<span style="color:#999999;">' .. f.page.path .. web.link(f.page.uri, 'goto this page') .. '</span>');
if (f.ThumbUri) {
web.html("<br /><img src=" .. f.ThumbUri .. " />");
}
</li>
}
}
</ul>
あとは、任意のページで
{{ ShowFiles(); }}
と書けばOKです。
ちなみに、トップページに添付したものだけは出てきませんが、これは手抜きです^^