summaryrefslogtreecommitdiff
path: root/scripts/mtx-t-transliterate.lua
blob: a6e39683c86055efa7f46637bd76a54724df9e89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
--
--------------------------------------------------------------------------------
--         FILE:  mtx-transliterate.lua
--        USAGE:  mtxrun --script transliterate [--mode=mode] --s="string"
--  DESCRIPTION:  context script interface for the Transliterator module
-- REQUIREMENTS:  latest ConTeXt MkIV
--       AUTHOR:  Philipp Gesang (Phg), <gesang@stud.uni-heidelberg.de>
--      CREATED:  2011-06-11T16:14:16+0200
--------------------------------------------------------------------------------
--

environment.loadluafile("transliterator")

local translit = thirddata.translit

translit.__script     = true
scripts               = scripts or { }
scripts.transliterate = { }
local ea              = environment.argument

local helpinfo = [[
===============================================================
    The Transliterator module, command line interface.
    © 2010--2011 Philipp Gesang. License: 2-clause BSD.
    Home: <https://bitbucket.org/phg/transliterator/>
===============================================================

USAGE:

    mtxrun --script transliterate [--mode=mode] --s="target"

    Where “target” is the target string to be transliterated.
    Optionally, a transliteration mode can be specified (see
    the respective descriptions in transliterator.pdf). The
    “mode” defaults to “ru_old”.

===============================================================
]]

local application = logs.application {
    name     = "mtx-transliterate",
    banner   = "The Transliterator for ConTeXt, hg-rev 38+",
    helpinfo = helpinfo,
}

scripts.transliterate.input = ea("s")
scripts.transliterate.out   = function (sin, sout)
    if ea("silent") then
        io.write(sout)
    else
        io.write(string.format("\n“%s” -> “%s”\n", sin, sout))
    end
end

if scripts.transliterate.input then
    local mode = ea("mode") or "ru_old"
    scripts.transliterate.out(
        scripts.transliterate.input,
        translit.transliterate(mode, ea("s"))
    )
else
    application.help()
end