Modul:ChapterTabs
Aus Zweidat
Die Dokumentation für dieses Modul kann unter Modul:ChapterTabs/Doku erstellt werden
-- Module for creating TabberNeue structure from SMW query local p = {} -- Helper function to split string by delimiter local function split(str, delimiter) local result = {} for match in (str .. delimiter):gmatch("(.-)" .. delimiter) do table.insert(result, match) end return result end -- Main function to generate tabs function p.generateTabs(frame) local tabberStart = '<tabber>\n' local tabberEnd = '</tabber>' local tabs = '' -- Get the SMW query results for books local query = mw.smw.ask({ '[[Category:Buch]]', '?BuchSortierung' }) if not query then return "No results found" end -- Sort the results by BuchSortierung if available table.sort(query, function(a, b) local sortA = a.printouts.BuchSortierung and a.printouts.BuchSortierung[1] or a.fulltext local sortB = b.printouts.BuchSortierung and b.printouts.BuchSortierung[1] or b.fulltext return sortA < sortB end) -- Generate tabs for each book for _, result in ipairs(query) do local pageName = result.fulltext -- Escape any equal signs in the page name local safePageName = string.gsub(pageName, "=", "=") -- Simply use the page name as content tabs = tabs .. safePageName .. '=' .. pageName .. '\n|-|\n' end -- Remove the last tab separator tabs = string.gsub(tabs, '\n|-|\n$', '') return tabberStart .. tabs .. tabberEnd end return p