Difference between revisions of "Module:Plain text"

From blackwiki
Jump to navigation Jump to search
blackwiki>Galobtter
(+comment)
blackwiki>Galobtter
(per comment from User:Rexxs, simplify)
Line 2: Line 2:
 
--removes anything enclosed in tags and files, and italic and bold markup
 
--removes anything enclosed in tags and files, and italic and bold markup
 
local p = {}
 
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)
 
function p.main(frame)
text = frame.args[1]
+
local text = frame.args[1]
 
text = mw.ustring.gsub (text, '<.->.-<.->', '') --strip out flags, plus any other tags, e.g footnotes
 
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, '%[%[File:.-%]%]', '') --strip out files
Line 32: Line 10:
 
text = mw.ustring.gsub (text, '%[', '') --then strip out remaining [ and ]
 
text = mw.ustring.gsub (text, '%[', '') --then strip out remaining [ and ]
 
text = mw.ustring.gsub (text, '%]', '')
 
text = mw.ustring.gsub (text, '%]', '')
text = p.strip_apostrophe_markup(text)
+
text = txt:gsub("'''''", ""):gsub("''''", ""):gsub("'''", ""):gsub("''", "")
 
return text
 
return text
 
end
 
end
  
 
return p
 
return p

Revision as of 20:03, 14 April 2018

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]]'''''}} --> Lua error at line 12: attempt to index global 'txt' (a nil value).

See also


--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 = {}

function p.main(frame)
	local 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 = txt:gsub("'''''", ""):gsub("''''", ""):gsub("'''", ""):gsub("''", "")
	return text
end

return p