模块:ExampleTable:修订间差异
无编辑摘要 |
无编辑摘要 |
||
| (未显示同一用户的3个中间版本) | |||
| 第5行: | 第5行: | ||
local args = getArgs(frame) | local args = getArgs(frame) | ||
-- 获取输入和输出参数 | |||
local input = args[1] or "" | local input = args[1] or "" | ||
local output = args[2] | local output = args[2] | ||
-- 如果 output 未提供,则移除左侧的 <nowiki> 标签并渲染内容 | |||
if not output then | if not output then | ||
-- 移除 <nowiki> 标签 | |||
local nowiki_content = input:gsub("</?nowiki>", "") | |||
-- 渲染内容 | |||
output = frame:preprocess(nowiki_content) | |||
end | end | ||
-- 清理输出中的多余空格和换行 | |||
output = output:gsub("\n+", "\n"):gsub("^%s*(.-)%s*$", "%1") | |||
-- 创建表格HTML | |||
local tableHtml = mw.html.create('table') | local tableHtml = mw.html.create('table') | ||
:addClass('wikitable') | :addClass('wikitable') | ||
| 第39行: | 第41行: | ||
:tag('pre') | :tag('pre') | ||
:css('white-space', 'pre-wrap') | :css('white-space', 'pre-wrap') | ||
:wikitext(input) | :wikitext(input) -- 左侧显示原始输入(包括 <nowiki> 标签) | ||
:done() | :done() | ||
:done() | :done() | ||
| 第47行: | 第49行: | ||
width = '50%' | width = '50%' | ||
}) | }) | ||
:wikitext(output) | :wikitext(output) -- 右侧显示输出内容 | ||
:done() | :done() | ||
:done() | :done() | ||
2025年10月16日 (四) 09:22的最新版本
此模块的文档可以在模块:ExampleTable/doc创建
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p.main(frame)
local args = getArgs(frame)
-- 获取输入和输出参数
local input = args[1] or ""
local output = args[2]
-- 如果 output 未提供,则移除左侧的 <nowiki> 标签并渲染内容
if not output then
-- 移除 <nowiki> 标签
local nowiki_content = input:gsub("</?nowiki>", "")
-- 渲染内容
output = frame:preprocess(nowiki_content)
end
-- 清理输出中的多余空格和换行
output = output:gsub("\n+", "\n"):gsub("^%s*(.-)%s*$", "%1")
-- 创建表格HTML
local tableHtml = mw.html.create('table')
:addClass('wikitable')
:tag('tr')
:tag('th')
:css('width', '50%')
:wikitext('输入')
:done()
:tag('th')
:css('width', '50%')
:wikitext('输出')
:done()
:done()
:tag('tr')
:tag('td')
:css({
['vertical-align'] = 'middle',
width = '50%'
})
:tag('pre')
:css('white-space', 'pre-wrap')
:wikitext(input) -- 左侧显示原始输入(包括 <nowiki> 标签)
:done()
:done()
:tag('td')
:css({
['vertical-align'] = 'middle',
width = '50%'
})
:wikitext(output) -- 右侧显示输出内容
:done()
:done()
return tostring(tableHtml)
end
return p