Module:Pbox
阅读:462 更新:2022-3-21
来自柯南百科
可在Module:Pbox/doc创建此模块的帮助文档
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p._quote(text, lang)
if lang == '' then
return text
end
if lang == 'zh' then
return text
else
return '-{' .. text .. '}-'
end
end
function p._pbox(args)
local ltext = mw.text.split((args.ltext or ''):match('^(.-)%s*$'), '\n')
local rtext = mw.text.split((args.rtext or ''):match('^(.-)%s*$'), '\n')
local llang = args.llang or ''
local rlang = args.rlang or ''
local lstyle = args.lstyle or ''
local rstyle = args.rstyle or ''
if llang == 'jp' then
llang = 'ja'
end
if rlang == 'jp' then
rlang = 'ja'
end
local html = mw.html.create('div')
:addClass('cp-pbox px-3')
:cssText('width:'..(args.width or '80%'))
:cssText(args.pboxstyle or '')
local len = math.max(#ltext, #rtext)
for i=1,len do
html
:tag('div')
:addClass('cp-pbox-line')
:addClass('row')
:tag('div')
:addClass('cp-pbox-ltext')
:addClass('col-md-6')
:cssText(lstyle)
:node(
mw.html.create('span')
:attr('lang', llang)
:wikitext(p._quote(ltext[i] or '', llang))
)
:done()
:tag('div')
:addClass('cp-pbox-rtext')
:addClass('col-md-6')
:cssText(rstyle)
:node(
mw.html.create('span')
:attr('lang', rlang)
:wikitext(p._quote(rtext[i] or '', rlang))
)
:done()
end
return tostring(html)
end
function p.pbox(frame)
local args = getArgs(frame, {wrappers='Template:Pbox'})
return p._pbox(args)
end
return p