Line 9: |
Line 9: |
| display = display or section | | display = display or section |
| page = page or '' | | page = page or '' |
| + | -- MediaWiki doesn't allow these in `page`, so only need to do for `section` |
| + | if type(section) == 'string' then |
| + | section = string.gsub(section, "{", "{") |
| + | section = string.gsub(section, "}", "}") |
| + | end |
| return string.format('[[%s#%s|%s]]', page, section, display) | | return string.format('[[%s#%s|%s]]', page, section, display) |
| end | | end |
Line 109: |
Line 114: |
| | | |
| for k, v in pairs(args) do -- replace underscores in the positional parameter values | | for k, v in pairs(args) do -- replace underscores in the positional parameter values |
− | if 'number' == type(k) and not yesno (args['keep-underscores']) then -- unless |keep-underscores=yes | + | if 'number' == type(k) then |
− | args[k] = v:gsub ('_', ' ') -- do the replacement
| + | if not yesno (args['keep-underscores']) then -- unless |keep-underscores=yes |
| + | args[k] = mw.uri.decode (v, 'WIKI'); -- percent-decode; replace underscores with space characters |
| + | else |
| + | args[k] = mw.uri.decode (v, 'PATH'); -- percent-decode; retain underscores |
| + | end |
| end | | end |
| end | | end |