Module:Convert/helper explained

-- This module provides some functions to prepare template parameters-- for use with Template:Convert.-- This module is not used by Template:Convert or Module:Convert.

local function stripToNil(text) -- If text is a non-empty string, return its trimmed content, -- otherwise return nothing (empty string or not a string). if type(text)

'string' then return text:match('(%S.-)%s*$') endend

-- Remove commas and references (any strip markers) from a number.-- First usage in Template:Infobox_UK_place/dist (June 2018)local function cleanNumber(frame) local args = frame.args local text = stripToNil(args[1]) or if text

or tonumber(text) then return text end return mw.text.killMarkers(text):gsub(',', )end

local fractions =

local fractionNumbers =

-- Format regular input with fraction (MOS-confirmant) into Convert-format "12+3/8" ("+" added).-- First usage in Template:NFL_predraft (August 2017)local function number(frame) --number|12 3/8}} → 12+3/8 Input Output 12 12 12 3/8 12+3/8 12+3/8 12 12+3/8 12⅜ 12+3/8 Template:Fraction redirects to Template:Frac so either may be used in the input. local args = frame.args local text = stripToNil(args[1]) or if text

or tonumber(text) then return text -- examples: , '12', '12.3', '12.3e4', or negative end text = text:gsub(' ', ' '):gsub(' +', ' '):gsub(' *%+ *', '+'):gsub('⁄', '/'):gsub('⁄', '/') local integer, numerator, denominator, rest -- Look for a fraction of form '12 3/8' or '12+3/8' or '3/8'. integer, numerator, denominator = text:match('^(%d+)[+](%d+)/(%d+)$') if integer then return integer .. '+' .. numerator .. '/' .. denominator end numerator, denominator = text:match('^(%d+)/(%d+)$') if numerator then return numerator .. '/' .. denominator end -- Look for an expanded fraction such as the result of or 12 or . numerator, denominator = text:match('(%d+)/(%d+)') if numerator then integer = text:match('(%d+)

') or text:match('^(%d+)%s*​' .. table.concat(show, ' ') .. ''end

return