Module:Plain text
Revision as of 07:32, 14 April 2018 by blackwiki>Galobtter (+comment)
| File:Ambox warning orange.svg | This Lua module is used on 773,000+ pages. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. Transclusion count updated automatically (see documentation). |
Implements {{Plain text}}. Developed for producing short descriptions from text that may have markup, or other stuff that needs removing from short descriptions.
Usage
{{#invoke:Plain text|main|'''[[foo|hah]]''' is '''''[[gah]]'''''}} --> hah is gah
See also
- {{KillMarkers}}
- {{Nowiki}}
--converts text with wikilinks to plain text, e.g "[[foo|gah]] is [[bar]]" to "gah is bar"
--removes anything enclosed in tags and files, and italic and bold markup
local p = {}
--this function is copied from Module:Citation/CS1/COinS
function p.strip_apostrophe_markup (argument)
if argument:find ( "''", 1, true ) == nil then -- Is there at least one double apostrophe? If not, exit.
return argument
end
while true do
if argument:find ( "'''''", 1, true ) then -- bold italic (5)
argument=argument:gsub("%'%'%'%'%'", ""); -- remove all instances of it
elseif argument:find ( "''''", 1, true ) then -- italic start and end without content (4)
argument=argument:gsub("%'%'%'%'", "");
elseif argument:find ( "'''", 1, true ) then -- bold (3)
argument=argument:gsub("%'%'%'", "");
elseif argument:find ( "''", 1, true ) then -- italic (2)
argument=argument:gsub("%'%'", "");
else
break;
end
end
return argument; -- done
end
function p.main(frame)
text = frame.args[1]
text = mw.ustring.gsub (text, '<.->.-<.->', '') --strip out flags, plus any other tags, e.g footnotes
text = mw.ustring.gsub (text, '%[%[File:.-%]%]', '') --strip out files
text = mw.ustring.gsub (text, '%[%[.-|', '') --strip out piped link text
text = mw.ustring.gsub (text, '%[', '') --then strip out remaining [ and ]
text = mw.ustring.gsub (text, '%]', '')
text = p.strip_apostrophe_markup(text)
return text
end
return p