forked from federico-terzi/espanso-package-example
-
Notifications
You must be signed in to change notification settings - Fork 0
/
convert.py
38 lines (31 loc) · 1.09 KB
/
convert.py
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
import re
import sys
import yaml
if __name__ == "__main__":
table_file = sys.argv[1]
yaml_file = sys.argv[2]
yaml_content = {"matches": []}
with open(table_file, 'r') as fp:
table = fp.readlines()
for line in table:
m = re.match(
r'^\\UnicodeMathSymbol{"([0-9A-Z]+)}{(.*?)\s*?}{.*?}{(.*?)}', line)
if m:
trigger = m.group(2).strip()
# If line contains valid content
yaml_content["matches"].append({
"trigger": trigger,
"replace": chr(int(m.group(1), 16)),
"label": m.group(3),
"word": True
})
# Also add regular greek letters from \mup group without prefix
if trigger.startswith("\\mup"):
yaml_content["matches"].append({
"trigger": trigger[0] + trigger[4:],
"replace": chr(int(m.group(1), 16)),
"label": m.group(3),
"word": True
})
with open(yaml_file, 'w') as fp:
yaml.dump(yaml_content, fp)