From e80c0d99f7d2511e6e3f3e70cd922f119a1fc217 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Sun, 8 May 2016 11:24:20 +0200 Subject: first implementation of 'easy' rules set --- arabluatex.lua | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) (limited to 'arabluatex.lua') diff --git a/arabluatex.lua b/arabluatex.lua index 4484c27..d999548 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -167,6 +167,42 @@ local function voc(str) return str end +local function voceasy(str) + str = string.gsub(str, "\\arb(%b{})", function(inside) + inside = string.sub(inside, 2, -2) + for i = 1,#hamza do + inside = string.gsub(inside, hamza[i].a, hamza[i].b) + end + for i = 1,#tanwin do + inside = string.gsub(inside, tanwin[i].a, tanwin[i].b) + end + for i = 1,#trigraphs do + inside = string.gsub(inside, trigraphs[i].a, trigraphs[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,#longv do + inside = string.gsub(inside, longv[i].a, longv[i].b) + end + for i = 1,#shortv do + inside = string.gsub(inside, shortv[i].a, shortv[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 fullvoc(str) str = string.gsub(str, "\\arb(%b{})", function(inside) inside = string.sub(inside, 2, -2) @@ -312,13 +348,17 @@ local function transloc(str) return str end -function processvoc(str) +function processvoc(str, rules) str = "\\arb{".. str.."}" str = takeoutcap(str) str = protectarb(str) str = breakcmd(str) str = holdcmd(str) - str = voc(str) + if rules == "easy" then + str = voceasy(str) + elseif mode == "dflt" then + str = voc(str) + else end str = unprotectarb(str) return str end -- cgit v1.2.3