Editing Module:Template link general

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. Read the Privacy Policy to learn what information we collect about you and how we use it.

If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 7: Line 7:
return s ~= nil and s ~= ""
return s ~= nil and s ~= ""
end
end
local nw = mw.text.nowiki


local function addTemplate(s)
local function addTemplate(s)
Line 38: Line 36:
local titleObj
local titleObj
local titlePart = '[['
local titlePart = '[[:'
if args['1'] then
if args['1'] then
-- This handles :Page and other NS
-- This handles :Page and other NS
Line 52: Line 50:
if not _ne(textPart) then
if not _ne(textPart) then
if titleObj ~= nil then
if titleObj ~= nil then
textPart = titleObj:inNamespace("Template") and args['1'] or titleObj.fullText
textPart = titleObj.ns == 10 and titleObj.text or titleObj.fullText
else
else
-- redlink
-- redlink
textPart = args['1']
textPart = trimTemplate(args['1'])
end
end
end
end
if _ne(args.subst) then
if _ne(args.subst) then
-- HACK: the ns thing above is probably broken
textPart = 'subst:' .. textPart
textPart = 'subst:' .. textPart
end
end
if _ne(args.brace) then
if _ne(args.brace) then
textPart = nw('{{') .. textPart .. nw('}}')
textPart = '{{' .. textPart .. '}}'
elseif _ne(args.braceinside) then
elseif _ne(args.braceinside) then
textPart = nw('{') .. textPart .. nw('}')
textPart = '{' .. textPart .. '}'
end
end
titlePart = titlePart .. '|' .. textPart .. ']]'
titlePart = titlePart .. '|' .. textPart
if _ne(args.braceinside) then
if _ne(args.braceinside) then
titlePart = nw('{') .. titlePart .. nw('}')
titlePart = '{' .. titlePart .. '}'
end
end
return titlePart
return titlePart
Line 78: Line 75:


function p.main(frame)
function p.main(frame)
local args = getArgs(frame, {
local args = getArgs(frame)
trim = true,
removeBlanks = false
})
return p._main(args)
return p._main(args)
end
end
Line 87: Line 81:
function p._main(args)
function p._main(args)
local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname)
local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname)
local italic = _ne(args.italic) or _ne(args.italics)
local italic = _ne(args.italic) or _ne(italic.italics)
local dontBrace = _ne(args.brace) or _ne(args.braceinside)
local dontBrace = _ne(args.brace) or _ne(args.braceinside)
local code = _ne(args.code) or _ne(args.tt)
local code = _ne(args.code) or _ne(args.tt)
Line 98: Line 92:
-- Build the arguments
-- Build the arguments
local textPart = ""
local textPart = ""
local textPartBuffer = ""
for i = 2, 11 do
local i = 2
local ii = tostring(i)
while args[i] do
local val = args[ii]
local val = args[i]
if not _ne(ii) then break end
textPartBuffer = textPartBuffer .. '|'
if not _ne(args.yeswiki) then val = '<nowiki>' .. val .. '</nowiki>' end
if val ~= "" then
if italic then val = '<span style="font-style:italic;">' .. val .. '</span>' end
if _ne(args.nowiki) then
textPart = textPart .. '&#124;' .. val
-- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will
-- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up
val = nw(mw.text.unstripNoWiki(val))
end
if italic then val = '<span style="font-style:italic;">' .. val .. '</span>' end
textPart = textPart .. textPartBuffer .. val
textPartBuffer = ""
end
i = i+1
end
end
 
if _ne(args['12']) then textPart = textPart .. '&#124;…' end
-- final wrap
-- final wrap
local ret = titlePart .. textPart
local ret = titlePart .. textPart
if not dontBrace then ret = nw('{{') .. ret .. nw('}}') end
if not dontBrace then ret = '{{' .. ret .. '}}' end
if _ne(args.a) then ret = nw('*') .. '&nbsp;' .. ret end
if _ne(args.a) then ret = '<nowiki>*</nowiki>&nbsp;' .. ret end
if _ne(args.kbd) then ret = '<kbd>' .. ret .. '</kbd>' end
if _ne(args.kbd) then ret = '<kbd>' .. ret .. '</kbd>' end
if code then
if code then
Line 127: Line 113:
end
end
if _ne(args.nowrap) then ret = '<span class="nowrap">' .. ret .. '</span>' end
if _ne(args.nowrap) then ret = '<span class="nowrap">' .. ret .. '</span>' end
--[[ Wrap as html??
local span = mw.html.create('span')
span:wikitext(ret)
--]]
if _ne(args.debug) then ret = ret .. '\n<pre>' .. mw.text.encode(mw.dumpObject(args)) .. '</pre>' end
return ret
return ret
end
end


return p
return p
Please note that all contributions to Nonbinary Wiki are considered to be released under the Creative Commons Attribution-ShareAlike (see Nonbinary Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)

Template used on this page: