Module:Unicode chart/sandbox

This is an old revision of this page, as edited by Eievie (talk | contribs) at 18:52, 19 April 2024. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

local p = {}
local getArgs = require('Module:Arguments').getArgs

local function createUnicodeBlockTable(startHex, endHex)
	local tab = mw.html.create("table")--:addClass("test")
	--header
	local labelRow = tab:tag("tr")
	labelRow:tag("td")--empty corner cell
	for colIndex=0, 15 do
		labelRow:tag("td"):wikitext(string.format("%X", colIndex))
	end
	
	local startInt = tonumber(startHex:sub(1, -2), 16)
	local endInt = tonumber(endHex:sub(1, -2), 16)
	for rowIndex=startInt, endInt do
		local row = tab:tag("tr")
		local rowHex = string.format("%X", rowIndex)
		row:tag("th"):wikitext('U+'.. rowHex .. 'x')
		for colIndex=0, 15 do
			row:tag("td"):wikitext('&#x'.. rowHex .. string.format("%X", colIndex) .. ';')
		end
	end
	return tostring(tab)
end

function p.main(frameArg)
	frame = frameArg
	local args = getArgs(frame)
	
	local html = ""
	if args['block-range-start'] and args['block-range-end'] then
		html = createUnicodeBlockTable(args['block-range-start'],
										args['block-range-end'])
	end
	
	return html
end

return p