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("^[LN].$") or category == "Mc") -- can't rely on built-in %w class
end
function p.main(frame)
local hashkey = get_hashkey(PAGENAME)
local data = m_data.lookups[hashkey] or {}
for i, v in ipairs(frame:getParent().args) do -- if it has manual params
table.insert(data, v)
end
local new_frame = frame:newChild{title = frame:getTitle(), args = data}
function new_frame:getParent()
return self
end
return require('Module:also').main(new_frame)
end
return p