Modul: ChapterTabs: Unterschied zwischen den Versionen
Aus Zweidat
Zpd (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Zpd (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 4: | Zeile 4: | ||
-- Main function to generate tabs | -- Main function to generate tabs | ||
function p.generateTabs(frame) | function p.generateTabs(frame) | ||
-- Get the mw.html builder | |||
local builder = mw.html.create() | |||
local | |||
-- Get the SMW query results for books | -- Get the SMW query results for books | ||
Zeile 14: | Zeile 13: | ||
return "No results found" | return "No results found" | ||
end | end | ||
-- Create the content that needs to be parsed | |||
local content = '<div class="tabber-module">\n' | |||
content = content .. '{{TabberNeue\n' -- Use TabberNeue template/parser function | |||
-- Generate tabs for each book | -- Generate tabs for each book | ||
Zeile 22: | Zeile 25: | ||
local safePageName = string.gsub(pageName, "=", "=") | local safePageName = string.gsub(pageName, "=", "=") | ||
-- | -- Add tab using TabberNeue syntax | ||
content = content .. '|' .. safePageName .. '=' .. pageName .. '\n' | |||
end | end | ||
content = content .. '}}\n</div>' | |||
return | -- Parse the content to properly render TabberNeue | ||
return frame:preprocess(content) | |||
end | end | ||
return p | return p |
Version vom 25. Oktober 2024, 12:54 Uhr
Die Dokumentation für dieses Modul kann unter Modul:ChapterTabs/Doku erstellt werden
-- Module for creating TabberNeue structure from SMW query local p = {} -- Main function to generate tabs function p.generateTabs(frame) -- Get the mw.html builder local builder = mw.html.create() -- Get the SMW query results for books local query = mw.smw.ask('[[Category:Buch]]|?BuchSortierung') if not query then return "No results found" end -- Create the content that needs to be parsed local content = '<div class="tabber-module">\n' content = content .. '{{TabberNeue\n' -- Use TabberNeue template/parser function -- Generate tabs for each book for _, result in ipairs(query) do -- Get the page name from the first element local pageName = result[1] -- Escape any equal signs in the page name local safePageName = string.gsub(pageName, "=", "=") -- Add tab using TabberNeue syntax content = content .. '|' .. safePageName .. '=' .. pageName .. '\n' end content = content .. '}}\n</div>' -- Parse the content to properly render TabberNeue return frame:preprocess(content) end return p