<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AHebr-common</id>
	<title>Module:Hebr-common - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AHebr-common"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:Hebr-common&amp;action=history"/>
	<updated>2026-04-04T07:59:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:Hebr-common&amp;diff=466445&amp;oldid=prev</id>
		<title>Sware: Created page with &quot;local export = {}  local m_str_utils = require(&quot;Module:string utilities&quot;)  local makeDisplayText -- defined below local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local u = m_str_utils.char local ugsub = mw.ustring.gsub local usub = m_str_utils.sub  local DIACRITICS = &quot;[&quot; .. 	u(0x0307) .. u(0x0308) .. 	u(0x034F) .. -- combining grapheme joiner 	u(0x200C) .. -- zero width non-joiner 	u(0x200D) .. -- zero width joiner 	u(0x0591) .. &quot;-&quot; .. u(0x05BD) .. 	u(0x05B...&quot;</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:Hebr-common&amp;diff=466445&amp;oldid=prev"/>
		<updated>2025-08-12T11:34:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local export = {}  local m_str_utils = require(&amp;quot;Module:string utilities&amp;quot;)  local makeDisplayText -- defined below local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local u = m_str_utils.char local ugsub = mw.ustring.gsub local usub = m_str_utils.sub  local DIACRITICS = &amp;quot;[&amp;quot; .. 	u(0x0307) .. u(0x0308) .. 	u(0x034F) .. -- combining grapheme joiner 	u(0x200C) .. -- zero width non-joiner 	u(0x200D) .. -- zero width joiner 	u(0x0591) .. &amp;quot;-&amp;quot; .. u(0x05BD) .. 	u(0x05B...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local export = {}&lt;br /&gt;
&lt;br /&gt;
local m_str_utils = require(&amp;quot;Module:string utilities&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local makeDisplayText -- defined below&lt;br /&gt;
local toNFC = mw.ustring.toNFC&lt;br /&gt;
local toNFD = mw.ustring.toNFD&lt;br /&gt;
local u = m_str_utils.char&lt;br /&gt;
local ugsub = mw.ustring.gsub&lt;br /&gt;
local usub = m_str_utils.sub&lt;br /&gt;
&lt;br /&gt;
local DIACRITICS = &amp;quot;[&amp;quot; ..&lt;br /&gt;
	u(0x0307) .. u(0x0308) ..&lt;br /&gt;
	u(0x034F) .. -- combining grapheme joiner&lt;br /&gt;
	u(0x200C) .. -- zero width non-joiner&lt;br /&gt;
	u(0x200D) .. -- zero width joiner&lt;br /&gt;
	u(0x0591) .. &amp;quot;-&amp;quot; .. u(0x05BD) ..&lt;br /&gt;
	u(0x05BF) ..&lt;br /&gt;
	u(0x05C1) .. u(0x05C2) ..&lt;br /&gt;
	u(0x05C4) .. u(0x05C5) ..&lt;br /&gt;
	u(0x05C7) ..&lt;br /&gt;
	u(0xFB1E) ..&lt;br /&gt;
&amp;quot;]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local GERESH = u(0x059C)&lt;br /&gt;
local GERSHAYIM = u(0x059E) -- double geresh&lt;br /&gt;
local MERCHA = u(0x05A5)&lt;br /&gt;
local MERCHA_KEFULA = u(0x05A6) -- double mercha&lt;br /&gt;
local TELISHA = u(0x05A0) .. u(0x05A9)&lt;br /&gt;
local KARNE_PARAH = u(0x059F)&lt;br /&gt;
local SHEVA = u(0x05B0)&lt;br /&gt;
local HOLAM = u(0x05B9)&lt;br /&gt;
local HOLAM_HASER_FOR_VAV = u(0x05BA)&lt;br /&gt;
local WIDE_ALEF = u(0xFB21)&lt;br /&gt;
&lt;br /&gt;
local substitutes = {&lt;br /&gt;
	[&amp;quot;&amp;#039;&amp;quot;] = &amp;quot;׳&amp;quot;,&lt;br /&gt;
	[&amp;#039;&amp;quot;&amp;#039;] = &amp;quot;״&amp;quot;,&lt;br /&gt;
	[&amp;quot;-&amp;quot;] = &amp;quot;־&amp;quot;,&lt;br /&gt;
	[&amp;quot;|&amp;quot;] = &amp;quot;׀&amp;quot;,&lt;br /&gt;
	[SHEVA .. u(0x05B6)] = u(0x05B1),&lt;br /&gt;
	[SHEVA .. u(0x05B7)] = u(0x05B2),&lt;br /&gt;
	[SHEVA .. u(0x05B8)] = u(0x05B3),&lt;br /&gt;
	[SHEVA .. u(0x05C7)] = u(0x05B3),&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function export.makeDisplayText(text, lang, sc)&lt;br /&gt;
	text = toNFD(text):gsub(&amp;quot;[&amp;#039;\&amp;quot;%-|]&amp;quot;, substitutes)&lt;br /&gt;
		:gsub(SHEVA .. &amp;quot;[\214\215][\182-\184\135]&amp;quot;, substitutes)&lt;br /&gt;
		:gsub(GERESH .. GERESH, GERSHAYIM)&lt;br /&gt;
		:gsub(MERCHA .. MERCHA, MERCHA_KEFULA)&lt;br /&gt;
		:gsub(TELISHA, KARNE_PARAH)&lt;br /&gt;
&lt;br /&gt;
	-- Holam haser for vav (U+05BA) can only be placed on vav; otherwise, replace with holam (U+05B9).&lt;br /&gt;
	if text:find(HOLAM_HASER_FOR_VAV, nil, true) then&lt;br /&gt;
		text = ugsub(text, &amp;quot;()(&amp;quot; .. DIACRITICS .. &amp;quot;+)&amp;quot;, function(loc, dia)&lt;br /&gt;
			loc = loc - 1&lt;br /&gt;
			if usub(text, loc, loc) ~= &amp;quot;ו&amp;quot; then&lt;br /&gt;
				return (dia:gsub(HOLAM_HASER_FOR_VAV, HOLAM))&lt;br /&gt;
			end&lt;br /&gt;
		end)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return toNFC(text)&lt;br /&gt;
end&lt;br /&gt;
makeDisplayText = export.makeDisplayText&lt;br /&gt;
&lt;br /&gt;
local retain_diacritics = {&lt;br /&gt;
	[&amp;quot;yi&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;itk&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;lad&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;lsd&amp;quot;] = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function export.makeEntryName(text, lang, sc)&lt;br /&gt;
	if retain_diacritics[lang:getFullCode()] then&lt;br /&gt;
		return makeDisplayText(text, lang, sc)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	text = ugsub(toNFD(text), DIACRITICS .. &amp;quot;+&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		:gsub(&amp;quot;[&amp;#039;\&amp;quot;%-|]&amp;quot;, substitutes)&lt;br /&gt;
&lt;br /&gt;
	return toNFC(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local sortkey_substitutes = {&lt;br /&gt;
	[&amp;quot;&amp;#039;&amp;quot;] = &amp;quot;׳&amp;quot;,&lt;br /&gt;
	[&amp;#039;&amp;quot;&amp;#039;] = &amp;quot;״&amp;quot;,&lt;br /&gt;
	[&amp;quot;-&amp;quot;] = &amp;quot;־&amp;quot;,&lt;br /&gt;
	[&amp;quot;|&amp;quot;] = &amp;quot;׀&amp;quot;,&lt;br /&gt;
	[&amp;quot;ך&amp;quot;] = &amp;quot;כ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ם&amp;quot;] = &amp;quot;מ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ן&amp;quot;] = &amp;quot;נ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ף&amp;quot;] = &amp;quot;פ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ץ&amp;quot;] = &amp;quot;צ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ׯ&amp;quot;] = &amp;quot;ו&amp;quot; .. u(0xF000),&lt;br /&gt;
	[&amp;quot;װ&amp;quot;] = &amp;quot;וו&amp;quot;,&lt;br /&gt;
	[&amp;quot;ױ&amp;quot;] = &amp;quot;וי&amp;quot;,&lt;br /&gt;
	[&amp;quot;ײ&amp;quot;] = &amp;quot;יי&amp;quot;,&lt;br /&gt;
	[&amp;quot;ℵ&amp;quot;] = &amp;quot;א&amp;quot;,&lt;br /&gt;
	[&amp;quot;ℶ&amp;quot;] = &amp;quot;ב&amp;quot;,&lt;br /&gt;
	[&amp;quot;ℷ&amp;quot;] = &amp;quot;ג&amp;quot;,&lt;br /&gt;
	[&amp;quot;ℸ&amp;quot;] = &amp;quot;ד&amp;quot;,&lt;br /&gt;
	[&amp;quot;ﬠ&amp;quot;] = &amp;quot;ע&amp;quot;,&lt;br /&gt;
	[&amp;quot;ﬡ&amp;quot;] = &amp;quot;א&amp;quot;,&lt;br /&gt;
	[&amp;quot;ﬢ&amp;quot;] = &amp;quot;ד&amp;quot;,&lt;br /&gt;
	[&amp;quot;ﬣ&amp;quot;] = &amp;quot;ה&amp;quot;,&lt;br /&gt;
	[&amp;quot;ﬤ&amp;quot;] = &amp;quot;כ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ﬥ&amp;quot;] = &amp;quot;ל&amp;quot;,&lt;br /&gt;
	[&amp;quot;ﬦ&amp;quot;] = &amp;quot;ם&amp;quot;,&lt;br /&gt;
	[&amp;quot;ﬧ&amp;quot;] = &amp;quot;ר&amp;quot;,&lt;br /&gt;
	[&amp;quot;ﬨ&amp;quot;] = &amp;quot;ת&amp;quot;,&lt;br /&gt;
	[&amp;quot;﬩&amp;quot;] = &amp;quot;+&amp;quot;,&lt;br /&gt;
	[&amp;quot;ﭏ&amp;quot;] = &amp;quot;אל&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Sort after U+FB21 HEBREW LETTER WIDE ALEF, so that it sorts after Arabic script titles.&lt;br /&gt;
local sort_after_wide_alef = {&lt;br /&gt;
	[&amp;quot;ar&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;fa&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;ur&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;shi&amp;quot;] = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function export.makeSortKey(text, lang, sc)&lt;br /&gt;
	text = ugsub(toNFD(text), DIACRITICS .. &amp;quot;+&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	text = ugsub(text, &amp;quot;[&amp;#039;\&amp;quot;%-|ךםןףץׯ-ײℵ-ℸﬠ-﬩ﭏ]&amp;quot;, sortkey_substitutes)&lt;br /&gt;
&lt;br /&gt;
	if sort_after_wide_alef[lang:getFullCode()] then&lt;br /&gt;
		text = WIDE_ALEF .. text&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return toNFC(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
</feed>