Modul: ChapterTabs: Unterschied zwischen den Versionen
Aus Zweidat
Zpd (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „-- 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…“) |
Zpd (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
-- Module for creating TabberNeue structure from SMW query | -- Module for creating TabberNeue structure from SMW query | ||
local p = {} | local p = {} | ||
-- Main function to generate tabs | -- Main function to generate tabs | ||
function p.generateTabs(frame) | function p.generateTabs(frame) | ||
-- Get the SMW query results for books with no links | |||
-- Get the SMW query results for books | |||
local query = mw.smw.ask({ | local query = mw.smw.ask({ | ||
'[[Category:Buch]]', | '[[Category:Buch]]', | ||
'?BuchSortierung' | '?=#', | ||
'?', | |||
'?BuchSortierung', | |||
'sort=BuchSortierung' | |||
}) | }) | ||
| Zeile 27: | Zeile 17: | ||
end | end | ||
-- | -- Generate tabs content | ||
local tabContent = '' | |||
-- Generate tabs for each book | -- Generate tabs for each book | ||
for _, result in ipairs(query) do | for _, result in ipairs(query) do | ||
local pageName = result | -- Get the page name from the first element | ||
local pageName = result[1] | |||
local pageLink = result[2] | |||
-- Escape any equal signs in the page name | -- Escape any equal signs in the page name | ||
local safePageName = string.gsub(pageName, "=", "=") | local safePageName = string.gsub(pageName, "=", "=") | ||
local safePageLink = string.gsub(pageLink, "=", "=") | |||
-- | -- Add tab content | ||
tabContent = tabContent .. safePageName .. '=' .. safePageLink .. '\n|-|\n' | |||
end | end | ||
-- Remove the last | -- Remove the last separator | ||
tabContent = string.gsub(tabContent, '\n|-|\n$', '') | |||
return | -- Use frame:extensionTag to properly trigger the extension | ||
return frame:extensionTag('tabber', tabContent) | |||
end | end | ||
return p | return p | ||
Aktuelle Version vom 25. Oktober 2024, 13:36 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 SMW query results for books with no links
local query = mw.smw.ask({
'[[Category:Buch]]',
'?=#',
'?',
'?BuchSortierung',
'sort=BuchSortierung'
})
if not query then
return "No results found"
end
-- Generate tabs content
local tabContent = ''
-- Generate tabs for each book
for _, result in ipairs(query) do
-- Get the page name from the first element
local pageName = result[1]
local pageLink = result[2]
-- Escape any equal signs in the page name
local safePageName = string.gsub(pageName, "=", "=")
local safePageLink = string.gsub(pageLink, "=", "=")
-- Add tab content
tabContent = tabContent .. safePageName .. '=' .. safePageLink .. '\n|-|\n'
end
-- Remove the last separator
tabContent = string.gsub(tabContent, '\n|-|\n$', '')
-- Use frame:extensionTag to properly trigger the extension
return frame:extensionTag('tabber', tabContent)
end
return p