Module:NRHP row counter/sandbox

-- This module counts table rows in NRHP tables that use Template:NRHP row.

local p = {} local getArgs

function p.main(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return p._main(getArgs(frame, {wrappers = 'Template:NRHP row counter'})) end

function p._main(args) -- Get the title object. local titleObj do local success success, titleObj = pcall(mw.title.new, args.page) if not success or not titleObj then titleObj = mw.title.getCurrentTitle end end

-- Get the page content. local content = titleObj:getContent if not content then return nil end

-- Find the wikitables on that page. local wikitables = {} do local iWikitable = 0 local s1 = content:match('^({{NRHP header.-\n|})') if s1 then iWikitable = iWikitable + 1 wikitables[iWikitable] = s1		end for s in content:gmatch('\n({{NRHP header.-\n|})') do			iWikitable = iWikitable + 1 wikitables[iWikitable] = s		end end

-- Find the wikitable to work on. local wikitable if args.id then for i, s in ipairs(wikitables) do			if s:match('NRHP header[^\n]*tableID *= *" *(%w+) *"') == args.id then wikitable = s				break end end else wikitable = wikitables[tonumber(args.tableno) or 1] end if not wikitable then return nil end

-- Count the number of rows. local count do local temp temp, count = wikitable:gsub('NRHP row', 'NRHP row') end

return id

end

return p