[go: up one dir, main page]

跳转到内容

模組:Zlw-slv-entryname

維基詞典,自由的多語言詞典


local u = require("Module:string/char")

local export = {}

-- U+02D8 COMBINING BREVE
-- U+0304 COMBINING MACRON

local pitch_accent = "[" .. u( 0x2D8, 0x304) .. "]"

function export.makeEntryName(text)
	-- Decompose to permit diacritics to be matched even in composed characters.
	text = mw.ustring.toNFD(text)
	
	text = mw.ustring.gsub(
		text,
		"[aioùu][" .. u(0x300) .. "-" .. u(0x36F) .. "]+",
		function(vowel)
			return mw.ustring.gsub(vowel, pitch_accent, "")
		end)
	
	-- Return back to native MediaWiki normalization.
	text = mw.ustring.toNFC(text)
	
	return text
end

return export