Module:Listing: Difference between revisions

Jump to navigation Jump to search
Want an adless experience? Log in or Create an account.
(add ^...$ to heading regex)
(comment out some things to try to reduce cpu usage... this doesn't seem like it should be so expensive though)
Line 3: Line 3:
function p._parseListing( pageName )
function p._parseListing( pageName )
   local pageContent = mw.title.new( pageName ):getContent()
   local pageContent = mw.title.new( pageName ):getContent()
   local currentSection = {
   local root = {
     level = 1,
     level = 1,
     name = pageName,
     name = pageName,
Line 10: Line 10:
     sections = {}
     sections = {}
   }
   }
  local currentSection = root


   -- can't think of a regex to split sections so go line by line
   -- can't think of a regex to split sections so go line by line
Line 31: Line 32:
       currentSection = newSection
       currentSection = newSection
     elseif #currentSection.sections == 0 then -- no child headings yet so this is part of the summary of the current section
     elseif #currentSection.sections == 0 then -- no child headings yet so this is part of the summary of the current section
      currentSection.summary = currentSection.summary .. line .. '\n'
--      currentSection.summary = currentSection.summary .. line .. '\n'
     end
     end


     -- add to content of all parent sections, plus current section if line isn't a heading
     -- add to content of all parent sections, plus current section if line isn't a heading
    local contentBackfillSection = headingLevel and currentSection.parent or currentSection
-- content currently isn't needed so disabling this for perf
    repeat
--    local contentBackfillSection = headingLevel and currentSection.parent or currentSection
      contentBackfillSection.content = contentBackfillSection.content .. line .. '\n'
--    repeat
      contentBackfillSection = contentBackfillSection.parent
--      contentBackfillSection.content = contentBackfillSection.content .. line .. '\n'
    until not contentBackfillSection
--      contentBackfillSection = contentBackfillSection.parent
--    until not contentBackfillSection
   end
   end


   -- navigate back to the root to return
   return root
  while currentSection.parent do
    currentSection = currentSection.parent
  end
  return currentSection
end
end