Module:Multatuli idee
Documentatie voor deze module kan aangemaakt worden op de volgende pagina: Module:Multatuli idee/doc
local p = {}
local getArgs = require('Module:Arguments').getArgs
local function maakLink(nummer)
return '<b>' .. nummer .. '</b>'
end
local function witregelsNaarParagraven(tekst)
tekst = string.gsub(tekst, '\n\n\n', '</p><p><br />')
tekst = string.gsub(tekst, '\n\n', '</p><p>')
return tekst
end
local function formatteerNummer(nummer)
num, letter = string.match(nummer, '^(%d+)(%l)$')
if num and letter then
return '<span class="ws-multatuli-idee-nummer>' .. num .. '<span class="ws-multatuli-idee-letter">' .. letter .. '</span>. </span>'
else
return '<span class="ws-multatuli-idee-nummer" >' .. nummer .. '. </span>'
end
end
function p.idee(frame)
local args = getArgs(frame, {removeBlanks = false})
local nummer = args['nummer'] or args[1]
local hoofdtekst = args['hoofdtekst'] or args[2]
local noot = args['noot'] or args[3]
if not hoofdtekst and not noot then
return maakLink(nummer)
end
local html = '<div class="ws-multatuli-idee" id="ws-multatuli-idee-' .. nummer .. '" >'
html = html .. '<div class="ws-multatuli-idee-hoofdtekst" ><p>'
html = html .. formatteerNummer(nummer)
hoofdtekst = witregelsNaarParagraven(hoofdtekst)
html = html .. hoofdtekst
html = html .. '</p></div>'
if noot then
noot = witregelsNaarParagraven(noot)
html = html .. '<div class="ws-multatuli-idee-noot" ><p>' .. noot .. '</p></div>'
end
html = html .. '</div>' .. frame:expandTemplate{ title = 'lijn', args = { '3em' } }
local style = frame:extensionTag{name = 'templatestyles', args = { src = 'Sjabloon:Multatuli idee/styles.css' }}
return style .. html
end
function p.ideeStart(frame)
local args = getArgs(frame, {removeBlanks = false})
local nummer = args['nummer'] or args[1]
local hoofdtekst = args['hoofdtekst'] or args[2]
local noot = args['noot'] or args[3]
local namespace = args['namespace'] or mw.title.getCurrentTitle().nsText
hoofdtekst = witregelsNaarParagraven(hoofdtekst)
local html =
'<div class="ws-multatuli-idee" id="ws-multatuli-idee-' .. nummer .. '" >'
.. '<div class="ws-multatuli-idee-hoofdtekst" >'
.. '<p>'
.. formatteerNummer(nummer)
.. hoofdtekst
if noot and #noot > 0 then
-- als er op deze Pagina al een noot begint, sluiten we eerst de hoofdtekst af,
-- en beginnen we de noot.
noot = witregelsNaarParagraven(noot)
html = html
.. '</p>'
.. '</div>'
.. '<div class="ws-multatuli-idee-noot" >'
.. '<p>'
.. noot
end
if namespace == 'Pagina' then
-- Als laatste: als we in Pagina namespace zijn, sluiten we hier alle tags.
html = html
.. '</p>'
.. '</div>'
.. '</div>'
end
local style = frame:extensionTag{name = 'templatestyles', args = { src = 'Sjabloon:Multatuli idee/styles.css' }}
return style .. html
end
function p.ideeEind(frame)
local args = getArgs(frame, {removeBlanks = false})
local hoofdtekst = args['hoofdtekst'] or args[2]
local noot = args['noot'] or args[3]
local namespace = args['namespace'] or mw.title.getCurrentTitle().nsText
local html = ''
if hoofdtekst and #hoofdtekst > 0 then
-- eerst alles openen als we in Pagina namespace zitten:
if namespace == 'Pagina' then
html = html
.. '<div class="ws-multatuli-idee" >'
.. '<div class="ws-multatuli-idee-hoofdtekst" >'
.. '<p>'
end
-- Hoofdtekst was nog niet af, dus:
hoofdtekst = witregelsNaarParagraven(hoofdtekst)
html = html
.. hoofdtekst
.. '</p>'
.. '</div>'
if noot and #noot > 0 then
noot = witregelsNaarParagraven(noot)
-- we moeten een blok voor de noten openen:
html = html
.. '<div class="ws-multatuli-idee-noot" >'
.. '<p>'
.. noot
.. '</p>'
.. '</div>'
end
html = html
.. '</div>'
elseif noot and #noot > 0 then
noot = witregelsNaarParagraven(noot)
-- als er geen hoofddeel was (we zitten dus al in de eindnoot)
if namespace == 'Pagina' then
html = html
.. '<div class="ws-multatuli-idee" >'
.. '<div class="ws-multatuli-idee-noot" >'
.. '<p>'
end
html = html
.. noot
.. '</p>'
.. '</div>'
.. '</div>'
end
html = html .. frame:expandTemplate{ title = 'lijn', args = { '3em' } }
local style = ''
if namespace == 'Pagina' then
style = frame:extensionTag{name = 'templatestyles', args = { src = 'Sjabloon:Multatuli idee/styles.css' }}
end
return style .. html
end
return p