Module:GetWorks: Difference between revisions
From Rinchen Terdzö
((by SublimeText.Mediawiker)) |
((by SublimeText.Mediawiker)) |
||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
function p. | function p.works(frame) | ||
if not mw.smw then | |||
return "Semantic Scribunto is not installed." | |||
end | |||
local pArgs = frame:getParent().args | |||
local pagename = mw.title.getCurrentTitle().text | |||
local qRes = mw.smw.ask( '[[-cycle::<q>[[Category:Tibetan Texts]][[sourcerevealer::' .. pagename .. ']]</q>]]|?#-=Page|limit=1008' ) | |||
if qRes == nil then | |||
return "No results!" | |||
end | |||
local output = '<h3>' .. #qRes .. ' Cycles</h3><ol class="columns-2">' | |||
if type( qRes ) == "table" then | |||
for k, data in ipairs( qRes ) do | |||
local cycleTrtnQr = mw.smw.ask ( '[[Category:' .. data.Page .. ']][[Category:Tibetan Texts]][[sourcerevealer::' .. pagename .. ']]' ) | |||
local cycleTxtCntQr = mw.smw.ask ( '[[' .. pagename .. ']]|?Textcount' ) | |||
local cycleTxtCnt = '' | |||
for k, data in ipairs( cycleTxtCntQr ) do | |||
cycleTxtCnt = data.Textcount | |||
end | |||
output = output .. '<li>[[' .. data.Page .. ']] (' .. cycleQr .. ' of ' .. cycleTxtCnt .. ' Texts)</li>' | |||
end | |||
end | |||
output = output .. '</ol>' | |||
end | |||
function p.works(frame) | |||
if not mw.smw then | if not mw.smw then | ||
Line 16: | Line 49: | ||
end | end | ||
local output = '< | local output = '<h3><span id="TotalCount">' .. #qRes .. '</span> Works</h3>' | ||
local fltrInput = frame:callParserFunction{ name = '#widget', args = { 'filterInput' } } | local fltrInput = frame:callParserFunction{ name = '#widget', args = { 'filterInput' } } | ||
output = output .. '<div class="px-5 mb-4">' .. fltrInput .. '</div><div class="filterableContent">' | output = output .. '<div class="px-5 mb-4">' .. fltrInput .. '</div><div class="filterableContent">' |
Revision as of 09:13, 9 April 2024
Documentation for this module may be created at Module:GetWorks/doc
local p = {}
function p.works(frame)
if not mw.smw then
return "Semantic Scribunto is not installed."
end
local pArgs = frame:getParent().args
local pagename = mw.title.getCurrentTitle().text
local qRes = mw.smw.ask( '[[-cycle::<q>[[Category:Tibetan Texts]][[sourcerevealer::' .. pagename .. ']]</q>]]|?#-=Page|limit=1008' )
if qRes == nil then
return "No results!"
end
local output = '<h3>' .. #qRes .. ' Cycles</h3><ol class="columns-2">'
if type( qRes ) == "table" then
for k, data in ipairs( qRes ) do
local cycleTrtnQr = mw.smw.ask ( '[[Category:' .. data.Page .. ']][[Category:Tibetan Texts]][[sourcerevealer::' .. pagename .. ']]' )
local cycleTxtCntQr = mw.smw.ask ( '[[' .. pagename .. ']]|?Textcount' )
local cycleTxtCnt = ''
for k, data in ipairs( cycleTxtCntQr ) do
cycleTxtCnt = data.Textcount
end
output = output .. '<li>[[' .. data.Page .. ']] (' .. cycleQr .. ' of ' .. cycleTxtCnt .. ' Texts)</li>'
end
end
output = output .. '</ol>'
end
function p.works(frame)
if not mw.smw then
return "Semantic Scribunto is not installed."
end
local pArgs = frame:getParent().args
local pagename = mw.title.getCurrentTitle().text
local qRes = mw.smw.ask( '[[Category:Tibetan Texts]][[Category:' .. pagename .. ']]OR[[Category:Illustrations]][[Category:' .. pagename .. ']]|?#-=Page|?Fulltitletib|?Volumenumber|?Textnuminvol|?Fulltitle|limit=1008|link=none|sort=Volumenumber,Textnuminvol|order=asc,asc' )
if qRes == nil then
return "No results!"
end
local output = '<h3><span id="TotalCount">' .. #qRes .. '</span> Works</h3>'
local fltrInput = frame:callParserFunction{ name = '#widget', args = { 'filterInput' } }
output = output .. '<div class="px-5 mb-4">' .. fltrInput .. '</div><div class="filterableContent">'
if type( qRes ) == "table" then
for k, data in ipairs( qRes ) do
output = output .. '<div class="filterable"><div class="d-inline-block float-left pt-2">Vol. ' .. data.Volumenumber .. ', Text ' .. data.Textnuminvol .. ': </div><div class="d-inline-block"><span style="font-size: 1.5em;">[[' .. data.Page .. '|' .. data.Fulltitletib .. ']]</span><div>' .. data.Fulltitle .. '</div></div></div>'
end
end
output = output .. '</div>'
return output
end
return p