Przejdź do zawartości

Moduł:Sandbox/Draco flavus/Wyłuskaj

Z Wikiźródeł, wolnej biblioteki

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, "&nbsp;"," ")
	-- 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