Module:Scripts/templates

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 = require("Module:scripts").getByCode(args[1], 1, "disallow nil")

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.") local force_detect = args.force_detect; if force_detect == "" then force_detect = nil end local getCanonicalName = args[3] == "getCanonicalName" local sc = require("Module:languages").getByCode(lang, true):findBestScript(text, force_detect) if getCanonicalName then return sc:getCanonicalName else return sc:getCode end end

return export