Module:also/auto

Hello, you have come here looking for the meaning of the word Module:also/auto. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:also/auto, but we will also tell you about its etymology, its characteristics and you will know how to say Module:also/auto in singular and plural. Everything you need to know about the word Module:also/auto you have here. The definition of the word Module:also/auto will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:also/auto, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

This module is experimental.
The details of its operation have not yet been fully decided upon. Do not deploy widely until the module is finished.

local p = {}

local PAGENAME = mw.title.getCurrentTitle().text
local m_unicode = require("Module:Unicode data")
local m_data = require("Module:also/processed data") -- this contains only existing pages

function get_hashkey(word)
	buffer = mw.ustring.toNFKD(mw.ustring.lower(word))
	for k, v in pairs(m_data.customkeys) do
		buffer = mw.ustring.gsub(buffer, k, v)
	end
	hashkey = {}
	for cp in mw.ustring.gcodepoint(buffer) do
		table.insert(hashkey, is_valid(cp) and mw.ustring.char(cp) or "")
	end
	return table.concat(hashkey)
end

function is_valid(cp)
	category = m_unicode.lookup_category(cp)
	return (category:match("^.$") or category == "Mc" or category == "Sc") -- can't rely on built-in %w class
end

function p.main(frame)
	local hashkey = get_hashkey(PAGENAME)
	local data = m_data.lookups or {}
	for i, v in ipairs(frame:getParent().args) do -- if it has manual params
		table.insert(data, v)
	end

	if #data == 0 then
		error("This term does not exist in 'Module:also/processed data' and no parameter is given.")
	end

	local new_frame = frame:newChild{title = frame:getTitle(), args = data}
	function new_frame:getParent()
		return self
	end
	-- FIXME: move this to ] and integrate it properly.
	return require('Module:also/templates').also_t(new_frame)
end

return p