https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Module%3APerson_weight%2Fsandbox
Module:Person weight/sandbox - Revision history
2025-06-07T19:12:21Z
Revision history for this page on the wiki
MediaWiki 1.45.0-wmf.4
https://en.wikipedia.org/w/index.php?title=Module:Person_weight/sandbox&diff=958976825&oldid=prev
Zyxw: Remove periods or commas after unit names. Fixes trailing character after single unit conversion. Fixes no conversion when multiple units separated by either character.
2020-05-26T15:35:31Z
<p> Remove periods or commas after unit names. Fixes trailing character after single unit conversion. Fixes no conversion when multiple units separated by either character.</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:35, 26 May 2020</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 4:</td>
<td colspan="2" class="diff-lineno">Line 4:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local function clean_weight(s)</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local function clean_weight(s)</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'kilogram', 'kg')</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'kilogram', 'kg')</div></td>
</tr>
<tr>
<td class="diff-marker"><a class="mw-diff-movedpara-left" title="Paragraph was moved. Click to jump to new location." href="#movedpara_7_2_rhs">⚫</a></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_3_0_lhs"></a> s = mw.ustring.gsub(s, 'stone', 'st')</div></td>
<td colspan="2" class="diff-empty diff-side-added"></td>
</tr>
<tr>
<td class="diff-marker"><a class="mw-diff-movedpara-left" title="Paragraph was moved. Click to jump to new location." href="#movedpara_5_2_rhs">⚫</a></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_3_1_lhs"></a> s = mw.ustring.gsub(s, 'pound', 'lb')</div></td>
<td colspan="2" class="diff-empty diff-side-added"></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'kgs', 'kg')</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'kgs', 'kg')</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'kg[%.,]', 'kg')</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker"><a class="mw-diff-movedpara-right" title="Paragraph was moved. Click to jump to old location." href="#movedpara_3_1_lhs">⚫</a></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_5_2_rhs"></a> s = mw.ustring.gsub(s, 'pound', 'lb')</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'lbs', 'lb')</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'lbs', 'lb')</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'lb[%.,]', 'lb')</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker"><a class="mw-diff-movedpara-right" title="Paragraph was moved. Click to jump to old location." href="#movedpara_3_0_lhs">⚫</a></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_7_2_rhs"></a> s = mw.ustring.gsub(s, 'stone', 'st')</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'sts', 'st')</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'sts', 'st')</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'st[%.,]', 'st')</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, '%[%[kg%]%]s', '[[Kilogram|kg]]')</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, '%[%[kg%]%]s', '[[Kilogram|kg]]')</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
</table>
Zyxw
https://en.wikipedia.org/w/index.php?title=Module:Person_weight/sandbox&diff=958941134&oldid=prev
Zyxw: Test fix for when Convert template outputs [ [kilogram] ]s - module changed that to [ [kg] ]s - should be [ [Kilograms|kg] ] instead.
2020-05-26T11:41:08Z
<p>Test fix for when Convert template outputs [ [kilogram] ]s - module changed that to [ [kg] ]s - should be [ [Kilograms|kg] ] instead.</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 11:41, 26 May 2020</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 10:</td>
<td colspan="2" class="diff-lineno">Line 10:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'lbs', 'lb')</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'lbs', 'lb')</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'sts', 'st')</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, 'sts', 'st')</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> s = mw.ustring.gsub(s, '%[%[kg%]%]s', '[[Kilogram|kg]]')</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return s</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return s</div></td>
</tr>
</table>
Zyxw
https://en.wikipedia.org/w/index.php?title=Module:Person_weight/sandbox&diff=958911789&oldid=prev
Zyxw: Create sandbox version of Module:Person weight
2020-05-26T08:05:13Z
<p>Create sandbox version of <a href="/wiki/Module:Person_weight" title="Module:Person weight">Module:Person weight</a></p>
<p><b>New page</b></p><div>-- This module implements [[Template:Infobox person/weight]]<br />
<br />
local p = {}<br />
<br />
local function clean_weight(s)<br />
s = mw.ustring.gsub(s, 'kilogram', 'kg')<br />
s = mw.ustring.gsub(s, 'stone', 'st')<br />
s = mw.ustring.gsub(s, 'pound', 'lb')<br />
s = mw.ustring.gsub(s, 'kgs', 'kg')<br />
s = mw.ustring.gsub(s, 'lbs', 'lb')<br />
s = mw.ustring.gsub(s, 'sts', 'st')<br />
<br />
return s<br />
end<br />
<br />
local function isnumber(s)<br />
if s then<br />
s = mw.ustring.gsub(s, '%+%s*%d+%s*/%s*%d+%s*$', '')<br />
s = mw.ustring.gsub(s, '%s*[–%-]%s*', '')<br />
return tonumber(s)<br />
end<br />
return nil<br />
end<br />
<br />
local function get_convert_weight_args(s, kg_stlb, lb_stlb)<br />
local prefer_m = (prefer or '') == 'm'<br />
local force_m = (enforce or '') == 'm'<br />
local prefer_cm = (prefer or '') == 'cm'<br />
local force_cm = (enforce or '') == 'cm'<br />
<br />
unconverted = clean_weight(s or '') -- basic unit cleaning<br />
<br />
s = mw.ustring.gsub(unconverted, '&[Nn][Bb][Ss][Pp];', ' ')<br />
<br />
local kg = mw.ustring.find(s, 'kg')<br />
local st = mw.ustring.find(s, 'st')<br />
local lb = mw.ustring.find(s, 'lb')<br />
<br />
if kg == nil and st == nil and lb == nil then<br />
return '', unconverted<br />
end<br />
<br />
if kg ~= nil and st == nil and lb == nil then<br />
local n = mw.ustring.sub(s, 1, kg - 1)<br />
if isnumber(n) then<br />
return {n,'kg',kg_stlb and 'lb stlb' or 'lb',0,['abbr']='on'}, mw.ustring.sub(s, kg+2)<br />
end<br />
return '', unconverted<br />
end<br />
<br />
if lb ~= nil and kg == nil and st == nil then<br />
local n = mw.ustring.sub(s, 1, lb - 1)<br />
if isnumber(n) then<br />
return {n,'lb',lb_stlb and 'kg stlb' or 'kg',0,['abbr']='on'}, mw.ustring.sub(s, lb+2)<br />
end<br />
return '', unconverted<br />
end<br />
<br />
if st ~= nil and kg == nil and lb == nil then<br />
local n = mw.ustring.sub(s, 1, st - 1)<br />
if isnumber(n) then<br />
return {n,'st','lb kg',0,['abbr']='on'}, mw.ustring.sub(s, st+2)<br />
end<br />
return '', unconverted<br />
end<br />
<br />
if lb ~= nil and st ~=nil and kg == nil then<br />
local n1 = mw.ustring.sub(s, 1, st - 1)<br />
local n2 = mw.ustring.sub(s, st+2, lb - 1)<br />
if isnumber(n1) and isnumber(n2) then<br />
return {n1,'st',n2,'lb', 'lb kg',0,['abbr']='on'}, mw.ustring.sub(s, lb+2)<br />
end<br />
return '', unconverted<br />
end<br />
<br />
return '', unconverted<br />
end<br />
<br />
function convert_weight(frame, args)<br />
local targs, str = get_convert_weight_args(args[1], (args['kg-stlb'] or '') ~= '', (args['lb-stlb'] or '') ~= '')<br />
<br />
if type(targs) == 'table' then<br />
return frame:expandTemplate{ title = 'convert', args = targs} .. str<br />
else<br />
return str<br />
end<br />
end<br />
<br />
function p.weight(frame)<br />
return convert_weight(frame, frame.args[1] and frame.args or frame:getParent().args)<br />
end<br />
<br />
return p</div>
Zyxw