Module:Hani-sortkey/templates

local export = {}

local m_sortkey = require("Module:Hani-sortkey") local m_sortkey_sandbox = require("Module:Hani-sortkey/sandbox")

local lang = require("Module:languages").getByCode("zh") local sc = require("Module:scripts").getByCode("Hani")

local function tag(text) return require("Module:script utilities").tag_text(text, lang, sc) end

local function link(text) return require("Module:links").full_link{ term = text, lang = lang, sc = sc, tr = "-" } end

local a = {} a[1] = '命裡有時終須有，命裡無時莫強求' -- punctuation a[2] = 'gas爐' -- non-cjk a[3] = 'γ粒子' -- non-cjk a[4] = 'PS/2接口' -- non-cjk + symbols a[5] = '濕𣲷𣲷' -- exotic unicode a[6] = '得個……字' -- punctuation? a[7] = '赛车' -- simplified

function export.showSorting(frame) local terms = {} if frame.args[1] then for i, term in ipairs(frame.args) do			table.insert(terms, mw.text.trim(term)) end else terms = a	end local module = frame.args.sandbox and m_sortkey_sandbox or m_sortkey local function comp(term1, term2) return (module.makeSortKey(term1)) < (module.makeSortKey(term2)) end table.sort(terms, comp) for i, term in pairs(terms) do		local title = mw.title.new(term) local exists = title and title.exists terms[i] = "\n* " .. ( exists and link(term) or tag(term) ) .. " "	end return table.concat(terms) end

function export.sortkey(frame) return (m_sortkey.makeSortKey(frame.args[1], frame.args[2], frame.args[3])) end

function export.showIDSLinks(frame) local out = {} for IDS, sortkey in pairs(mw.loadData("Module:Hani-sortkey/data/unsupported")) do table.insert(out, "\n* " .. link(IDS) .. " → ") end return table.concat(out) end

return export