Documentation for this module may be created at Module:NeoWikiQueries/doc
local p = {}
function p.propertiesOfPage( frame )
local pageName = frame.args[1] or ''
if pageName == '' then return '' end
local rows = mw.neowiki.query([[
MATCH (page:Page {wiki_id: $wikiId})
WHERE page.name = $pageName
MATCH (page)-[:HasSubject]->(s:Subject)
UNWIND keys(s) AS prop
WITH DISTINCT prop
WHERE NOT prop IN ['id', 'wiki_id', 'name']
RETURN prop ORDER BY prop
]], { pageName = pageName, wikiId = mw.site.server })
-- Fallback: use the wiki's DB name as wikiId if mw.site.server doesn't match
if rows == nil or #rows == 0 then return 'No properties found.' end
local result = {}
for _, row in ipairs( rows ) do
table.insert( result, '* ' .. row.prop )
end
return table.concat( result, '\n' )
end
return p