Module:Dash: Difference between revisions
Jump to navigation
Jump to search
ArrowHead294 (talk | contribs) mNo edit summary |
ArrowHead294 (talk | contribs) mNo edit summary |
||
| (4 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
function p. | -- Main function that does the substitution | ||
function p._dash(in_str, s, d, d2) | |||
local sp, se1, se2 | local sp, se1, se2 | ||
if s == "thin" then | if s == "thin" then | ||
| Line 48: | Line 45: | ||
end | end | ||
local | local result = ((se2 == nil or se2 == "") | ||
and in_str:gsub("[,|%s]*,%s+", sp .. se1 .. sp) | |||
or in_str:gsub(",%s*,%s+", sp .. se2 .. sp):gsub(",%s+", sp .. se1 .. sp)) | |||
return result | |||
end | |||
-- Wrapper function for Template:Dash | |||
function p.dashes(frame) | |||
local s = frame.args["s"] | |||
local d = frame.args["d"] | |||
local d2 = frame.args["d2"] | |||
local in_str = frame.args["input_str"] | |||
local debugg = frame.args["debug"] | |||
local result = p._dash(in_str, s, d, d2) | |||
if debugg == true then | |||
result = "<syntaxhighlight lang=\"wikitext\">" .. result .. "</syntaxhighlight>" | |||
end | end | ||
return frame:preprocess( | return frame:preprocess(result) | ||
end | end | ||
return p | return p | ||
Latest revision as of 12:04, 1 June 2025
- This module should not be invoked directly; use its corresponding template instead: Template:Dash.
Replaces comma and space in list with dashes and spaces.
| Introspection summary for Module:Dash | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||
No function descriptions were provided. The Lua code may have further information.
local p = {}
-- Main function that does the substitution
function p._dash(in_str, s, d, d2)
local sp, se1, se2
if s == "thin" then
sp = " " -- U+2009 THIN SPACE
elseif s == "hair" then
sp = " " -- U+200A HAIR SPACE
elseif s == "space" then
sp = " " -- Regular space
elseif s == "nbsp" then
sp = " " -- U+00A0 NO-BREAK SPACE
elseif s == "nnbsp" then
sp = " " -- U+202F NARROW NO-BREAK SPACE
else
sp = "" -- No space
end
if d == "long" then
se1 = "—" -- U+2014 EM DASH
elseif d == "med" or d == "medium" then
se1 = "–" -- U+2013 EN DASH
elseif d == "larr" or d == "oarr" then
se1 = "←" -- U+2190 ← LEFTWARDS ARROW
elseif d == "rarr" or d == "iarr" then
se1 = "→" -- U+2192 → RIGHTWARDS ARROW
else
se1 = "-" -- Hyphen-minus
end
if d2 == "long" then
se2 = "—" -- U+2014 EM DASH
elseif d2 == "med" or d2 == "medium" then
se2 = "–" -- U+2013 EN DASH
elseif d2 == "larr" or d == "iarr" then
se2 = "←" -- U+2190 ← LEFTWARDS ARROW
elseif d2 == "rarr" or d == "oarr" then
se2 = "→" -- U+2192 → RIGHTWARDS ARROW
elseif d2 == "short" then
se1 = "-" -- Hyphen-minus
else
se2 = ""
end
local result = ((se2 == nil or se2 == "")
and in_str:gsub("[,|%s]*,%s+", sp .. se1 .. sp)
or in_str:gsub(",%s*,%s+", sp .. se2 .. sp):gsub(",%s+", sp .. se1 .. sp))
return result
end
-- Wrapper function for Template:Dash
function p.dashes(frame)
local s = frame.args["s"]
local d = frame.args["d"]
local d2 = frame.args["d2"]
local in_str = frame.args["input_str"]
local debugg = frame.args["debug"]
local result = p._dash(in_str, s, d, d2)
if debugg == true then
result = "<syntaxhighlight lang=\"wikitext\">" .. result .. "</syntaxhighlight>"
end
return frame:preprocess(result)
end
return p