Modjoul:Dokimantasyon
-- Sa modjoul ka adapté modèl-a Erreur de script : la fonction « dokimantasyon » n’existe pas..
local p = {}
local function existePage(paj) return page and page.exists end
local function nonSibpaj(paj, sibpaj) --Nou pa annan roun sibpaj if not page.isSubpage then return page.subjectNsText .. ':' .. page.text .. '/' .. sibpaj end
--Nou pa annan roun sibpaj local sibPaj = page.subpageText if sibPaj == 'Dokimantasyon' or sibPaj == 'Batché sab' or sibPaj == 'Tès' then return page.subjectNsText .. ':' .. page.baseText .. '/' .. sibpaj else return page.subjectNsText .. ':' .. page.text .. '/' .. sibpaj end end
local function yannajUrl(nonPaj, titPaj, agsyon, pagePreload) local argument = {['action'] = action or 'edit'}
if pagePreload then argument['preload'] = 'Modèl:Dokimantasyon/Preload' .. pagePreload end
return mw.ustring.format('[%s %s]', nonPaj:fullUrl(argument), titPaj) end
local function lantet(arg, paj, dok, existeDoc) local res = mw.html.create('div')
res :css('margin-bottom', '1ex') :css('border-bottom', '1px solid #aaa') :css('padding-bottom', '3px')
:wikitext('')
:tag('span') :css('font-weight', 'bold') :css('font-size', '125%') :css('vertical-align', 'middle') :wikitext(' ') :wikitext(args.titre or 'Dokimantasyon') :done()
local ledisyonYannaj = res:tag('span') :addClass('mw-editsection plainlinks') :css('vertical-align', 'middle')
if not arg.kontni then ledisyonYannaj:wikitext('[') if existeDoc then ledisyonYannaj:wikitext(yannajUrl(dok, 'modifyé')) else if page.namespace == 828 then ledisyonYannaj:wikitext(yannajUrl(dok, 'kréyé', 'edit', 'Modjoul')) else ledisyonYannaj:wikitext(yannajUrl(dok, 'kréyé', 'edit', )) end end ledisyonYannaj:wikitext('] ') end
ledisyonYannaj :wikitext('[') :wikitext(yannajUrl(paj, 'prijé', 'prij')) :wikitext(']')
return res end
local function protegsyon(paj, dok, existeDoc, mesaj) -- Lensersyon otonmatik di modèl di protegsyon. local nivelProtegsyon = page.protectionLevels.edit
if nivelProtegsyon and nivelProtegsyon[1] then local tabProtegsyon = { autoconfirmed = {'simiProtegsyon', '{{%s*[Ss]imi%-protegsyon%s*[|}]', '{{%s*[Ss]imi%-protegsyon +lonng%s*[|}]'}, editextendedsemiprotected = {'simiProtegsyonLarj', '{{%s*[Ss]imi%-protegsyon +larj%s*[|}]'}, sysop = {'protegsyon', '{{%s*[Pp]rotegsyon%s*[|}]'}, } local protegsyon = tabProtegsyon[nivelProtegsyon[1]] if not protegsyon then return end
local alreadyShown = false if existeDoc then -- Vérifikasyon ki pa gen kaba roun modèl di -- protègsyon annan dokimantasyon-an di modèl. local kontniDok = doc:getContent() if kontniDok:match(protegsyon[2]) or (protegsyon[3] and kontniDok:match(protegsyon[3])) then alreadyShown = true end end
if not alreadyShown then if mesaj == then mesaj = nil end return require('Modjoul:Protegsyon').main({mesaj}, protegsyon[1], paj) end end end
-- pou batché sab-a, nou ka anlvé baliz-ya di katégori -- ki abitchwèlman sitchwé an "includeonly" an finisman di dokimantasyon-an local function anlveBalizKategori(kontniDok) local count repeat kontniDok, count = mw.ustring.gsub(kontniDok, '%[%[Katégori:[^%]]+%]%][\t\r\n\f ]*$', ) until count == 0
kontniDok, count = mw.ustring.gsub(kontniDok, '[\t\r\n\f ]*$', )
return kontniDok end
local function kontni(arg, dok, existeDoc) local paj = mw.title.getCurrentTitle() local res = mw.html.create():newline()
if arg['kontni oto rot'] then res:wikitext(args['kontni oto rot']) :newline() end
if arg.kontni then res:newline() :wikitext(arg.kontni) :newline()
elseif existeDoc then local kontniDok = mw.getCurrentFrame():expandTemplate{title = doc.prefixedText} if page.subpageText == 'Batché sab' or page.subpageText == 'Tes' then kontniDok = kaanlveBalizKategori(kontniDok) end res:newline() :wikitext(kontniDok) :newline()
elseif page.subpageText ~= 'Batché sab' and page.subpageText ~= 'Tes' and args['kontni ki fakiltativ'] == nil then
local tesBando = 'Sa %s ka posédé pyès dokimantasyon '
..'èsplikativ an sibpaj, pa menm roun senp dèskripsyon.
'
..'Ou pouvé %s pou dokimanté sa %s adékwatman.'
if page.namespace == 828 then -- Modjoul
tegsBando = tegsBando:forma(
'modjoul',
yannajUrl(dok, 'kréyé sa sibpaj', 'edit', 'Modjoul'),
'modjoul'
)
else -- Modèl
tegsBando = tegsBando:forma(
'modèl',
yannajUrl(dok, 'kréyé sa sibpaj', 'edit', ),
'modèl'
)
end
if page.namespace == 10 then -- Modèl
tegsBando = tegsBando ..
elseif page.namespace == 828 then -- Modjoul
if page.text:sub(1, 12) == 'Itilizatò:' then
-- Pa di katégorizasyon pou pseudo-namespace "Modjoul:Itilizatò:Toto/Non di modjoul"
elseif existeDoc == false then
tegsBando = tegsBando ..
end
end
local param = {
['likonn'] = 'OOjs_UI_icon_book-ltr.svg',
alt = 'MIT',
estil = 'width:80%;',
tegs = tegsBando,
}
res:wikitext(require('Modjoul:Bando')._bando(param))
end
if args['kontni oto ba'] then res:newline() :wikitext(arg['kontni oto ba']) end
res :tag('div') :css('clear', 'both')
return res end
local function notice(arg, paj, dok, existeDoc) local res = mw.html.create('div') :css('border-top', '1px solid #aaa') :css('margin', '1.5em 0 0')
local kontniParagraf = res :tag('p') :addClass('plainlinks') :css('margin-bottom', '0') :css('padding-left', '1em') :css('font-style', 'italic')
if arg['non modèl'] then local yannajLed = 'modèl' if page.namespace == 828 then yannajLed = 'modjoul' end
kontniParagraf
:wikitext('dokimantasyon di sa ')
:wikitext(yannajLed)
:wikitext(' sa jénéré pa modèl ')
:wikitext(mw.getCurrentFrame():expandTemplate{title = 'm', arg = {arg['non modèl']} })
:wikitext('.
')
else
kontniParagraf
:tag('span')
:addClass('lérò')
:wikitext('Lérò : paranmèt <kod>non modèl</kod> pa sa ransennyen.
')
end
if arg.konntni then
kontniParagraf
:wikitext('Li sa dirèkman enkli annan apèl-a di sa dannyé. ')
:wikitext('Si sa paj protéjé, souplé ')
:wikitext('transféré kontni di dokimantasyon bò so ')
:wikitext(yannajUrl(dok, 'sibpaj ki dédjé', 'edit', ))
:wikitext('.
')
elseif existeDoc then
kontniParagraf
:wikitext('Li sa enkli dipi ')
if arg['paj dok'] then kontniParagraf :wikitext('paj-a [[') :wikitext(tostring(dok)) :wikitext(']]. ') else kontniParagraf :wikitext('so [[') :wikitext(tostring(dok)) :wikitext('|sibpaj di dokimantasyon]] ') end
kontniParagraf :tag('span') :css('font-size', '89%') :css('font-style', 'normal') :wikitext('(') :wikitext(yannajUrl(dok, 'listorik', 'history')) :wikitext(').') :done()
kontniParagraf
:wikitext('Souplé, plasé katégori-ya asou sa pag.
')
end
kontniParagraf :wikitext('Éditò-ya pouvé travay annan ')
local titPajBacthesab = nonSibpaj(paj, 'Batché sab') local pajBatchesab = mw.title.new(titPajBatchesab)
if existePage(pajBatchesab) then kontniParagraf :wikitext('batché sab ') :tag('span') :css('font-size', '89%') :css('font-style', 'normal') :wikitext('(') :wikitext(yannajUrl(pajBatchesab, 'modifyé')) :wikitext(')') else local preLoad = '2' if page.namespace == 828 then preLoad = nil end kontniParagraf :wikitext('batché sab ') :tag('span') :css('font-size', '89%') :css('font-style', 'normal') :wikitext('(') :wikitext(yannajUrl(pajBatchesab, 'kréyé', 'edit', preLoad)) :wikitext(')') end
if page.namespace ~= 828 then kontniParagraf:wikitext(' épi paj-a di ')
local titPajTes = nonSibpaj(paj, 'Test') local pajTes = mw.title.new(titPajTes)
if existePage(pajTes) then kontniParagraf :wikitext('test ') :tag('span') :css('font-size', '89%') :css('font-style', 'normal') :wikitext('(') :wikitext(yannajUrl(pajTes, 'modifyé')) :wikitext(')') else kontniParagraf :wikitext('test ') :tag('span') :css('font-size', '89%') :css('font-style', 'normal') :wikitext('(') :wikitext(yannajUrl(pajTes, 'kréyé', 'edit', '3')) :wikitext(')') end end kontniParagraf:wikitext('.')
return res end
function p._dokimantasyon(arg) local paj = mw.title.getCurrentTitle() local titPajDok = arg['paj dok'] or nonSibpaj(paj, 'Dokimantasyon') local doc = mw.title.new(titPajDok) local existeDoc = existePage(dok) local res = mw.html.create()
--Bando pou sibpaj-ya /Batché sab if page.subpageText == 'Batché sab' then res :tag('div') :css('clear', 'both') :done() :wikitext(mw.getCurrentFrame():expandTemplate{title = 'Sibpaj di batché sab'}) end
--Jénérasyon di dokimantasyon local koulo = '#ecfcf4' if page.namespace == 828 then koulo = '#ecf0fc' end
res :tag('div') :css('clear', 'both') :css('margin', '1em 0 0 0') :css('border', '1px solid #aaa') :css('background', koulo) :css('padding', '1em 1em 0.8em') :node(lantet(arg, paj, dok, existeDoc)) :wikitext(protegsyon(paj, dok, existeDoc, arg['mesaj protegsyon'])) :node(kontni(arg, dok, existeDoc)) :node(notice(arg, paj, dok, existeDoc))
-- Katégorizasyon pa défo pou modjoul-ya san dokimantasyon if page.namespace == 828 and page.subpageText ~= 'Batché sab' and page.subpageText ~= 'Tes' then if existeDoc == false then res:wikitext("") end end
return tostring(res) end
function p.dokimantasyonon(frame) local args = {} local argsParent = frame:getParent().args
--Paranmèt vid ki entèrprété pa Lua for cle, val in pairs(argsParent) do val = mw.text.trim(val) if val ~= then args[cle] = val end end
return p._dokimantasyon(arg) end
return p
-- Sa modjoul ka adapté modèl-a {{Méta dokimantasyon di modèl}}.
local p = {}
local function existePage(paj)
return page and page.exists
end
local function nonSibpaj(paj, sibpaj)
--Nou pa annan roun sibpaj
if not page.isSubpage then
return page.subjectNsText .. ':' .. page.text .. '/' .. sibpaj
end
--Nou pa annan roun sibpaj
local sibPaj = page.subpageText
if sibPaj == 'Dokimantasyon'
or sibPaj == 'Batché sab'
or sibPaj == 'Tès' then
return page.subjectNsText .. ':' .. page.baseText .. '/' .. sibpaj
else
return page.subjectNsText .. ':' .. page.text .. '/' .. sibpaj
end
end
local function yannajUrl(nonPaj, titPaj, agsyon, pagePreload)
local argument = {['action'] = action or 'edit'}
if pagePreload then
argument['preload'] = 'Modèl:Dokimantasyon/Preload' .. pagePreload
end
return mw.ustring.format('[%s %s]', nonPaj:fullUrl(argument), titPaj)
end
local function lantet(arg, paj, dok, existeDoc)
local res = mw.html.create('div')
res
:css('margin-bottom', '1ex')
:css('border-bottom', '1px solid #aaa')
:css('padding-bottom', '3px')
:wikitext('[[Fiché:Test Template Info-Icon.svg|50px|alt=|link=]]')
:tag('span')
:css('font-weight', 'bold')
:css('font-size', '125%')
:css('vertical-align', 'middle')
:wikitext(' ')
:wikitext(args.titre or 'Dokimantasyon')
:done()
local ledisyonYannaj = res:tag('span')
:addClass('mw-editsection plainlinks')
:css('vertical-align', 'middle')
if not arg.kontni then
ledisyonYannaj:wikitext('[')
if existeDoc then
ledisyonYannaj:wikitext(yannajUrl(dok, 'modifyé'))
else
if page.namespace == 828 then
ledisyonYannaj:wikitext(yannajUrl(dok, 'kréyé', 'edit', 'Modjoul'))
else
ledisyonYannaj:wikitext(yannajUrl(dok, 'kréyé', 'edit', ''))
end
end
ledisyonYannaj:wikitext('] ')
end
ledisyonYannaj
:wikitext('[')
:wikitext(yannajUrl(paj, 'prijé', 'prij'))
:wikitext(']')
return res
end
local function protegsyon(paj, dok, existeDoc, mesaj)
-- Lensersyon otonmatik di modèl di protegsyon.
local nivelProtegsyon = page.protectionLevels.edit
if nivelProtegsyon and nivelProtegsyon[1] then
local tabProtegsyon = {
autoconfirmed = {'simiProtegsyon', '{{%s*[Ss]imi%-protegsyon%s*[|}]', '{{%s*[Ss]imi%-protegsyon +lonng%s*[|}]'},
editextendedsemiprotected = {'simiProtegsyonLarj', '{{%s*[Ss]imi%-protegsyon +larj%s*[|}]'},
sysop = {'protegsyon', '{{%s*[Pp]rotegsyon%s*[|}]'},
}
local protegsyon = tabProtegsyon[nivelProtegsyon[1]]
if not protegsyon then
return ''
end
local alreadyShown = false
if existeDoc then
-- Vérifikasyon ki pa gen kaba roun modèl di
-- protègsyon annan dokimantasyon-an di modèl.
local kontniDok = doc:getContent()
if kontniDok:match(protegsyon[2]) or (protegsyon[3] and kontniDok:match(protegsyon[3])) then
alreadyShown = true
end
end
if not alreadyShown then
if mesaj == '' then
mesaj = nil
end
return require('Modjoul:Protegsyon').main({mesaj}, protegsyon[1], paj)
end
end
end
-- pou batché sab-a, nou ka anlvé baliz-ya di katégori
-- ki abitchwèlman sitchwé an "includeonly" an finisman di dokimantasyon-an
local function anlveBalizKategori(kontniDok)
local count
repeat
kontniDok, count = mw.ustring.gsub(kontniDok, '%[%[Katégori:[^%]]+%]%][\t\r\n\f ]*$', '')
until count == 0
kontniDok, count = mw.ustring.gsub(kontniDok, '[\t\r\n\f ]*$', '')
return kontniDok
end
local function kontni(arg, dok, existeDoc)
local paj = mw.title.getCurrentTitle()
local res = mw.html.create():newline()
if arg['kontni oto rot'] then
res:wikitext(args['kontni oto rot'])
:newline()
end
if arg.kontni then
res:newline()
:wikitext(arg.kontni)
:newline()
elseif existeDoc then
local kontniDok = mw.getCurrentFrame():expandTemplate{title = doc.prefixedText}
if page.subpageText == 'Batché sab' or page.subpageText == 'Tes' then
kontniDok = kaanlveBalizKategori(kontniDok)
end
res:newline()
:wikitext(kontniDok)
:newline()
elseif page.subpageText ~= 'Batché sab' and page.subpageText ~= 'Tes' and args['kontni ki fakiltativ'] == nil then
local tesBando = '<b>Sa %s ka posédé pyès [[Led:Dokimantasyon di modèl|dokimantasyon]] '
..'èsplikativ an sibpaj</b>, pa menm roun senp dèskripsyon.<br> '
..'Ou pouvé %s pou dokimanté sa %s adékwatman.'
if page.namespace == 828 then -- Modjoul
tegsBando = tegsBando:forma(
'modjoul',
yannajUrl(dok, 'kréyé sa sibpaj', 'edit', 'Modjoul'),
'modjoul'
)
else -- Modèl
tegsBando = tegsBando:forma(
'modèl',
yannajUrl(dok, 'kréyé sa sibpaj', 'edit', ''),
'modèl'
)
end
if page.namespace == 10 then -- Modèl
tegsBando = tegsBando .. '[[Katégori:Modèl san dokimantasyon]]'
elseif page.namespace == 828 then -- Modjoul
if page.text:sub(1, 12) == 'Itilizatò:' then
-- Pa di katégorizasyon pou pseudo-namespace "Modjoul:Itilizatò:Toto/Non di modjoul"
elseif existeDoc == false then
tegsBando = tegsBando .. '[[Katégori:Modjoul san dokimantasyon]]'
end
end
local param = {
['likonn'] = 'OOjs_UI_icon_book-ltr.svg',
alt = 'MIT',
estil = 'width:80%;',
tegs = tegsBando,
}
res:wikitext(require('Modjoul:Bando')._bando(param))
end
if args['kontni oto ba'] then
res:newline()
:wikitext(arg['kontni oto ba'])
end
res
:tag('div')
:css('clear', 'both')
return res
end
local function notice(arg, paj, dok, existeDoc)
local res = mw.html.create('div')
:css('border-top', '1px solid #aaa')
:css('margin', '1.5em 0 0')
local kontniParagraf = res
:tag('p')
:addClass('plainlinks')
:css('margin-bottom', '0')
:css('padding-left', '1em')
:css('font-style', 'italic')
if arg['non modèl'] then
local yannajLed = '[[Lèd:Modèl|modèl]]'
if page.namespace == 828 then
yannajLed = '[[Lèd:Modjoul|modjoul]]'
end
kontniParagraf
:wikitext('[[Lèd:Dokimantasyon di modèl|dokimantasyon]] di sa ')
:wikitext(yannajLed)
:wikitext(' sa jénéré pa modèl ')
:wikitext(mw.getCurrentFrame():expandTemplate{title = 'm', arg = {arg['non modèl']} })
:wikitext('.<br>')
else
kontniParagraf
:tag('span')
:addClass('lérò')
:wikitext('Lérò : paranmèt <kod>non modèl</kod> pa sa ransennyen.<br>')
end
if arg.konntni then
kontniParagraf
:wikitext('Li sa dirèkman [[Lèd:Lenklizyon|enkli]] annan apèl-a di sa dannyé. ')
:wikitext('Si sa paj protéjé, souplé ')
:wikitext('transféré kontni di dokimantasyon bò so ')
:wikitext(yannajUrl(dok, 'sibpaj ki dédjé', 'edit', ''))
:wikitext('.<br>')
elseif existeDoc then
kontniParagraf
:wikitext('Li sa [[Lèd:Lenklizyon|enkli]] dipi ')
if arg['paj dok'] then
kontniParagraf
:wikitext('paj-a [[')
:wikitext(tostring(dok))
:wikitext(']]. ')
else
kontniParagraf
:wikitext('so [[')
:wikitext(tostring(dok))
:wikitext('|sibpaj di dokimantasyon]] ')
end
kontniParagraf
:tag('span')
:css('font-size', '89%')
:css('font-style', 'normal')
:wikitext('(')
:wikitext(yannajUrl(dok, 'listorik', 'history'))
:wikitext(').')
:done()
kontniParagraf
:wikitext('Souplé, plasé katégori-ya asou sa pag.<br>')
end
kontniParagraf
:wikitext('Éditò-ya pouvé travay annan ')
local titPajBacthesab = nonSibpaj(paj, 'Batché sab')
local pajBatchesab = mw.title.new(titPajBatchesab)
if existePage(pajBatchesab) then
kontniParagraf
:wikitext('[[' .. titPajBatchesab .. '|batché sab]] ')
:tag('span')
:css('font-size', '89%')
:css('font-style', 'normal')
:wikitext('(')
:wikitext(yannajUrl(pajBatchesab, 'modifyé'))
:wikitext(')')
else
local preLoad = '2'
if page.namespace == 828 then
preLoad = nil
end
kontniParagraf
:wikitext('batché sab ')
:tag('span')
:css('font-size', '89%')
:css('font-style', 'normal')
:wikitext('(')
:wikitext(yannajUrl(pajBatchesab, 'kréyé', 'edit', preLoad))
:wikitext(')')
end
if page.namespace ~= 828 then
kontniParagraf:wikitext(' épi paj-a di ')
local titPajTes = nonSibpaj(paj, 'Test')
local pajTes = mw.title.new(titPajTes)
if existePage(pajTes) then
kontniParagraf
:wikitext('[[' .. titPageTes .. '|test]] ')
:tag('span')
:css('font-size', '89%')
:css('font-style', 'normal')
:wikitext('(')
:wikitext(yannajUrl(pajTes, 'modifyé'))
:wikitext(')')
else
kontniParagraf
:wikitext('test ')
:tag('span')
:css('font-size', '89%')
:css('font-style', 'normal')
:wikitext('(')
:wikitext(yannajUrl(pajTes, 'kréyé', 'edit', '3'))
:wikitext(')')
end
end
kontniParagraf:wikitext('.')
return res
end
function p._dokimantasyon(arg)
local paj = mw.title.getCurrentTitle()
local titPajDok = arg['paj dok'] or nonSibpaj(paj, 'Dokimantasyon')
local doc = mw.title.new(titPajDok)
local existeDoc = existePage(dok)
local res = mw.html.create()
--Bando pou sibpaj-ya /Batché sab
if page.subpageText == 'Batché sab' then
res
:tag('div')
:css('clear', 'both')
:done()
:wikitext(mw.getCurrentFrame():expandTemplate{title = 'Sibpaj di batché sab'})
end
--Jénérasyon di dokimantasyon
local koulo = '#ecfcf4'
if page.namespace == 828 then
koulo = '#ecf0fc'
end
res
:tag('div')
:css('clear', 'both')
:css('margin', '1em 0 0 0')
:css('border', '1px solid #aaa')
:css('background', koulo)
:css('padding', '1em 1em 0.8em')
:node(lantet(arg, paj, dok, existeDoc))
:wikitext(protegsyon(paj, dok, existeDoc, arg['mesaj protegsyon']))
:node(kontni(arg, dok, existeDoc))
:node(notice(arg, paj, dok, existeDoc))
-- Katégorizasyon pa défo pou modjoul-ya san dokimantasyon
if page.namespace == 828 and page.subpageText ~= 'Batché sab' and page.subpageText ~= 'Tes' then
if existeDoc == false then
res:wikitext("[[Katégori:Modjoul annan langaj Lua]]")
end
end
return tostring(res)
end
function p.dokimantasyonon(frame)
local args = {}
local argsParent = frame:getParent().args
--Paranmèt vid ki entèrprété pa Lua
for cle, val in pairs(argsParent) do
val = mw.text.trim(val)
if val ~= '' then
args[cle] = val
end
end
return p._dokimantasyon(arg)
end
return p