模組:Vgname/sandbox
外观
![]() | 这是Module:Vgname(差异)的沙盒。 参见本模块的测试样例(运行)。 |
请在 Module:Vgname/languages定义新的外语
require("Module:No globals")
local getArgs = require("Module:Arguments").getArgs
local yesno = require("Module:Yesno")
local function separateFootnotes(str)
local pattern = '\127\'"`UNIQ%-%-[Rr][Ee][Ff]%-%x+%-QINU`"\'\127' -- [[en:WP:UNIQ]]
str = str or ""
local pos, _ = str:find(pattern)
if pos then
return str:sub(1, pos - 1), str:sub(pos)
end
return str, ""
end
local function boldText(text, isbold)
if yesno(isbold) then
return "<b>" .. text .. "</b>"
end
return text
end
local function main(str, isBold, bracketType)
local text, footnotes
str = str or tostring(mw.title.getCurrentTitle().subpageText)
text, footnotes = separateFootnotes(str)
text = boldText(text, isBold)
if bracketType == "normal" then
text = "《" .. text .. "》"
elseif bracketType == "quotation" then
text = "「" .. text .. "」"
end
return text .. footnotes
end
local p = {}
function p.vgname(frame)
local args = getArgs(frame)
return p._vgname(args)
end
function p._vgname(args)
local retval = ""
local bold, diff, bracket = true, false, "normal"
if yesno(args.bold) == false then
bold = false
end
if yesno(args.bracket) == false then
bracket = "none"
elseif (args.bracket == "q") or (args.bracket == "Q") then
bracket = "quotation"
end
if yesno(args.diff) == true then
diff = true
elseif args.na or args.eu then
diff = true
end
retval = main(args[1], bold, bracket)
return retval
end
return p