local p = {}
local function get_all_codepoints(str)
local codepoint_set = {}
for codepoint in mw.ustring.gcodepoint(str) do
codepoint_set[codepoint] = true
end
return require "Module:table".keysToList(codepoint_set)
end
function p.JSON_character_names(str)
local codepoint_list = get_all_codepoints(str)
local Unicode = require "Module:Unicode data"
local JSON = {}
local len = 0
for i, codepoint in ipairs(codepoint_list) do
local key_and_value = '"' .. codepoint .. '":"' .. Unicode.lookup_name(codepoint) .. '"'
if len + #key_and_value > 79 then
key_and_value = '\n' .. key_and_value
len = 0
end
len = len + #key_and_value
table.insert(JSON, key_and_value)
end
return "{" .. table.concat(JSON, ",") .. "}"
end
function p.charinsert_char_names()
local content = mw.title.new("MediaWiki:Gadget-charinsert-core.js"):getContent()
local charinsert = content:match("charinsert: (%b{})")
if not charinsert then return "Could not find charinsert" end
return p.JSON_character_names(charinsert)
end
return p