generated from spectrasecure/arise
-
Notifications
You must be signed in to change notification settings - Fork 0
/
import-dictionary.sh
94 lines (79 loc) · 2.31 KB
/
import-dictionary.sh
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/bin/bash
# This is a ridiculously hacky script to pull down the entire trigedasleng lexicon and format it as Arise webpages.
# Helper function to help us clean up reserved characters when we're building our site
function clean_xml_string() (
input_string="$1"
# replace & with &
input_string=${input_string//\&/\&38;}
# replace < with <
input_string=${input_string//</\&60;}
# replace > with >
input_string=${input_string//>/\&62;}
# replace ' with '
input_string=${input_string//\'/\&39;}
# replace " with "
input_string=${input_string//\"/\&34;}
echo "$input_string"
)
# Helper function to clean word folder names for URLs
function clean_url_string() (
input_string="$1"
input_string=${input_string// /_}
input_string=${input_string//\&/-}
input_string=${input_string//</-}
input_string=${input_string//>/-}
input_string=${input_string//\'/-}
input_string=${input_string//\"/-}
echo "$input_string"
)
# Pull down only the dictionary folder from the lexicon
mkdir trigedasleng
cd trigedasleng
git init
git remote add -f origin https://github.com/slakgedakru/trigedasleng
git config core.sparseCheckout true
echo "dictionary/" >> .git/info/sparse-checkout
git pull origin main
mv dictionary ../
cd ../
rm -rf trigedasleng
# Build an Arise webpage out of each json file
# Warning: There are thousands of files, so this takes fucking forever.
for file in dictionary/*.json
do
word=""
class=""
translation=""
etymology="unknown"
filter="noncanon"
word="$(jq -r ".word" "$file")"
class="$(jq -r ".class" "$file")"
translation="$(jq -r ".translation" "$file")"
note=""
note="$(jq -r ".note" "$file")"
etymology="$(jq -r ".etymology" "$file")"
filter="$(jq -r ".filter" "$file")"
word_nospaces=""
word_nospaces="$(clean_url_string "$word")"
mkdir "arise-source/dictionary/$word_nospaces"
cat >> "arise-source/dictionary/$word_nospaces/index.md" <<EOF
<!-- BEGIN ARISE ------------------------------
Title:: "$(clean_xml_string "$word")"
Author:: ""
Description:: "$(clean_xml_string "$translation")"
Language:: "en"
Thumbnail:: ""
Published Date:: ""
Modified Date:: ""
rss_hide:: "true"
content_header:: "false"
---- END ARISE \\ DO NOT MODIFY THIS LINE ---->
# $word ($class)
$translation
$([[ -n $note ]] && echo -e "\n### Notes\n\n$note")
### Etymology
$etymology
### Source
$filter
EOF
done