Modul:PageUtil: Unterschied zwischen den Versionen

610 Bytes hinzugefügt ,  26. Dezember 2014
+
(+)
(+)
Zeile 1: Zeile 1:
--[=[ 2014-12-25
--[=[ 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>",
                               page.prefixedText )
                               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
Anonymer Benutzer