Browse code

moved to html

fenris authored on22/04/2016 15:22:02
Showing15 changed files
... ...
@@ -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
 		)
164 184
new file mode 100644
... ...
@@ -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
 
27 29
new file mode 100644
... ...
@@ -0,0 +1,5 @@
1
+<section class="section" id="grammar/attributes">
2
+	<header>Attributes</header>
3
+	<span class="todo">all</span>
4
+</section>
5
+
0 6
new file mode 100644
... ...
@@ -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 24
new file mode 100644
... ...
@@ -0,0 +1,5 @@
1
+<section class="section" id="grammar/declension">
2
+	<header>Declension</header>
3
+	<span class="todo">all</span>
4
+</section>
5
+
0 6
new file mode 100644
... ...
@@ -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 28
new file mode 100644
... ...
@@ -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 10
new file mode 100644
... ...
@@ -0,0 +1,3 @@
1
+<title>Folksprak</title>
2
+<meta author="Christian Fraß"/>
3
+
0 4
new file mode 100644
... ...
@@ -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 139
new file mode 100644
... ...
@@ -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 11
new file mode 100644
... ...
@@ -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 78
new file mode 100644
... ...
@@ -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 136
new file mode 100644
... ...
@@ -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 38
new file mode 100644
... ...
@@ -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
+