<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FErutuon%2Fcharinsert_names</id>
	<title>Module:Sandbox/Erutuon/charinsert names - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FErutuon%2Fcharinsert_names"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Erutuon/charinsert_names&amp;action=history"/>
	<updated>2026-05-23T12:21:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/Erutuon/charinsert_names&amp;diff=145394&amp;oldid=prev</id>
		<title>imported&gt;Pppery: Hope you don&#039;t mind me editing your userspace, but Module:Table has been merged</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Erutuon/charinsert_names&amp;diff=145394&amp;oldid=prev"/>
		<updated>2019-02-19T21:41:26Z</updated>

		<summary type="html">&lt;p&gt;Hope you don&amp;#039;t mind me editing your userspace, but &lt;a href=&quot;/index.php?title=Module:Table&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Module:Table (page does not exist)&quot;&gt;Module:Table&lt;/a&gt; has been merged&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function get_all_codepoints(str)&lt;br /&gt;
	local codepoint_set = {}&lt;br /&gt;
	for codepoint in mw.ustring.gcodepoint(str) do&lt;br /&gt;
		codepoint_set[codepoint] = true&lt;br /&gt;
	end&lt;br /&gt;
	return require &amp;quot;Module:TableTools&amp;quot;.keysToList(codepoint_set)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.JSON_character_names(str)&lt;br /&gt;
	local codepoint_list = get_all_codepoints(str)&lt;br /&gt;
	&lt;br /&gt;
	local Unicode = require &amp;quot;Module:Unicode data&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	local JSON = {}&lt;br /&gt;
	local len = 0&lt;br /&gt;
	for i, codepoint in ipairs(codepoint_list) do&lt;br /&gt;
		local key_and_value = &amp;#039;&amp;quot;&amp;#039; .. codepoint .. &amp;#039;&amp;quot;:&amp;quot;&amp;#039; .. Unicode.lookup_name(codepoint) .. &amp;#039;&amp;quot;&amp;#039;&lt;br /&gt;
		local added_len = #key_and_value + 1 -- for comma&lt;br /&gt;
		if len + added_len &amp;gt; 79 then&lt;br /&gt;
			key_and_value = &amp;#039;\n&amp;#039; .. key_and_value&lt;br /&gt;
			len = 0&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		len = len + added_len&lt;br /&gt;
		&lt;br /&gt;
		table.insert(JSON, key_and_value)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return &amp;quot;{&amp;quot; .. table.concat(JSON, &amp;quot;,&amp;quot;) .. &amp;quot;}&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- copied from [[wikt:Module:debug]]&lt;br /&gt;
function p.highlight(content, options)&lt;br /&gt;
	if type(content) == &amp;quot;table&amp;quot; then&lt;br /&gt;
		options = content&lt;br /&gt;
		options = {&lt;br /&gt;
			lang = options.lang or &amp;quot;lua&amp;quot;,&lt;br /&gt;
			inline = options.inline and true&lt;br /&gt;
		}&lt;br /&gt;
		return function(content)&lt;br /&gt;
			return mw.getCurrentFrame():extensionTag{&lt;br /&gt;
				name = &amp;quot;syntaxhighlight&amp;quot;,&lt;br /&gt;
				content = content,&lt;br /&gt;
				args = options&lt;br /&gt;
			}&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return mw.getCurrentFrame():extensionTag{&lt;br /&gt;
			name = &amp;quot;syntaxhighlight&amp;quot;,&lt;br /&gt;
			content = content,&lt;br /&gt;
			args = {&lt;br /&gt;
				lang = options and options.lang or &amp;quot;lua&amp;quot;,&lt;br /&gt;
				inline = options and options.inline and true or nil&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Usage:&lt;br /&gt;
-- {{#invoke:Sandbox/Erutuon/charinsert_names|highlighted_character_names|abc}}&lt;br /&gt;
-- ↓&lt;br /&gt;
-- {&amp;quot;97&amp;quot;:&amp;quot;LATIN SMALL LETTER A&amp;quot;,&amp;quot;98&amp;quot;:&amp;quot;LATIN SMALL LETTER B&amp;quot;,&lt;br /&gt;
-- &amp;quot;99&amp;quot;:&amp;quot;LATIN SMALL LETTER C&amp;quot;}&lt;br /&gt;
function p.highlighted_character_names(frame)&lt;br /&gt;
	local chars = frame.args[1]&lt;br /&gt;
	if not chars or chars == &amp;quot;&amp;quot; then&lt;br /&gt;
		error(&amp;quot;Supply characters in parameter 1&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return p.highlight(p.JSON_character_names(chars))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.charinsert_char_names()&lt;br /&gt;
	local content = mw.title.new(&amp;quot;MediaWiki:Gadget-charinsert-core.js&amp;quot;):getContent()&lt;br /&gt;
	&lt;br /&gt;
	local charinsert = content:match(&amp;quot;charinsert: (%b{})&amp;quot;)&lt;br /&gt;
	if not charinsert then return &amp;quot;Could not find charinsert&amp;quot; end&lt;br /&gt;
	&lt;br /&gt;
	return p.highlight(p.JSON_character_names(charinsert))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Pppery</name></author>
	</entry>
</feed>