Editing
Module:TextUtil
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
-- Source for gsplit, split, and trim: https://phabricator.wikimedia.org/diffusion/ELUA/browse/master/includes/engines/LuaCommon/lualib/mw.text.lua local p = {} function p.gsplit( text, pattern, plain ) if not pattern then pattern = ',' end if not plain then pattern = '%s*' .. pattern .. '%s*' end local s, l = 1, text:len() return function () if s then local e, n = text:find( pattern, s, plain ) local ret if not e then ret = text:sub( s ) s = nil elseif n < e then -- Empty separator! ret = text:sub( s, e ) if e < l then s = e + 1 else s = nil end else ret = e > s and text:sub( s, e - 1 ) or '' s = n + 1 end return ret end end, nil, nil end function p.splitNonempty(text, pattern, plain) if text == '' then return {} end return p.split(text, pattern, plain) end function p.splitOrNil(text, pattern, plain) if text == '' or not text then return nil end return p.split(text, pattern, plain) end function p.split(text, pattern, plain) if not text then return {} end local ret = {} for m in p.gsplit(text, pattern, plain) do ret[#ret+1] = m end return ret end function p.splitIfString(str, sep, plain) if type(str) == 'table' then return str end return p.split(str, sep, plain) end function p.trim( s, charset ) charset = charset or '\t\r\n\f ' s = s:gsub( '^[' .. charset .. ']*(.-)[' .. charset .. ']*$', '%1' ) return s end function p.escape(link) link = link or '' -- because of gsub not letting you have - unescaped link = string.gsub(link,'%-','%%%-') link = string.gsub(link,'%(','%%%(') link = string.gsub(link,'%)','%%%)') link = string.gsub(link,'%+','%%%+') return link end function p.escapeCustom(link, tbl) for _, row in pairs(tbl) do link = link:gsub(row.find, row.replace) end return link end function p.nextLetter(char) return string.char(char:byte() + 1) end function p.extLink(link, text) if link == '' then link = nil end if not link then return end return ('[%s %s]'):format(link, text or 'Link') end function p.intLink(link, text) if link == '' then link = nil end if not link and not text then return end return ('[[%s|%s]]'):format(link or text, text or 'Link') end function p.fileLink(file, target) if file == '' then file = nil end if not file then return nil end file = file:gsub('File:', '') return ('[[File:%s|link=%s]]'):format(file, target) end function p.link(link, text) if not link then return p.intLink(link, text) end if link:find('http') then return p.extLink(link, text) else return p.intLink(link, text) end end function p.ambiguousLink(link, text) if not link then return p.intLink(link, text) end if link:find('http') then return p.extLink(link, text) else return ('<span class="external">%s</span>'):format(p.intLink(link, text)) end end function p.extLinkOrText(link, text) if link == '' then link = nil end if not link then return text end return ('[%s %s]'):format(link, text or link) end function p.intLinkOrText(link, text) if link == '' then link = nil end if not link then return text end return ('[[%s|%s]]'):format(link, text or link) end function p.linkOrText(link, text) if link:find('http') then return p.extLinkOrText(link, text) else return p.intLinkOrText(link, text) end end function p.ucFirstOnly(str) if not str then return end return mw.getLanguage('en'):ucfirst(str:lower()) end function p.ucfirst(str) if not str then return end return mw.getLanguage('en'):ucfirst(str) end function p.lcfirst(str) if not str then return end return mw.getLanguage('en'):lcfirst(str) end function p.possessive(str, literal) if (literal or str):find('s$') then return str .. "'" end return str .. "'s" end return p
Summary:
Please note that all contributions to Porn Base Central may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Porn Base Central:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Preview page with this template
Template used on this page:
Module:TextUtil/doc
(
view source
)
Navigation menu
Personal tools
English
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Module
Discussion
English
Views
Read
Edit source
View history
More
Search
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Tools
What links here
Related changes
Upload file
Page information
In other projects