Module:WikidataTable
Aller à la navigation
Aller à la recherche
La documentation pour ce module peut être créée à Module:WikidataTable/doc
local p = {}
function p.render(frame)
-- Fetch arguments from frame or parent template frame
local getArgs = function(key)
return (frame.args and frame.args[key])
or (frame:getParent() and frame:getParent().args and frame:getParent().args[key])
or ""
end
local sparql = getArgs("sparql")
local title = getArgs("title")
if sparql == "" then
return "⚠️ No SPARQL query provided."
end
-- Clean query string
sparql = sparql:gsub('<nowiki>', ''):gsub('</nowiki>', '')
:gsub('\194\160', ' ') -- Remove non-breaking spaces
:gsub('%s+', ' ') -- Collapse spaces and newlines
local function htmlEncode(s)
return s:gsub('&', '&')
:gsub('"', '"')
:gsub('<', '<')
:gsub('>', '>')
end
return string.format(
'<div class="wikidata-sparql-table" data-sparql="%s" data-title="%s"></div>',
htmlEncode(sparql),
htmlEncode(title)
)
end
return p