Modul: ChapterTabs: Unterschied zwischen den Versionen

Aus Zweidat
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 4: Zeile 4:
-- Main function to generate tabs
-- Main function to generate tabs
function p.generateTabs(frame)
function p.generateTabs(frame)
     local tabberStart = '<tabber>\n'
     -- Get the mw.html builder
    local tabberEnd = '</tabber>'
     local builder = mw.html.create()
     local tabs = ''
      
      
     -- 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, "=", "&#61;")
         local safePageName = string.gsub(pageName, "=", "&#61;")
          
          
         -- Simply use the page name as content
         -- Add tab using TabberNeue syntax
         tabs = tabs .. safePageName .. '=' .. pageName .. '\n|-|\n'
         content = content .. '|' .. safePageName .. '=' .. pageName .. '\n'
     end
     end
      
      
     -- Remove the last tab separator
     content = content .. '}}\n</div>'
    tabs = string.gsub(tabs, '\n|-|\n$', '')
      
      
     return tabberStart .. tabs .. tabberEnd
    -- 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, "=", "&#61;")
        
        -- 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