local p = function p.createLink(frame) local id = trim(frame.args.id or frame.args[1]) -- if not present should print an error. User friendly errors ¿? local name = trim(frame.args.name or frame.args[2] or "") local external = trim(frame.args.external or frame.args[3] or "") local newLine = trim(frame.args.newline or frame.args[4] or "") local patternUserRepresentation = '@' -- remove @ from the beginning of the ID (if any) if id.sub(id, 1, string.len(patternUserRepresentation))
patternUserRepresentation then name = name.sub(name, 2, string.len(name)) end -- if the user is empty, use the ID, else use the name with a @ if name
'true' or external
'true' or newLine
return outputend
function trim(s) return s:match'^%s*(.*%S)' or end return p