fenris commited on 2016-04-22 15:22:02
Zeige 15 geänderte Dateien mit 826 Einfügungen und 47 Löschungen.
... | ... |
@@ -38,6 +38,10 @@ class class_command_file_copy(class_command): |
38 | 38 |
def __init__(self, parameters): class_command.__init__(self, parameters) |
39 | 39 |
def compile_unix(self): return ("cp --recursive %s %s" % (self.parameters["path-from"], self.parameters["path-to"])) |
40 | 40 |
|
41 |
+class class_command_file_concat(class_command): |
|
42 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
43 |
+ def compile_unix(self): return ("cat %s > %s" % (" ".join(self.parameters["paths-from"]), self.parameters["path-to"])) |
|
44 |
+ |
|
41 | 45 |
class class_command_directory_remove(class_command): |
42 | 46 |
def __init__(self, parameters): class_command.__init__(self, parameters) |
43 | 47 |
def compile_unix(self): return ("rm --recursive --force %s" % (self.parameters["path"])) |
... | ... |
@@ -50,6 +54,14 @@ class class_command_latex_compile(class_command): |
50 | 54 |
def __init__(self, parameters): class_command.__init__(self, parameters) |
51 | 55 |
def compile_unix(self): return ("xelatex -output-directory=%s %s > /dev/null" % (self.parameters["output"], self.parameters["path"])) |
52 | 56 |
|
57 |
+class class_command_php_compile(class_command): |
|
58 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
59 |
+ def compile_unix(self): return ("php %s > %s" % (self.parameters["path-from"], self.parameters["path-to"])) |
|
60 |
+ |
|
61 |
+class class_command_lessc_compile(class_command): |
|
62 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
63 |
+ def compile_unix(self): return ("lessc %s > %s" % (self.parameters["path-from"], self.parameters["path-to"])) |
|
64 |
+ |
|
53 | 65 |
|
54 | 66 |
|
55 | 67 |
def main(): |
... | ... |
@@ -61,24 +73,26 @@ def main(): |
61 | 73 |
} |
62 | 74 |
|
63 | 75 |
texs = [ |
64 |
- os.path.join(dirs["source"],"tex","folksprak.tex"), |
|
65 |
- os.path.join(dirs["source"],"tex","packages.tex"), |
|
66 |
- os.path.join(dirs["source"],"tex","settings.tex"), |
|
67 |
- os.path.join(dirs["source"],"tex","meta.tex"), |
|
68 |
- os.path.join(dirs["source"],"tex","commands.tex"), |
|
69 |
- os.path.join(dirs["source"],"tex","preface.tex"), |
|
70 |
- os.path.join(dirs["source"],"tex","grammar.tex"), |
|
71 |
- os.path.join(dirs["source"],"tex","phonology_and_orthography.tex"), |
|
72 |
- os.path.join(dirs["source"],"tex","conjugation.tex"), |
|
73 |
- os.path.join(dirs["source"],"tex","declension.tex"), |
|
74 |
- os.path.join(dirs["source"],"tex","attributes.tex"), |
|
76 |
+ os.path.join(dirs["source"],"html.php","folksprak.html.php"), |
|
77 |
+ os.path.join(dirs["source"],"html.php","meta.html.php"), |
|
78 |
+ os.path.join(dirs["source"],"html.php","preface.html.php"), |
|
79 |
+ os.path.join(dirs["source"],"html.php","grammar.html.php"), |
|
80 |
+ os.path.join(dirs["source"],"html.php","phonology_and_orthography.html.php"), |
|
81 |
+ os.path.join(dirs["source"],"html.php","pronouns.html.php"), |
|
82 |
+ os.path.join(dirs["source"],"html.php","conjugation.html.php"), |
|
83 |
+ os.path.join(dirs["source"],"html.php","declension.html.php"), |
|
84 |
+ os.path.join(dirs["source"],"html.php","attributes.html.php"), |
|
75 | 85 |
] |
76 | 86 |
|
77 | 87 |
rules = [] |
78 | 88 |
rules.append( |
79 | 89 |
class_rule( |
80 | 90 |
"all", |
81 |
- [os.path.join(dirs["build"],"folksprak.pdf")], |
|
91 |
+ [ |
|
92 |
+ os.path.join(dirs["build"],"folksprak.html"), |
|
93 |
+ os.path.join(dirs["build"],"folksprak.css"), |
|
94 |
+ os.path.join(dirs["build"],"logo.svg"), |
|
95 |
+ ], |
|
82 | 96 |
[], |
83 | 97 |
True |
84 | 98 |
) |
... | ... |
@@ -109,55 +123,61 @@ def main(): |
109 | 123 |
) |
110 | 124 |
rules.append( |
111 | 125 |
class_rule( |
112 |
- os.path.join(dirs["temp"],"media","logo.pdf"), |
|
113 |
- [os.path.join(dirs["source"],"media","logo.svg")], |
|
126 |
+ os.path.join(dirs["build"],"folksprak.html"), |
|
127 |
+ texs, |
|
114 | 128 |
[ |
115 | 129 |
class_command_log({ |
116 |
- "message": "converting logo ..." |
|
130 |
+ "message": "compiling document ..." |
|
117 | 131 |
}), |
118 | 132 |
class_command_directory_create({ |
119 |
- "path": os.path.join(dirs["temp"],"media"), |
|
133 |
+ "path": dirs["build"], |
|
120 | 134 |
}), |
121 |
- class_command_image_convert({ |
|
122 |
- "path-from": os.path.join(dirs["source"],"media","logo.svg"), |
|
123 |
- "path-to": os.path.join(dirs["temp"],"media","logo.pdf"), |
|
135 |
+ class_command_php_compile({ |
|
136 |
+ "path-from": os.path.join(dirs["source"],"html.php","folksprak.html.php"), |
|
137 |
+ "path-to": os.path.join(dirs["build"],"folksprak.html"), |
|
124 | 138 |
}), |
125 | 139 |
] |
126 | 140 |
) |
127 | 141 |
) |
128 | 142 |
rules.append( |
129 | 143 |
class_rule( |
130 |
- os.path.join(dirs["temp"],"folksprak.pdf"), |
|
131 |
- texs + [os.path.join(dirs["temp"],"media","logo.pdf")], |
|
144 |
+ os.path.join(dirs["build"],"logo.svg"), |
|
145 |
+ [os.path.join(dirs["source"],"media","logo.svg")], |
|
132 | 146 |
[ |
133 | 147 |
class_command_log({ |
134 |
- "message": "compiling document ..." |
|
148 |
+ "message": "copying logo ..." |
|
135 | 149 |
}), |
136 | 150 |
class_command_directory_create({ |
137 |
- "path": dirs["temp"], |
|
138 |
- }), |
|
139 |
- class_command_latex_compile({ |
|
140 |
- "path": os.path.join(dirs["source"],"tex","folksprak.tex"), |
|
141 |
- "output": os.path.join(dirs["temp"]), |
|
151 |
+ "path": dirs["build"], |
|
142 | 152 |
}), |
143 |
- class_command_latex_compile({ |
|
144 |
- "path": os.path.join(dirs["source"],"tex","folksprak.tex"), |
|
145 |
- "output": os.path.join(dirs["temp"]), |
|
153 |
+ class_command_file_copy({ |
|
154 |
+ "path-from": os.path.join(dirs["source"],"media","logo.svg"), |
|
155 |
+ "path-to": os.path.join(dirs["build"],"logo.svg"), |
|
146 | 156 |
}), |
147 | 157 |
] |
148 | 158 |
) |
149 | 159 |
) |
150 | 160 |
rules.append( |
151 | 161 |
class_rule( |
152 |
- os.path.join(dirs["build"],"folksprak.pdf"), |
|
153 |
- [os.path.join(dirs["temp"],"folksprak.pdf")], |
|
162 |
+ os.path.join(dirs["build"],"folksprak.css"), |
|
163 |
+ [os.path.join(dirs["source"],"less","common.less"), os.path.join(dirs["source"],"less","concrete.less")], |
|
154 | 164 |
[ |
165 |
+ class_command_log({ |
|
166 |
+ "message": "compiling style ..." |
|
167 |
+ }), |
|
168 |
+ class_command_directory_create({ |
|
169 |
+ "path": os.path.join(dirs["temp"]), |
|
170 |
+ }), |
|
171 |
+ class_command_file_concat({ |
|
172 |
+ "paths-from": [os.path.join(dirs["source"],"less","common.less"), os.path.join(dirs["source"],"less","concrete.less")], |
|
173 |
+ "path-to": os.path.join(dirs["temp"],"folksprak.less"), |
|
174 |
+ }), |
|
155 | 175 |
class_command_directory_create({ |
156 | 176 |
"path": os.path.join(dirs["build"]), |
157 | 177 |
}), |
158 |
- class_command_file_copy({ |
|
159 |
- "path-from": os.path.join(dirs["temp"],"folksprak.pdf"), |
|
160 |
- "path-to": os.path.join(dirs["build"],"folksprak.pdf"), |
|
178 |
+ class_command_lessc_compile({ |
|
179 |
+ "path-from": os.path.join(dirs["temp"],"folksprak.less"), |
|
180 |
+ "path-to": os.path.join(dirs["build"],"folksprak.css"), |
|
161 | 181 |
}), |
162 | 182 |
] |
163 | 183 |
) |
... | ... |
@@ -0,0 +1,171 @@ |
1 |
+import os |
|
2 |
+import sys |
|
3 |
+ |
|
4 |
+ |
|
5 |
+class class_rule(object): |
|
6 |
+ |
|
7 |
+ def __init__(self, name, dependencies, commands, phony = False): |
|
8 |
+ self.name = name |
|
9 |
+ self.dependencies = dependencies |
|
10 |
+ self.commands = commands |
|
11 |
+ self.phony = phony |
|
12 |
+ |
|
13 |
+ |
|
14 |
+ def __str__(self): |
|
15 |
+ output = "" |
|
16 |
+ output += "%s: %s\n" % (self.name, " ".join(self.dependencies)) |
|
17 |
+ for command in self.commands: |
|
18 |
+ output += ("\t@ %s\n" % (command.compile_unix())) |
|
19 |
+ if (self.phony): output += (".PHONY: %s\n" % self.name) |
|
20 |
+ return output |
|
21 |
+ |
|
22 |
+ |
|
23 |
+ |
|
24 |
+class class_command(object): |
|
25 |
+ def __init__(self, parameters): self.parameters = parameters |
|
26 |
+ def compile_unix(self): raise NotImplementedError |
|
27 |
+ def compile_ant(self): raise NotImplementedError |
|
28 |
+ |
|
29 |
+class class_command_log(class_command): |
|
30 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
31 |
+ def compile_unix(self): return ("echo -e '-- %s'" % (self.parameters["message"])) |
|
32 |
+ |
|
33 |
+class class_command_directory_create(class_command): |
|
34 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
35 |
+ def compile_unix(self): return ("mkdir --parents %s" % (self.parameters["path"])) |
|
36 |
+ |
|
37 |
+class class_command_file_copy(class_command): |
|
38 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
39 |
+ def compile_unix(self): return ("cp --recursive %s %s" % (self.parameters["path-from"], self.parameters["path-to"])) |
|
40 |
+ |
|
41 |
+class class_command_directory_remove(class_command): |
|
42 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
43 |
+ def compile_unix(self): return ("rm --recursive --force %s" % (self.parameters["path"])) |
|
44 |
+ |
|
45 |
+class class_command_image_convert(class_command): |
|
46 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
47 |
+ def compile_unix(self): return ("convert %s %s" % (self.parameters["path-from"], self.parameters["path-to"])) |
|
48 |
+ |
|
49 |
+class class_command_latex_compile(class_command): |
|
50 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
51 |
+ def compile_unix(self): return ("xelatex -output-directory=%s %s > /dev/null" % (self.parameters["output"], self.parameters["path"])) |
|
52 |
+ |
|
53 |
+ |
|
54 |
+ |
|
55 |
+def main(): |
|
56 |
+ |
|
57 |
+ dirs = { |
|
58 |
+ "source": "source", |
|
59 |
+ "temp": "temp", |
|
60 |
+ "build": "build", |
|
61 |
+ } |
|
62 |
+ |
|
63 |
+ texs = [ |
|
64 |
+ os.path.join(dirs["source"],"tex","folksprak.tex"), |
|
65 |
+ os.path.join(dirs["source"],"tex","packages.tex"), |
|
66 |
+ os.path.join(dirs["source"],"tex","settings.tex"), |
|
67 |
+ os.path.join(dirs["source"],"tex","meta.tex"), |
|
68 |
+ os.path.join(dirs["source"],"tex","commands.tex"), |
|
69 |
+ os.path.join(dirs["source"],"tex","preface.tex"), |
|
70 |
+ os.path.join(dirs["source"],"tex","grammar.tex"), |
|
71 |
+ os.path.join(dirs["source"],"tex","phonology_and_orthography.tex"), |
|
72 |
+ os.path.join(dirs["source"],"tex","conjugation.tex"), |
|
73 |
+ os.path.join(dirs["source"],"tex","declension.tex"), |
|
74 |
+ os.path.join(dirs["source"],"tex","attributes.tex"), |
|
75 |
+ ] |
|
76 |
+ |
|
77 |
+ rules = [] |
|
78 |
+ rules.append( |
|
79 |
+ class_rule( |
|
80 |
+ "all", |
|
81 |
+ [os.path.join(dirs["build"],"folksprak.pdf")], |
|
82 |
+ [], |
|
83 |
+ True |
|
84 |
+ ) |
|
85 |
+ ) |
|
86 |
+ rules.append( |
|
87 |
+ class_rule( |
|
88 |
+ "clean", |
|
89 |
+ [], |
|
90 |
+ [ |
|
91 |
+ class_command_directory_remove({ |
|
92 |
+ "path": dirs["temp"], |
|
93 |
+ }), |
|
94 |
+ ], |
|
95 |
+ True |
|
96 |
+ ) |
|
97 |
+ ) |
|
98 |
+ rules.append( |
|
99 |
+ class_rule( |
|
100 |
+ "clear", |
|
101 |
+ ["clean"], |
|
102 |
+ [ |
|
103 |
+ class_command_directory_remove({ |
|
104 |
+ "path": dirs["build"], |
|
105 |
+ }), |
|
106 |
+ ], |
|
107 |
+ True |
|
108 |
+ ) |
|
109 |
+ ) |
|
110 |
+ rules.append( |
|
111 |
+ class_rule( |
|
112 |
+ os.path.join(dirs["temp"],"media","logo.pdf"), |
|
113 |
+ [os.path.join(dirs["source"],"media","logo.svg")], |
|
114 |
+ [ |
|
115 |
+ class_command_log({ |
|
116 |
+ "message": "converting logo ..." |
|
117 |
+ }), |
|
118 |
+ class_command_directory_create({ |
|
119 |
+ "path": os.path.join(dirs["temp"],"media"), |
|
120 |
+ }), |
|
121 |
+ class_command_image_convert({ |
|
122 |
+ "path-from": os.path.join(dirs["source"],"media","logo.svg"), |
|
123 |
+ "path-to": os.path.join(dirs["temp"],"media","logo.pdf"), |
|
124 |
+ }), |
|
125 |
+ ] |
|
126 |
+ ) |
|
127 |
+ ) |
|
128 |
+ rules.append( |
|
129 |
+ class_rule( |
|
130 |
+ os.path.join(dirs["temp"],"folksprak.pdf"), |
|
131 |
+ texs + [os.path.join(dirs["temp"],"media","logo.pdf")], |
|
132 |
+ [ |
|
133 |
+ class_command_log({ |
|
134 |
+ "message": "compiling document ..." |
|
135 |
+ }), |
|
136 |
+ class_command_directory_create({ |
|
137 |
+ "path": dirs["temp"], |
|
138 |
+ }), |
|
139 |
+ class_command_latex_compile({ |
|
140 |
+ "path": os.path.join(dirs["source"],"tex","folksprak.tex"), |
|
141 |
+ "output": os.path.join(dirs["temp"]), |
|
142 |
+ }), |
|
143 |
+ class_command_latex_compile({ |
|
144 |
+ "path": os.path.join(dirs["source"],"tex","folksprak.tex"), |
|
145 |
+ "output": os.path.join(dirs["temp"]), |
|
146 |
+ }), |
|
147 |
+ ] |
|
148 |
+ ) |
|
149 |
+ ) |
|
150 |
+ rules.append( |
|
151 |
+ class_rule( |
|
152 |
+ os.path.join(dirs["build"],"folksprak.pdf"), |
|
153 |
+ [os.path.join(dirs["temp"],"folksprak.pdf")], |
|
154 |
+ [ |
|
155 |
+ class_command_directory_create({ |
|
156 |
+ "path": os.path.join(dirs["build"]), |
|
157 |
+ }), |
|
158 |
+ class_command_file_copy({ |
|
159 |
+ "path-from": os.path.join(dirs["temp"],"folksprak.pdf"), |
|
160 |
+ "path-to": os.path.join(dirs["build"],"folksprak.pdf"), |
|
161 |
+ }), |
|
162 |
+ ] |
|
163 |
+ ) |
|
164 |
+ ) |
|
165 |
+ |
|
166 |
+ for rule in rules: print(rule) |
|
167 |
+ sys.stderr.write("\n[information]\tThe output of this script is meant to be redirected into a GNU-makefile\n") |
|
168 |
+ |
|
169 |
+ |
|
170 |
+main() |
|
171 |
+ |
... | ... |
@@ -1,4 +1,4 @@ |
1 |
-all: build/folksprak.pdf |
|
1 |
+all: build/folksprak.html build/folksprak.css build/logo.svg |
|
2 | 2 |
.PHONY: all |
3 | 3 |
|
4 | 4 |
clean: |
... | ... |
@@ -9,18 +9,20 @@ clear: clean |
9 | 9 |
@ rm --recursive --force build |
10 | 10 |
.PHONY: clear |
11 | 11 |
|
12 |
-temp/media/logo.pdf: source/media/logo.svg |
|
13 |
- @ echo -e '-- converting logo ...' |
|
14 |
- @ mkdir --parents temp/media |
|
15 |
- @ convert source/media/logo.svg temp/media/logo.pdf |
|
16 |
- |
|
17 |
-temp/folksprak.pdf: source/tex/folksprak.tex source/tex/packages.tex source/tex/settings.tex source/tex/meta.tex source/tex/commands.tex source/tex/preface.tex source/tex/grammar.tex source/tex/phonology_and_orthography.tex source/tex/conjugation.tex source/tex/declension.tex source/tex/attributes.tex temp/media/logo.pdf |
|
12 |
+build/folksprak.html: source/html.php/folksprak.html.php source/html.php/meta.html.php source/html.php/preface.html.php source/html.php/grammar.html.php source/html.php/phonology_and_orthography.html.php source/html.php/pronouns.html.php source/html.php/conjugation.html.php source/html.php/declension.html.php source/html.php/attributes.html.php |
|
18 | 13 |
@ echo -e '-- compiling document ...' |
19 |
- @ mkdir --parents temp |
|
20 |
- @ xelatex -output-directory=temp source/tex/folksprak.tex > /dev/null |
|
21 |
- @ xelatex -output-directory=temp source/tex/folksprak.tex > /dev/null |
|
14 |
+ @ mkdir --parents build |
|
15 |
+ @ php source/html.php/folksprak.html.php > build/folksprak.html |
|
22 | 16 |
|
23 |
-build/folksprak.pdf: temp/folksprak.pdf |
|
17 |
+build/logo.svg: source/media/logo.svg |
|
18 |
+ @ echo -e '-- copying logo ...' |
|
19 |
+ @ mkdir --parents build |
|
20 |
+ @ cp --recursive source/media/logo.svg build/logo.svg |
|
21 |
+ |
|
22 |
+build/folksprak.css: source/less/common.less source/less/concrete.less |
|
23 |
+ @ echo -e '-- compiling style ...' |
|
24 |
+ @ mkdir --parents temp |
|
25 |
+ @ cat source/less/common.less source/less/concrete.less > temp/folksprak.less |
|
24 | 26 |
@ mkdir --parents build |
25 |
- @ cp --recursive temp/folksprak.pdf build/folksprak.pdf |
|
27 |
+ @ lessc temp/folksprak.less > build/folksprak.css |
|
26 | 28 |
|
... | ... |
@@ -0,0 +1,23 @@ |
1 |
+<section class="section" id="grammar/conjugation"> |
|
2 |
+ <header>Conjugation</header> |
|
3 |
+ <section class="subsection" id="conjugation/infinite_verbforms"> |
|
4 |
+ <header>Infinite Verbforms</header> |
|
5 |
+ <p>The <span class="grammarterm">infinitive</span> is formed by appending <span class="word_fs">-a</span> to the verb-stem, e.g. <span class="word_fs">skriva</span> ~ <span class="word_en">to write</span>.</p> |
|
6 |
+ <p>The <span class="grammarterm">active participle</span> is formed by appending <span class="word_fs">-end</span> to the verb-stem, e.g. <span class="word_fs">skrivend</span> ~ <span class="word_en">writing</span>.</p> |
|
7 |
+ <p>The <span class="grammarterm">passive participle</span> is formed by appending <span class="word_fs">-et</span> to the verb-stem, e.g. <span class="word_fs">skrivet</span> ~ <span class="word_en">written</span>.</p> |
|
8 |
+ </section> |
|
9 |
+ <section class="subsection" id="conjugation/personae_numeri"> |
|
10 |
+ <header>Personae and Numeri</header> |
|
11 |
+ <p>There is no change in the verb for conjugating according to person and count</p> |
|
12 |
+ <p>Example: <span class="word_fs">ek skriv</span> ~ <span class="word_en">i write</span>, <span class="word_fs">du skriv</span> ~ <span class="word_en">you write</span>, <span class="word_fs">hi skriv</span> ~ <span class="word_en">he writes</span></p> |
|
13 |
+ </section> |
|
14 |
+ <section class="subsection" id="conjugation/tempora"> |
|
15 |
+ <header>Tempora</header> |
|
16 |
+ <span class="todo">all</span> |
|
17 |
+ </section> |
|
18 |
+ <section class="subsection" id="conjugation/modi"> |
|
19 |
+ <header>Modi</header> |
|
20 |
+ <span class="todo">all</span> |
|
21 |
+ </section> |
|
22 |
+</section> |
|
23 |
+ |
... | ... |
@@ -0,0 +1,27 @@ |
1 |
+<!DOCTYPE HTML> |
|
2 |
+<html> |
|
3 |
+ <head> |
|
4 |
+ <meta charset="utf-8"/> |
|
5 |
+ <?php include("source/html.php/meta.html.php"); ?> |
|
6 |
+ <link rel="stylesheet" type="text/css" href="folksprak.css"/> |
|
7 |
+ </head> |
|
8 |
+ <body> |
|
9 |
+ <div id="mid"> |
|
10 |
+ <div id="title"> |
|
11 |
+ <header>Folksprak Draft</header> |
|
12 |
+ <div id="logo"> |
|
13 |
+ <img src="logo.svg" alt="[logo]"/> |
|
14 |
+ </div> |
|
15 |
+ </div> |
|
16 |
+ <!-- |
|
17 |
+ titlepage |
|
18 |
+ --> |
|
19 |
+ <?php include("source/html.php/preface.html.php"); ?> |
|
20 |
+ <!-- |
|
21 |
+ toc |
|
22 |
+ --> |
|
23 |
+ <?php include("source/html.php/grammar.html.php"); ?> |
|
24 |
+ </div> |
|
25 |
+ </body> |
|
26 |
+</html> |
|
27 |
+ |
... | ... |
@@ -0,0 +1,9 @@ |
1 |
+<section class="chapter" id="grammar"> |
|
2 |
+ <header>Grammar</header> |
|
3 |
+ <?php include("source/html.php/phonology_and_orthography.html.php"); ?> |
|
4 |
+ <?php include("source/html.php/pronouns.html.php"); ?> |
|
5 |
+ <?php include("source/html.php/conjugation.html.php"); ?> |
|
6 |
+ <?php include("source/html.php/declension.html.php"); ?> |
|
7 |
+ <?php include("source/html.php/attributes.html.php"); ?> |
|
8 |
+</section> |
|
9 |
+ |
... | ... |
@@ -0,0 +1,138 @@ |
1 |
+<section class="section" id="grammar/phonology_and_orthography"> |
|
2 |
+ <header>Phonology and Orthography</header> |
|
3 |
+ <p>Folksprak uses the following characters as letters:</pa> |
|
4 |
+ <table> |
|
5 |
+ <thead> |
|
6 |
+ <tr> |
|
7 |
+ <th>IPA-sound</th> |
|
8 |
+ <th>Latin letter Representation</th> |
|
9 |
+ <th>Runic Representation</th> |
|
10 |
+ </tr> |
|
11 |
+ </thead> |
|
12 |
+ <tbody> |
|
13 |
+ <tr class="splitter"><td></td><td></td><td></td></tr> |
|
14 |
+ <tr> |
|
15 |
+ <td><span class="ipa">l</span></td> |
|
16 |
+ <td><span class="word_fs">L</span>/<span class="word_fs">l</span></td> |
|
17 |
+ <td><span class="word_fs">ᛚ</span></td> |
|
18 |
+ </tr> |
|
19 |
+ <tr class="splitter"><td></td><td></td><td></td></tr> |
|
20 |
+ <tr> |
|
21 |
+ <td><span class="ipa">m</span></td> |
|
22 |
+ <td><span class="word_fs">M</span>/<span class="word_fs">m</span></td> |
|
23 |
+ <td><span class="word_fs">ᛗ</span></td> |
|
24 |
+ </tr> |
|
25 |
+ <tr> |
|
26 |
+ <td><span class="ipa">n</span></td> |
|
27 |
+ <td><span class="word_fs">N</span>/<span class="word_fs">n</span></td> |
|
28 |
+ <td><span class="word_fs">ᚾ</span></td> |
|
29 |
+ </tr> |
|
30 |
+ <tr> |
|
31 |
+ <td><span class="ipa">ŋ</span></td> |
|
32 |
+ <td><span class="word_fs">Ng</span>/<span class="word_fs">ng</span></td> |
|
33 |
+ <td><span class="word_fs">ᛜ</span></td> |
|
34 |
+ </tr> |
|
35 |
+ <tr class="splitter"><td></td><td></td><td></td></tr> |
|
36 |
+ <tr> |
|
37 |
+ <td><span class="ipa">g</span></td> |
|
38 |
+ <td><span class="word_fs">G</span>/<span class="word_fs">g</span></td> |
|
39 |
+ <td><span class="word_fs">ᚷ</span></td> |
|
40 |
+ </tr> |
|
41 |
+ <tr> |
|
42 |
+ <td><span class="ipa">k</span></td> |
|
43 |
+ <td><span class="word_fs">K</span>/<span class="word_fs">k</span></td> |
|
44 |
+ <td><span class="word_fs">ᚲ</span></td> |
|
45 |
+ </tr> |
|
46 |
+ <tr> |
|
47 |
+ <td><span class="ipa">b</span></td> |
|
48 |
+ <td><span class="word_fs">B</span>/<span class="word_fs">b</span></td> |
|
49 |
+ <td><span class="word_fs">ᛒ</span></td> |
|
50 |
+ </tr> |
|
51 |
+ <tr> |
|
52 |
+ <td><span class="ipa">p</span></td> |
|
53 |
+ <td><span class="word_fs">P</span>/<span class="word_fs">p</span></td> |
|
54 |
+ <td><span class="word_fs">ᛈ</span></td> |
|
55 |
+ </tr> |
|
56 |
+ <tr> |
|
57 |
+ <td><span class="ipa">d</span></td> |
|
58 |
+ <td><span class="word_fs">D</span>/<span class="word_fs">d</span></td> |
|
59 |
+ <td><span class="word_fs">ᛞ</span></td> |
|
60 |
+ </tr> |
|
61 |
+ <tr> |
|
62 |
+ <td><span class="ipa">t</span></td> |
|
63 |
+ <td><span class="word_fs">T</span>/<span class="word_fs">t</span></td> |
|
64 |
+ <td><span class="word_fs">ᛏ</span></td> |
|
65 |
+ </tr> |
|
66 |
+ <tr class="splitter"><td></td><td></td><td></td></tr> |
|
67 |
+ <tr> |
|
68 |
+ <td><span class="ipa">v</span></td> |
|
69 |
+ <td><span class="word_fs">V</span>/<span class="word_fs">v</span></td> |
|
70 |
+ <td><span class="word_fs">ᚹ</span></td> |
|
71 |
+ </tr> |
|
72 |
+ <tr> |
|
73 |
+ <td><span class="ipa">f</span></td> |
|
74 |
+ <td><span class="word_fs">F</span>/<span class="word_fs">f</span></td> |
|
75 |
+ <td><span class="word_fs">ᚠ</span></td> |
|
76 |
+ </tr> |
|
77 |
+ <tr> |
|
78 |
+ <td><span class="ipa">s</span></td> |
|
79 |
+ <td><span class="word_fs">S</span>/<span class="word_fs">s</span></td> |
|
80 |
+ <td><span class="word_fs">ᛋ</span></td> |
|
81 |
+ </tr> |
|
82 |
+ <tr class="splitter"><td></td><td></td><td></td></tr> |
|
83 |
+ <tr> |
|
84 |
+ <td><span class="ipa">h</span></td> |
|
85 |
+ <td><span class="word_fs">H</span>/<span class="word_fs">h</span></td> |
|
86 |
+ <td><span class="word_fs">ᚺ</span></td> |
|
87 |
+ </tr> |
|
88 |
+ <tr> |
|
89 |
+ <td><span class="ipa">ɾ</span></td> |
|
90 |
+ <td><span class="word_fs">R</span>/<span class="word_fs">r</span></td> |
|
91 |
+ <td><span class="word_fs">ᚱ</span></td> |
|
92 |
+ </tr> |
|
93 |
+ <tr class="splitter"><td></td><td></td><td></td></tr> |
|
94 |
+ <tr> |
|
95 |
+ <td><span class="ipa">j</span></td> |
|
96 |
+ <td><span class="word_fs">J</span>/<span class="word_fs">j</span></td> |
|
97 |
+ <td><span class="word_fs">ᛃ</span></td> |
|
98 |
+ </tr> |
|
99 |
+ <tr class="splitter"><td></td><td></td><td></td></tr> |
|
100 |
+ <tr> |
|
101 |
+ <td><span class="ipa">i</span></td> |
|
102 |
+ <td><span class="word_fs">I</span>/<span class="word_fs">i</span></td> |
|
103 |
+ <td><span class="word_fs">ᛁ</span></td> |
|
104 |
+ </tr> |
|
105 |
+ <tr> |
|
106 |
+ <td><span class="ipa">e</span></td> |
|
107 |
+ <td><span class="word_fs">E</span>/<span class="word_fs">e</span></td> |
|
108 |
+ <td><span class="word_fs">ᛖ</span></td> |
|
109 |
+ </tr> |
|
110 |
+ <tr> |
|
111 |
+ <td><span class="ipa">a</span></td> |
|
112 |
+ <td><span class="word_fs">A</span>/<span class="word_fs">a</span></td> |
|
113 |
+ <td><span class="word_fs">ᚨ</span></td> |
|
114 |
+ </tr> |
|
115 |
+ <tr> |
|
116 |
+ <td><span class="ipa">o</span></td> |
|
117 |
+ <td><span class="word_fs">O</span>/<span class="word_fs">o</span></td> |
|
118 |
+ <td><span class="word_fs">ᛟ</span></td> |
|
119 |
+ </tr> |
|
120 |
+ <tr> |
|
121 |
+ <td><span class="ipa">u</span></td> |
|
122 |
+ <td><span class="word_fs">U</span>/<span class="word_fs">u</span></td> |
|
123 |
+ <td><span class="word_fs">ᚢ</span></td> |
|
124 |
+ </tr> |
|
125 |
+ <tr> |
|
126 |
+ <td><span class="ipa">ø</span></td> |
|
127 |
+ <td><span class="word_fs">Oy</span>/<span class="word_fs">oy</span></td> |
|
128 |
+ <td><span class="word_fs">ᛟᛇ</span></td> |
|
129 |
+ </tr> |
|
130 |
+ <tr> |
|
131 |
+ <td><span class="ipa">y</span></td> |
|
132 |
+ <td><span class="word_fs">Uy</span>/<span class="word_fs">uy</span></td> |
|
133 |
+ <td><span class="word_fs">ᚢᛇ</span></td> |
|
134 |
+ </tr> |
|
135 |
+ </tbody> |
|
136 |
+ </table> |
|
137 |
+</section> |
|
138 |
+ |
... | ... |
@@ -0,0 +1,10 @@ |
1 |
+<section class="pseudo section" id="preface"> |
|
2 |
+ <header>Preface</header> |
|
3 |
+ <div class="pseudo subsection" id="prefac/what_is_it_about"> |
|
4 |
+ <header>What is it about?</header> |
|
5 |
+ <p>Folksprak is the name of a project that aims to construct an inter-Germanic zonal auxiliary language, which means a language that can be easily understood by any speaker of a Germanic language (a group numbering over 465 million native speakers with an additional 300 to 900 million speaking English as a second language) without ever having learned it.</p> |
|
6 |
+ <p>Folksprak is not meant to be designed by any one individual, but rather a collective work created by all interested parties; so you're welcome to participate.</p> |
|
7 |
+ <p>The content of this document is the result of a collaboration between people from different parts on earth, connected by the internet. Its not a final specification for Folksprak, but a draft as a base to work on. Please let us know what you think about it and how you would improve it! You can find us in the IRC-Channel <code>##folksprak</code> on <a href="irc://irc.freenode.net">irc.freenode.net</a>. You can also write an E-Mail to <a href="mailto:admin@folksprak.org">admin@folksprak.org</a>.</p> |
|
8 |
+ </div> |
|
9 |
+</section> |
|
10 |
+ |
... | ... |
@@ -0,0 +1,77 @@ |
1 |
+<section class="section" id="grammar/pronouns"> |
|
2 |
+ <header>Pronouns</header> |
|
3 |
+ <section class="subsection" id="grammar/pronouns/personal_pronouns"> |
|
4 |
+ <header>Personal Pronouns</header> |
|
5 |
+ <table> |
|
6 |
+ <thead> |
|
7 |
+ </thead> |
|
8 |
+ <tr> |
|
9 |
+ <th>Folksprak</th> |
|
10 |
+ <th>Description</th> |
|
11 |
+ <th>English</th> |
|
12 |
+ </tr> |
|
13 |
+ <tbody> |
|
14 |
+ <tr> |
|
15 |
+ <td><span class="word_fs">ek</span></td> |
|
16 |
+ <td>1st person singular</td> |
|
17 |
+ <td><span class="word_en">i</span></td> |
|
18 |
+ </tr> |
|
19 |
+ <tr> |
|
20 |
+ <td><span class="word_fs">du</span></td> |
|
21 |
+ <td>2nd person singular</td> |
|
22 |
+ <td><span class="word_en">you</span></td> |
|
23 |
+ </tr> |
|
24 |
+ <tr> |
|
25 |
+ <td><span class="word_fs">han</span></td> |
|
26 |
+ <td>3rd person singular common</td> |
|
27 |
+ <td>--</td> |
|
28 |
+ </tr> |
|
29 |
+ <tr> |
|
30 |
+ <td><span class="word_fs">hin</span></td> |
|
31 |
+ <td>3rd person singular masculine</td> |
|
32 |
+ <td><span class="word_en">he</span></td> |
|
33 |
+ </tr> |
|
34 |
+ <tr> |
|
35 |
+ <td><span class="word_fs">hun</span></td> |
|
36 |
+ <td>3rd person singular feminine</td> |
|
37 |
+ <td><span class="word_en">she</span></td> |
|
38 |
+ </tr> |
|
39 |
+ <tr> |
|
40 |
+ <td><span class="word_fs">het</span></td> |
|
41 |
+ <td>3rd person singular neuter</td> |
|
42 |
+ <td><span class="word_en">it</span></td> |
|
43 |
+ </tr> |
|
44 |
+ <tr> |
|
45 |
+ <td><span class="word_fs">man</span></td> |
|
46 |
+ <td>impersonal singular</td> |
|
47 |
+ <td><span class="word_en">one</span>,<span class="word_en">you</span></td> |
|
48 |
+ </tr> |
|
49 |
+ <tr> |
|
50 |
+ <td><span class="word_fs">vi</span></td> |
|
51 |
+ <td>1st person plural</td> |
|
52 |
+ <td><span class="word_en">we</span></td> |
|
53 |
+ </tr> |
|
54 |
+ <tr> |
|
55 |
+ <td><span class="word_fs">je</span></td> |
|
56 |
+ <td>2nd person plural</td> |
|
57 |
+ <td><span class="word_en">you (all)</span></td> |
|
58 |
+ </tr> |
|
59 |
+ <tr> |
|
60 |
+ <td><span class="word_fs">di</span></td> |
|
61 |
+ <td>3rd person plural</td> |
|
62 |
+ <td><span class="word_en">they</span></td> |
|
63 |
+ </tr> |
|
64 |
+ <tr> |
|
65 |
+ <td><span class="word_fs">man</span></td> |
|
66 |
+ <td>impersonal plural</td> |
|
67 |
+ <td><span class="word_en">they</span>,<span class="word_en">you</span></td> |
|
68 |
+ </tr> |
|
69 |
+ </tbody> |
|
70 |
+ </table> |
|
71 |
+ </section> |
|
72 |
+ <section class="subsection" id="grammar/pronouns/correlatives"> |
|
73 |
+ <header>Correlatives</header> |
|
74 |
+ <span class="todo">all</span> |
|
75 |
+ </section> |
|
76 |
+</section> |
|
77 |
+ |
... | ... |
@@ -0,0 +1,135 @@ |
1 |
+.ipa |
|
2 |
+{ |
|
3 |
+ &:before |
|
4 |
+ { |
|
5 |
+ content: "/"; |
|
6 |
+ } |
|
7 |
+ |
|
8 |
+ &:after |
|
9 |
+ { |
|
10 |
+ content: "/"; |
|
11 |
+ } |
|
12 |
+} |
|
13 |
+ |
|
14 |
+.grammarterm |
|
15 |
+{ |
|
16 |
+ text-decoration: underline; |
|
17 |
+} |
|
18 |
+ |
|
19 |
+.word_fs |
|
20 |
+{ |
|
21 |
+ font-weight: bold; |
|
22 |
+} |
|
23 |
+ |
|
24 |
+.word_en |
|
25 |
+{ |
|
26 |
+ font-style: italic; |
|
27 |
+} |
|
28 |
+ |
|
29 |
+.todo |
|
30 |
+{ |
|
31 |
+ &:before |
|
32 |
+ { |
|
33 |
+ content: "[ToDo] "; |
|
34 |
+ } |
|
35 |
+ |
|
36 |
+ padding: 4px; |
|
37 |
+ background-color: red; |
|
38 |
+ color: white; |
|
39 |
+ font-weight: bold; |
|
40 |
+} |
|
41 |
+ |
|
42 |
+section |
|
43 |
+{ |
|
44 |
+ &.chapter |
|
45 |
+ { |
|
46 |
+ margin-bottom: 16px; |
|
47 |
+ |
|
48 |
+ & > header |
|
49 |
+ { |
|
50 |
+ font-size: 1.6em; |
|
51 |
+ margin-bottom: 6px; |
|
52 |
+ } |
|
53 |
+ |
|
54 |
+ & > * |
|
55 |
+ { |
|
56 |
+ margin-left: 12px; |
|
57 |
+ } |
|
58 |
+ } |
|
59 |
+ |
|
60 |
+ &.section |
|
61 |
+ { |
|
62 |
+ margin-bottom: 14px; |
|
63 |
+ |
|
64 |
+ & > header |
|
65 |
+ { |
|
66 |
+ font-size: 1.4em; |
|
67 |
+ margin-bottom: 4px; |
|
68 |
+ } |
|
69 |
+ |
|
70 |
+ & > * |
|
71 |
+ { |
|
72 |
+ margin-left: 8px; |
|
73 |
+ } |
|
74 |
+ } |
|
75 |
+ |
|
76 |
+ |
|
77 |
+ &.subsection |
|
78 |
+ { |
|
79 |
+ margin-bottom: 12px; |
|
80 |
+ |
|
81 |
+ & > header |
|
82 |
+ { |
|
83 |
+ font-size: 1.2em; |
|
84 |
+ margin-bottom: 2px; |
|
85 |
+ } |
|
86 |
+ |
|
87 |
+ & > * |
|
88 |
+ { |
|
89 |
+ margin-left: 4px; |
|
90 |
+ } |
|
91 |
+ } |
|
92 |
+ |
|
93 |
+ &.pseudo |
|
94 |
+ { |
|
95 |
+ & > header |
|
96 |
+ { |
|
97 |
+ font-style: italic; |
|
98 |
+ } |
|
99 |
+ } |
|
100 |
+} |
|
101 |
+ |
|
102 |
+table |
|
103 |
+{ |
|
104 |
+ border-collapse: collapse; |
|
105 |
+ |
|
106 |
+ & tr |
|
107 |
+ { |
|
108 |
+ th,td |
|
109 |
+ { |
|
110 |
+ border: 1px solid black; |
|
111 |
+ } |
|
112 |
+ } |
|
113 |
+ |
|
114 |
+ & tr.splitter |
|
115 |
+ { |
|
116 |
+ height: 1px; |
|
117 |
+ } |
|
118 |
+ |
|
119 |
+ & tr:not(.splitter) |
|
120 |
+ { |
|
121 |
+ th,td |
|
122 |
+ { |
|
123 |
+ font-size: 0.8em; |
|
124 |
+ padding: 4px; |
|
125 |
+ } |
|
126 |
+ } |
|
127 |
+} |
|
128 |
+ |
|
129 |
+a |
|
130 |
+{ |
|
131 |
+ color: hsv(120, 50%, 50%); |
|
132 |
+ text-decoration: none; |
|
133 |
+ font-family: monospace; |
|
134 |
+} |
|
135 |
+ |
... | ... |
@@ -0,0 +1,37 @@ |
1 |
+body |
|
2 |
+{ |
|
3 |
+ background-color: hsv(0,0%,80%); |
|
4 |
+} |
|
5 |
+ |
|
6 |
+#mid |
|
7 |
+{ |
|
8 |
+ background-color: hsv(0,0%,100%); |
|
9 |
+ box-shadow: 2px 2px 2px hsv(0,0%,50%); |
|
10 |
+ padding: 80px 40px; |
|
11 |
+ max-width: 1000px; |
|
12 |
+ margin: auto; |
|
13 |
+} |
|
14 |
+ |
|
15 |
+#title |
|
16 |
+{ |
|
17 |
+ & > header |
|
18 |
+ { |
|
19 |
+ font-size: 2.5em; |
|
20 |
+ font-weight: bold; |
|
21 |
+ margin-bottom: 48px; |
|
22 |
+ } |
|
23 |
+ |
|
24 |
+ & > #logo |
|
25 |
+ { |
|
26 |
+ max-width: 480px; |
|
27 |
+ margin: auto; |
|
28 |
+ |
|
29 |
+ & > img |
|
30 |
+ { |
|
31 |
+ width: 100%; |
|
32 |
+ } |
|
33 |
+ } |
|
34 |
+ |
|
35 |
+ margin-bottom: 36px; |
|
36 |
+} |
|
37 |
+ |
... | ... |
@@ -0,0 +1,117 @@ |
1 |
+.ipa |
|
2 |
+{ |
|
3 |
+ &:before |
|
4 |
+ { |
|
5 |
+ content: "/"; |
|
6 |
+ } |
|
7 |
+ |
|
8 |
+ &:after |
|
9 |
+ { |
|
10 |
+ content: "/"; |
|
11 |
+ } |
|
12 |
+} |
|
13 |
+ |
|
14 |
+.word_fs |
|
15 |
+{ |
|
16 |
+ font-weight: bold; |
|
17 |
+} |
|
18 |
+ |
|
19 |
+.todo |
|
20 |
+{ |
|
21 |
+ &:before |
|
22 |
+ { |
|
23 |
+ content: "[ToDo] "; |
|
24 |
+ } |
|
25 |
+ |
|
26 |
+ padding: 4px; |
|
27 |
+ background-color: red; |
|
28 |
+ color: white; |
|
29 |
+ font-weight: bold; |
|
30 |
+} |
|
31 |
+ |
|
32 |
+section |
|
33 |
+{ |
|
34 |
+ &.chapter |
|
35 |
+ { |
|
36 |
+ margin-bottom: 16px; |
|
37 |
+ |
|
38 |
+ & > header |
|
39 |
+ { |
|
40 |
+ font-size: 1.6em; |
|
41 |
+ margin-bottom: 6px; |
|
42 |
+ } |
|
43 |
+ |
|
44 |
+ & > * |
|
45 |
+ { |
|
46 |
+ margin-left: 12px; |
|
47 |
+ } |
|
48 |
+ } |
|
49 |
+ |
|
50 |
+ &.section |
|
51 |
+ { |
|
52 |
+ margin-bottom: 14px; |
|
53 |
+ |
|
54 |
+ & > header |
|
55 |
+ { |
|
56 |
+ font-size: 1.4em; |
|
57 |
+ margin-bottom: 4px; |
|
58 |
+ } |
|
59 |
+ |
|
60 |
+ & > * |
|
61 |
+ { |
|
62 |
+ margin-left: 8px; |
|
63 |
+ } |
|
64 |
+ } |
|
65 |
+ |
|
66 |
+ |
|
67 |
+ &.subsection |
|
68 |
+ { |
|
69 |
+ margin-bottom: 12px; |
|
70 |
+ |
|
71 |
+ & > header |
|
72 |
+ { |
|
73 |
+ font-size: 1.2em; |
|
74 |
+ margin-bottom: 2px; |
|
75 |
+ } |
|
76 |
+ |
|
77 |
+ & > * |
|
78 |
+ { |
|
79 |
+ margin-left: 4px; |
|
80 |
+ } |
|
81 |
+ } |
|
82 |
+ |
|
83 |
+ &.pseudo |
|
84 |
+ { |
|
85 |
+ & > header |
|
86 |
+ { |
|
87 |
+ font-style: italic; |
|
88 |
+ } |
|
89 |
+ } |
|
90 |
+} |
|
91 |
+ |
|
92 |
+table |
|
93 |
+{ |
|
94 |
+ border-collapse: collapse; |
|
95 |
+} |
|
96 |
+ |
|
97 |
+th,td |
|
98 |
+{ |
|
99 |
+ border: 1px solid black; |
|
100 |
+ font-size: 0.8em; |
|
101 |
+ padding: 4px; |
|
102 |
+} |
|
103 |
+ |
|
104 |
+body |
|
105 |
+{ |
|
106 |
+ background-color: hsv(0,0%,80%); |
|
107 |
+} |
|
108 |
+ |
|
109 |
+#mid |
|
110 |
+{ |
|
111 |
+ background-color: hsv(0,0%,100%); |
|
112 |
+ box-shadow: 2px 2px 2px hsv(0,0%,50%); |
|
113 |
+ padding: 80px 40px; |
|
114 |
+ max-width: 1000px; |
|
115 |
+ margin: auto; |
|
116 |
+} |
|
117 |
+ |
|
0 | 118 |