8,756
edits
mNo edit summary |
mNo edit summary |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
local conjugate = require'Module:Grammar/Conjugate' | |||
function p.pluralize(frame, apostrophe) | function p.pluralize(frame, apostrophe) | ||
Line 10: | Line 11: | ||
if (prefix == nil or prefix == '' or postfix == nil or postfix == '') then | if (prefix == nil or prefix == '' or postfix == nil or postfix == '') then | ||
return htmlString --return unmodified string (couldn't find alpha character followed by closing HTML tag) | return htmlString --return unmodified string (couldn't find alpha character followed by closing HTML tag) | ||
else | else | ||
return (conjugate.pluralize(prefix, apostrophe) .. postfix) | |||
end | end | ||
end | end | ||
Line 21: | Line 18: | ||
function p.make_possessive(frame) | function p.make_possessive(frame) | ||
return p.pluralize(frame, "'") | return p.pluralize(frame, "'") | ||
end | |||
function p.capitalize(frame) | |||
local htmlString = frame.args.html | |||
if string.find(htmlString, "{") then | |||
htmlString = frame:preprocess(htmlString) --expand any templates that may have been passed to this module | |||
end | |||
--split string at the first alphabetic character that appears immediately after a starting html tag <...> | |||
prefix = htmlString:match'([^/]*>)' or '' | |||
if (prefix == nil or prefix == '') then | |||
return conjugate.capitalize(htmlString) | |||
else | |||
_, a = htmlString:find'([^/]*>)' | |||
postfix = htmlString:sub(a + 1) or '' | |||
mw.log('prefix: ' .. prefix) | |||
mw.log('postfix: ' .. postfix) | |||
return (prefix .. conjugate.capitalize(postfix)) | |||
end | |||
end | |||
function p.strip_formatting(frame) | |||
local htmlString = frame.args.html | |||
htmlString = frame:preprocess(htmlString) | |||
return (htmlString:gsub("<[^>]->", "")) | |||
end | end | ||
return p | return p |