Modul:PageUtil: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
+
(+) |
(+) |
||
Zeile 1: | Zeile 1: | ||
--[=[ 2014-12- | --[=[ 2014-12-26 | ||
PageUtil | PageUtil | ||
* merge() | * merge() | ||
Zeile 8: | Zeile 8: | ||
-- table for export | -- table for export | ||
local PageUtil = {} | local PageUtil = {} | ||
local MaxPages = 200 | |||
Zeile 59: | Zeile 60: | ||
-- frame -- object | -- frame -- object | ||
-- Returns content, or false | -- Returns content, or false | ||
-- Uses: | |||
-- mw.title.new() .exists | |||
local r | local r | ||
local seek = "^(#lstx?):%s*%[%[([^%[|%]\n]+)%]%]%s*(%S.*)%s*$" | local seek = "^(#lstx?):%s*%[%[([^%[|%]\n]+)%]%]%s*(%S.*)%s*$" | ||
Zeile 64: | Zeile 67: | ||
if source then | if source then | ||
local page = mw.title.new( source ) | local page = mw.title.new( source ) | ||
source = page.prefixedText | |||
if page.exists then | if page.exists then | ||
section = mw.text.trim( section ) | section = mw.text.trim( section ) | ||
Zeile 73: | Zeile 77: | ||
else | else | ||
r = string.format( "<div class=\"error\">%s</div>", | r = string.format( "<div class=\"error\">%s</div>", | ||
source ) | |||
end | end | ||
end | end | ||
Zeile 88: | Zeile 92: | ||
-- assembly -- table, with page infos | -- assembly -- table, with page infos | ||
-- Returns string with content, or nil | -- Returns string with content, or nil | ||
-- Uses: | |||
-- mw.title.new() .exists | |||
local page = mw.title.new( access ) | local page = mw.title.new( access ) | ||
local r | local r | ||
Zeile 125: | Zeile 131: | ||
end -- for k, v | end -- for k, v | ||
if max > 0 then | if max > 0 then | ||
local n = 0 | |||
local pages = { { mw.title.getCurrentTitle().prefixedText, | local pages = { { mw.title.getCurrentTitle().prefixedText, | ||
"" } } | "" } } | ||
Zeile 137: | Zeile 144: | ||
if swallow then | if swallow then | ||
s = fraction( swallow, frame ) | s = fraction( swallow, frame ) | ||
n = n + 1 | |||
else | else | ||
swallow = s:match( "^%s*%[%[([^%[|%]\n]+)%]%]%s*$" ) | swallow = s:match( "^%s*%[%[([^%[|%]\n]+)%]%]%s*$" ) | ||
if swallow then | if swallow then | ||
s = full( swallow, frame, i, pages ) | s = full( swallow, frame, i, pages ) | ||
n = n + 1 | |||
end | end | ||
end | end | ||
if s then | if s then | ||
r = r .. s | r = r .. mw.text.trim( s ) | ||
end | |||
if n > MaxPages then | |||
s = string.format( "'''Too many pages (max. %d)'''", | |||
MaxPages ) | |||
r = string.format( "%s\n\n%s", | |||
r, | |||
fault( s, frame ) ) | |||
break -- for i | |||
end | end | ||
end | end |