「モジュール:SignalinstWiki」の版間の差分
細編集の要約なし |
細 修正 |
||
| (同じ利用者による、間の2版が非表示) | |||
| 73行目: | 73行目: | ||
return finalOutput | return finalOutput | ||
end | |||
function p.categoriesToTemplate(frame) | |||
-- 返すべき内容を保持する | |||
local output = "{{ナビゲーションボックス|title=カテゴリ別ページ一覧|opened=False|" | |||
-- パーサーを呼び出し、Semantec MediaWikiからカテゴリ一覧を取得 | |||
local result = frame:callParserFunction("#ask", "[[TopCategory::true]]|?PAGENAME|format=plainlist") | |||
-- 中身を正規化したうえで分割し、各カテゴリごとに回す | |||
local i = 1 | |||
for line in mw.text.gsplit(result, "\n", true) do | |||
if line ~= '' then | |||
-- line = 名前空間を除いたタイトル => カテゴリ名称 | |||
-- このカテゴリに対して意味的検索を用いてさらにページ一覧を取得 | |||
local result = frame:callParserFunction("#ask", "[[カテゴリ:"..line.."]]|?PAGENAME|format=list|sep=,") | |||
-- カンマ区切りで出力されるのでこれをテンプレートに埋め込む | |||
output = output .. "header"..i.."="..line.."|content"..i.."="..result.."|" | |||
-- iのインクリメント | |||
i = i + 1 | |||
end | |||
end | |||
-- 閉じて返す | |||
output = output .. "}}" | |||
return output | |||
end | end | ||
return p | return p | ||