Modul:scripts/templates

This module provides access to Module:scripts from templates, so that they can make use of the information stored there.

Exported functionsExported functions

existsexists

{{#invoke:scripts/templates|exists|script code}}

Check whether a script code exists and is valid. It will return "1" if the script code exists, and the empty string "" if it does not.

This is rarely needed, because a script error will result when someone uses a code that is not valid, so you do not need this just to check for errors. However, in case you need to decide different actions based on whether a certain parameter is a script code or something else, this function can be useful.

getByCodegetByCode

{{#invoke:scripts/templates|getByCode|script code|item to look up|index}}

Queries information about a script code.

For example, to request the default (canonical) name of the script whose code is Latn:

{{#invoke:scripts/templates|getByCode|Latn|getCanonicalName}}

To request its second name, if any:

{{#invoke:scripts/templates|getByCode|Latn|getOtherNames|1}}

See alsoSee also


local export = {}

function export.exists(frame)
	local args = frame.args
	local sc = args[1] or error("Script code has not been specified. Please pass parameter 1 to the module invocation.")
	
	sc = require("Module:scripts").getByCode(sc)
	
	if sc then
		return "1"
	else
		return ""
	end
end

function export.getByCode(frame)
	local args = frame.args
	local sc = args[1] or error("Script code (parameter 1) has not been specified.")
	sc = require("Module:scripts").getByCode(sc, true)

	return require("Module:language-like").templateGetByCode(sc, args,
		function(itemname)
			if itemname == "countCharacters" then
				local text = args[3] or ""
				return sc:countCharacters(text)
			end
		end
	)
end

function export.getByCanonicalName(frame)
	local args = frame.args
	local sc = args[1] or error("Script name (parameter 1) has not been specified.")
	
	sc = require("Module:scripts").getByCanonicalName(sc)
	
	if sc then
		return sc:getCode()
	else
		return "None"
	end
end

function export.findBestScript(frame)
	local args = frame.args
	local text = args[1] or error("Text to analyse (parameter 1) has not been specified.")
	local lang = args[2] or error("Language code (parameter 2) has not been specified.")
	
	lang = require("Module:languages").getByCode(lang, true)
	
	return require("Module:scripts").findBestScript(text, lang):getCode()
end


function export.findBestScriptWithoutLang(frame)
	local args = frame.args
	local text = args[1] or error("Text to analyse (parameter 1) has not been specified.")
	
	return require("Module:scripts").findBestScriptWithoutLang(text)
end

return export
Kategória:Template interface modules