Moduuli:Sitaatti
Jedipediasta, vapaasta Tähtien sota-tietosanakirjasta tänään, 8. marraskuuta 2024
Siirry navigaatioonSiirry hakuunTämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:Sitaatti/ohje
-- This module implements [[Template:Quote]].
local p = {}
function p._main(args)
-- Create the surrounding div.
local root = mw.html.create('div')
root
:addClass('quote')
-- Start a new line and add the span containing the quote.
root
:newline()
:wikitext(':')
local quoteSpan = root:tag('span')
if args[3] and string.find(args[3], '-ref-') == nil then
quoteSpan:attr('title', 'Lähde: ' .. args[3])
end
if args.formatting then
quoteSpan:wikitext(args[1] or '{{{1}}}')
else
quoteSpan
:wikitext(string.format(
'%s%s%s%s%s',
args.noquote and '' or args.quotestart and '' or args.translated and '«' or '”',
args.italics and '' or "''",
args[1] or '{{{1}}}',
args.italics and '' or "''",
args.trans and '' or args.quoteend and '' or args.translated and '»' or '”'
))
end
-- Add the attribution.
root
:newline()
:wikitext(':―')
:wikitext(args[2] or '{{{2}}}')
-- Add everything that needs to go inside a noprint span.
if args['ääni'] or args.url or args[3] then
local noprintSpan = root:tag('span'):addClass('noprint')
-- Audio link
if args['ääni'] then
noprintSpan
:wikitext(' — [[Tiedosto:Gnome-speakernotes.png|20px|(ääni)|link=]]')
:wikitext(string.format(
'[[Media:%s|Kuuntele]] %s<small>([[:Tiedosto:%s|kuvaus]])</small>',
args['ääni'], args.fi and '' or '<span style="color:#808080">(englanniksi)</span> ', args['ääni']
))
end
-- Source link
if args.url or args[3] then
if args[3] and string.find(args[3], '-ref-') ~= nil then
noprintSpan:wikitext(args[3])
else
local sourceSup = noprintSpan:tag('sup')
local display = mw.text.nowiki('[lähde]')
if args.url then
sourceSup
:addClass('plainlinks')
:wikitext(string.format('[%s %s]', args.url, display))
else
-- We have already checked that args[3] is present.
sourceSup:wikitext(string.format('[[%s|%s]]', args[3], display))
end
end
end
end
-- Add the tracking category. The function passed to
-- [[Module:SpecialCategorizer]] is called if the page being processed is
-- not blacklisted.
if not args.url and not args[3] then
if mw.title.getCurrentTitle():inNamespace(0) or mw.title.getCurrentTitle():inNamespace(4) then
-- The category link is split up so that this page isn't categorised.
root:wikitext('[[' .. 'Luokka:Lähteettömät sitaatit]]')
end
end
return tostring(root)
end
function p.main(frame)
local args = {}
for k, v in pairs(frame:getParent().args) do
v = v:match('^%s*(.-)%s*$') -- trim whitespace
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
return p