Moduł:Sandbox/Draco flavus/Wyłuskaj
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Sandbox/Draco flavus/Wyłuskaj/opis
local p = {}
local escape_lua_pattern
do
local matches =
{
["^"] = "%^";
["$"] = "%$";
["("] = "%(";
[")"] = "%)";
["%"] = "%%";
["."] = "%.";
["["] = "%[";
["]"] = "%]";
["*"] = "%*";
["+"] = "%+";
["-"] = "%-";
["?"] = "%?";
}
escape_lua_pattern = function(s)
return (s:gsub(".", matches))
end
end
function p.Find_EO_in_the_section(frame)
-- Wywołanie: {{#invoke: Sandbox/Draco flavus/Wyłuskaj | Find_EO_in_the_section | Strona:PL Encyklopedyja powszechna 1860 T1.djvu|page|sekcja}}
-- Wynik: znajduje na danej stronie ostatnie zamknięcie <section end="cośtam" /> do najbliższego znaku '''>''' szuka szablonu EO_autorinfo
-- z szablonu wyłuskuje parametr pomijając ewentualne widoczny=nie, widoczny=tak, widoczny=wartykule
-- local SubPageResult = frame.args[4]..string.char(10)..string.char(10)
local n = tonumber(frame.args[2])
local m = tonumber(frame.args[3])
local Result = ""
local SubPageResult=mw.title.new(frame.args[1] .. "/" .. frame.args[2]):getContent()
local SearchPattern = "{{EO autorinfo|([^>}]*)}}[^>]*%<section end *=" .. string.char(34) .. string.char(63) .. escape_lua_pattern(frame.args[3]) .. string.char(34) .. string.char(63) .. " */%>"
for v in string.gmatch(SubPageResult, SearchPattern) do
Result = v
end
-- czyszczenie, usunięcie apostrofów, zamiana spacji niełamliwych na zwykłe, usunięcie widoczny=nie, widoczny=tak, widoczny=wartykule, pipesign
Result=string.gsub(Result, string.char(39),"")
Result=string.gsub(Result, "widoczny *= *nie *","")
Result=string.gsub(Result, "widoczny *= *tak *","")
Result=string.gsub(Result, "widoczny *= *wartykule *","")
Result=string.gsub(Result, string.char(124),"")
Result=string.gsub(Result, " "," ")
-- czyszczenie, usunięcie odstępów z przodu i z tyłu tekstu
Result=string.gsub(Result, "^ *","")
Result=string.gsub(Result, " *$","")
return Result
end
return p