Bước tới nội dung

Mô đun:Other uses/sandbox

Bách khoa toàn thư mở Wikipedia
local mHatnote = require('Mô đun:Hatnote')local mHatlist = require('Mô đun:Hatnote list')local mArguments --initialize lazilylocal mTableTools --initialize lazilylocal libraryUtil = require('libraryUtil')local checkType = libraryUtil.checkTypelocal p = {}-- Produces standard {{other uses}} implementationfunction p.otheruses(frame)	mArguments = require('Mô đun:Arguments')	mTableTools = require('Mô đun:TableTools')	local args = mTableTools.compressSparseArray(mArguments.getArgs(frame))	local title = mw.title.getCurrentTitle().prefixedText	return p._otheruses(args, {title=title})end--Implements "other [x]" templates with otherText supplied at invocationfunction p.otherX(frame)	mArguments = require('Mô đun:Arguments')	mTableTools = require('Mô đun:TableTools')	local x = frame.args[1]	local args = mTableTools.compressSparseArray(		mArguments.getArgs(frame, {parentOnly = true})	)	local options = {		title = mw.title.getCurrentTitle().prefixedText,		otherText = x	}	return p._otheruses(args, options)end-- Main generatorfunction p._otheruses(args, options)	--Type-checks and defaults	checkType('_otheruses', 1, args, 'table', true)	args = args or {}	checkType('_otheruses', 2, options, 'table')	if not (options.defaultPage or options.title) then		error('Không có dữ liệu tiêu đề mặc định được cung cấp trong tùy chọn bảng "_otheruses"', 2)	end	local emptyArgs = true	for k, v in pairs(args) do		if type(k) == 'number' then emptyArgs = false break end	end	if emptyArgs then		args = {			options.defaultPage or			mHatnote.disambiguate(options.title, options.disambiguator)		}	end	--Generate and return hatnote	local text = mHatlist.forSeeTableToString({{		use = options.otherText and "other " .. options.otherText or nil,		pages = args	}})	return mHatnote._hatnote(text)endreturn p