「モジュール:SignalinstWiki」の版間の差分

モジュール調整
編集の要約なし
 
(同じ利用者による、間の10版が非表示)
77行目: 77行目:


function p.categoriesToTemplate(frame)
function p.categoriesToTemplate(frame)
     local output = "{{ナビゲーションボックス"
     local args = {
         .. "|title=カテゴリ別ページ一覧"
         title = "カテゴリ一覧",
         .. "|opened=False|"
         opened = "False"
    }


    -- TopCategory=true なカテゴリページ一覧を取得
     local categories = mw.text.trim(
     local categories = frame:callParserFunction(
         frame:expandTemplate{ title = "カテゴリ一覧" } or ""
         "#ask",
        "[[TopCategory::true]]"
        .."|?PAGENAME"
        .."|format=list"
        .."|sep=\n"
     )
     )


     local i = 1
     local i = 1
     for category in mw.text.gsplit(categories or "", "\n", true) do
     for category in mw.text.gsplit(categories, ",", true) do
        category = mw.text.trim(category)
         if category ~= "" then
         if category ~= "" then
            -- Category 名前空間を除去
             local categoryName = mw.text.trim(
             local categoryName = category:gsub("^カテゴリ:", "")
                category:gsub("^カテゴリ:", "")
            )


            -- Concept を使ってページ取得
             local pages = mw.text.trim(
             local pages = frame:callParserFunction(
                 frame:expandTemplate{
                 "#ask",
                    title = "カテゴリ別ページ一覧",
                "[[Concept:" .. categoryName .. "]]"
                    args = { category }
                .."|?PAGENAME"
                 } or ""
                .."|format=list"
                 .."|sep=, "
             )
             )


             output = output
             args["header" .. i]  = "[[:カテゴリ:"..categoryName.."|"..categoryName.."]]"
                .. "header" .. i .. "=" .. categoryName .. "|"
            args["content" .. i] = pages
                .. "content" .. i .. "=" .. (pages or "") .. "|"


             i = i + 1
             i = i + 1
113行目: 108行目:
     end
     end


     output = output .. "}}"
     return frame:expandTemplate{
     return output
        title = "ナビゲーションボックス",
        args  = args
     }
end
end


return p
return p