Bước tới nội dung

Mô đun:User script table row

Bách khoa toàn thư mở Wikipedia
local data = mw.loadData('Mô đun: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('Lỗi: <code>|code=</code> hoặc <code>|doc=</code> phải được định rõ')				:allDone()	end		if not code and not args.instruction 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')		local instruction	if args.instruction ~= 'no' then		instruction = args.instruction		if not instruction then			local isGlobal = args.skin == 'global'			local temp = code:find('%.[Cc][Ss][Ss]$') and 'luss' or 'lusc'			if isGlobal then				local interwiki = mw.title.new(code).interwiki				local path = interwiki == 'meta' and code:sub(6) or					interwiki == '' and 'w:' .. code or code				temp = mw.getCurrentFrame():expandTemplate{					title = temp, args = { path, '' }				}:gsub('{{subst:localurl', '{{subst:fullurl'):gsub('%s*//.-$', '')			else				temp = string.format('{{subst:%s|1=%s%s}}',					temp,					code,					args.backlink and '|2=' .. args.backlink or ''				)			end			instruction = string.format(				'\'\'\'[[:m:Special:EditPage/Special:MyPage/global.js|Nhấn vào đây]]\'\'\'\ và dán đoạn mã dưới đây:<div><code>%s</code></div>',				temp			)		end		instruction = mw.html.create('')			:newline()			:tag('div')				:addClass('mw-collapsible mw-collapsed userscripttable-instruction')				:tag('div')					:addClass('userscripttable-instruction-head')					:wikitext('Cách cài đặt')					:done()				:tag('div')					:addClass('mw-collapsible-content')					:wikitext(instruction)					:done()				:done()	end		do		local cell = mw.html.create('td')			:wikitext(doc and string.format('[[:%s|%s]]', doc, name) or name)				if args.indent and args.indent:find('^%d+$') then			cell:css('padding-left', args.indent .. 'em')		end				if code then			cell				:wikitext(' ')				:tag('span')					:addClass('userscripttable-sourcelink')					:wikitext(string.format('([[:%s|mã nguồn]])', code))					:done()		end				if instruction and code then			cell:tag('span')				:addClass('scriptInstallerLink')				:attr('id', code)				:done()		end				row:node(cell)	end		row:tag('td')		:wikitext(desc)		:node(instruction)		: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 rowendfunction 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)endreturn p