From aa160a2fb75d07c7575e7677a8450896044269d3 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Wed, 25 May 2016 18:52:33 +0200 Subject: =?UTF-8?q?implementation=20of=20=CA=BEi=CA=BFr=C4=81b=20=C4=A1ayr?= =?UTF-8?q?=20mun=E1=B9=A3arif=20(dmg=20mode)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- arabluatex.lua | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) (limited to 'arabluatex.lua') diff --git a/arabluatex.lua b/arabluatex.lua index eb0d55c..3b0ed5e 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -312,6 +312,42 @@ local function novoc(str) return str end +local function novoceasy(str) + str = string.gsub(str, "\\arb(%b{})", function(inside) + inside = string.sub(inside, 2, -2) + for i = 1,#hamzaeasy do + inside = string.gsub(inside, hamzaeasy[i].a, hamzaeasy[i].b) + end + for i = 1,#tanwinnv do + inside = string.gsub(inside, tanwinnv[i].a, tanwinnv[i].b) + end + for i = 1,#trigraphsnv do + inside = string.gsub(inside, trigraphsnv[i].a, trigraphsnv[i].b) + end + for i = 1,#digraphs do + inside = string.gsub(inside, digraphs[i].a, digraphs[i].b) + end + for i = 1,#single do + inside = string.gsub(inside, single[i].a, single[i].b) + end + for i = 1,#longvnv do + inside = string.gsub(inside, longvnv[i].a, longvnv[i].b) + end + for i = 1,#shortvnv do + inside = string.gsub(inside, shortvnv[i].a, shortvnv[i].b) + end + for i = 1,#punctuation do + inside = string.gsub(inside, punctuation[i].a, punctuation[i].b) + end + for i = 1,#null do + inside = string.gsub(inside, null[i].a, null[i].b) + end + inside = indnum(inside) + return string.format("\\txarb{%s}", inside) + end) +return str +end + local function transdmg(str) str = string.gsub(str, "\\arb(%b{})", function(inside) inside = string.sub(inside, 2, -2) @@ -450,13 +486,17 @@ function processfullvoc(str, rules) return str end -function processnovoc(str) +function processnovoc(str, rules) str = "\\arb{".. str.."}" str = takeoutcapetc(str) str = protectarb(str) str = breakcmd(str) str = holdcmd(str) - str = novoc(str) + if rules == "easy" then + str = novoceasy(str) + elseif rules == "dflt" then + str = novoc(str) + else end str = unprotectarb(str) return str end -- cgit v1.2.3