Module:User script table row

local data = mw.loadData('Module:User script table row/data') local p = {}

function p._main(args) local code = args.code local doc = args.doc local name = args.name local desc = args.desc if not code and not doc then return mw.html.create('tr'):tag('td'):attr('colspan', 4) :tag('span') :addClass('error') :wikitext('Error: &#x3c;code&#x3e;|code=&#x3c;/code&#x3e; or &#x3c;code&#x3e;|doc=&#x3c;/code&#x3e; must be specified') :allDone end if not code then code = doc .. '.js' end if not doc then local title = code:match('^(.+)%.[CJcj][Ss][Ss]?$') if title then title = mw.title.new(title) if not title.isExternal and title.exists then doc = title.fullText end end end if not name then name = doc and mw.ustring.match(doc, '[^/]+$') or			mw.ustring.match(code, '([^/]+)%.[CJcj][Ss][Ss]?$') end local row = mw.html.create('tr') do local cell = mw.html.create('td') :wikitext(doc and string.format('%s', doc, name) or name) if args.indent and args.indent:find('^%d+$') then cell:css('padding-left', args.indent .. 'em') end if code ~= 'none' then cell :wikitext(' ') :tag('span') :addClass('userscripttable-sourcelink') :wikitext(string.format('(source)', code)) :done :tag('span') :addClass('scriptInstallerLink') :attr('id', code) :done end row:node(cell) end row:tag('td') :wikitext(desc) :done local stats = code and data[code] or { total = 'N/A', active = 'N/A' } row :tag('td'):wikitext(stats.total):done :tag('td'):wikitext(stats.active) return row end

function p.main(frame) local args = {} for k, v in pairs(frame:getParent.args) do		if v and v ~= '' then args[k] = v		end end return p._main(args) end

return p