Module:String2: Difference between revisions
From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
Content added Content deleted
(fetch parent args) |
(findpagetext) |
||
Line 170: | Line 170: | ||
txt = txt:gsub(" one ", " a "):gsub("^one", "a"):gsub("One ", "A "):gsub("a ([aeiou])", "an %1"):gsub("A ([aeiou])", "An %1") |
txt = txt:gsub(" one ", " a "):gsub("^one", "a"):gsub("One ", "A "):gsub("a ([aeiou])", "an %1"):gsub("A ([aeiou])", "An %1") |
||
return txt |
return txt |
||
end |
|||
-- findpagetext returns the position of a piece of text in a page |
|||
-- First positional parameter or |text is the search text |
|||
-- Optional parameter |title is the page title, defaults to current page |
|||
-- Optional parameter |plain is either true for plain search (default) or false for Lua pattern search |
|||
-- Optional parameter |nomatch is the return value when no match is found; default is nil |
|||
p._findpagetext = function(args) |
|||
-- process parameters |
|||
local nomatch = args.nomatch or "" |
|||
if nomatch == "" then nomatch = nil end |
|||
-- |
|||
local text = mw.text.trim(args[1] or args.text or "") |
|||
if text == "" then return nil end |
|||
-- |
|||
local title = args.title or "" |
|||
local titleobj |
|||
if title == "" then |
|||
titleobj = mw.title.getCurrentTitle() |
|||
else |
|||
titleobj = mw.title.new(title) |
|||
end |
|||
-- |
|||
local plain = args.plain or "" |
|||
if plain:sub(1, 1) == "f" then plain = false else plain = true end |
|||
-- get the page content and look for 'text' - return position or nomatch |
|||
content = titleobj:getContent() |
|||
return mw.ustring.find(content, text, 1, plain) or nomatch -- returns multiple values |
|||
end |
|||
p.findpagetext = function(frame) |
|||
local args = frame.args |
|||
local pargs = frame:getParent().args |
|||
for k, v in pairs(pargs) do |
|||
args[k] = v |
|||
end |
|||
if not (args[1] or args.text) then return nil end |
|||
-- just the first value |
|||
return (p._findpagetext(args)) |
|||
end |
end |
||