multilang begin multilang
authorMart Lubbers <mart@martlubbers.net>
Mon, 9 Oct 2023 05:58:40 +0000 (07:58 +0200)
committerMart Lubbers <mart@martlubbers.net>
Mon, 9 Oct 2023 05:58:40 +0000 (07:58 +0200)
96 files changed:
_config.yml
_data/snippets.yml [new file with mode: 0644]
_includes/footer.html [new file with mode: 0644]
_includes/head.html [new file with mode: 0755]
_includes/header.html [new file with mode: 0644]
_includes/index_header.html [new file with mode: 0644]
_includes/language-switch.html [new file with mode: 0644]
_includes/localizations.html [new file with mode: 0755]
_includes/navigation.html [new file with mode: 0644]
_includes/posts.html [new file with mode: 0755]
_includes/title.html [new file with mode: 0644]
_includes/toc.html [new file with mode: 0644]
_includes/toc.md [new file with mode: 0644]
_layouts/index.html [moved from _layouts/default.html with 78% similarity]
_layouts/post.html [moved from _layouts/posts.html with 100% similarity]
_posts/2021-06-12-look-zonder-look.md [deleted file]
_posts/2021-06-14-zomereikwijn.md [deleted file]
_posts/2021-06-16-aalbessen-krentjesjam.md [deleted file]
_posts/en/2021-01-01-hello-world.markdown [new file with mode: 0644]
_posts/en/2021-01-02-hello-mars.markdown [new file with mode: 0644]
archive/lejos-ubuntu.html [deleted file]
archive/nsa-dropbox.html [deleted file]
archive/thin.html [deleted file]
archive/wlan-debian.html [deleted file]
archive/youtube-term.html [deleted file]
dvorak.md [deleted file]
en/home.md [new symlink]
files/3cows.pdf [deleted file]
files/alberts.pdf [deleted file]
files/amlap15.pdf [deleted file]
files/andrade.pdf [deleted file]
files/artz.pdf [deleted file]
files/bachelor.pdf [deleted file]
files/boer.pdf [deleted file]
files/böhm.pdf [deleted file]
files/crooijmans.pdf [deleted file]
files/dvorak-0.74.map [deleted file]
files/dvorak_dos.tar [deleted file]
files/gc/GC8WNDQ.png [deleted file]
files/gc/GC8WNDQ_klein.png [deleted file]
files/gc/GC8YY6C.png [deleted file]
files/gc/GC8ZV56_a-c.png [deleted file]
files/gc/GC8ZV56_d-g.png [deleted file]
files/gc/GC8ZV56_h-j.png [deleted file]
files/ifl18.pdf [deleted file]
files/ifl19.pdf [deleted file]
files/iot20.pdf [deleted file]
files/master.pdf [deleted file]
files/phonetic_dvorak.gz [deleted file]
files/pympi_presentation2014.zip [deleted file]
files/rwdsl17.pdf [deleted file]
files/tfp20pres.pdf [deleted file]
files/tt21.pdf [deleted file]
files/veen.pdf [deleted file]
foerageer.md [deleted file]
foerageer.xml [deleted file]
griezels/achtergronden/marble1.jpg [deleted file]
griezels/animaties/bar10.gif [deleted file]
griezels/animaties/hoofd1.gif [deleted file]
griezels/boven.htm [deleted file]
griezels/fotos/fpcounter2.gif [deleted file]
griezels/fotos/heks.JPG [deleted file]
griezels/fotos/heks_small1.JPG [deleted file]
griezels/fotos/heksen.JPG [deleted file]
griezels/fotos/heksen_small1.JPG [deleted file]
griezels/fotos/heksles.JPG [deleted file]
griezels/fotos/heksles_small1.JPG [deleted file]
griezels/fotos/weervolven.JPG [deleted file]
griezels/fotos/weerwolf.JPG [deleted file]
griezels/fotos/weerwolf1.JPG [deleted file]
griezels/fotos/weerwolf1_small1.JPG [deleted file]
griezels/fotos/weerwolf_small1.JPG [deleted file]
griezels/heksen.htm [deleted file]
griezels/hoofd.htm [deleted file]
griezels/index.html [deleted file]
griezels/knoppen/fantbat3001.gif [deleted file]
griezels/knoppen/geesten.gif [deleted file]
griezels/knoppen/heksen.gif [deleted file]
griezels/knoppen/links.gif [deleted file]
griezels/knoppen/start.gif [deleted file]
griezels/knoppen/vampiers.gif [deleted file]
griezels/knoppen/weerwolven.gif [deleted file]
griezels/linker.htm [deleted file]
griezels/links.htm [deleted file]
griezels/vampiers.htm [deleted file]
griezels/weerwolven.htm [deleted file]
index.md
langes.md [deleted file]
mart@martlubbers.net.asc [deleted file]
nds/thoos.md [new file with mode: 0644]
nl/thuis.md [new file with mode: 0644]
nonm.md [deleted file]
o.html [deleted file]
readme.markdown [new file with mode: 0644]
test.php [deleted file]
triest/index.html [deleted file]

index 4b153be..f530e41 100644 (file)
@@ -1,11 +1,45 @@
-#baseurl: https://martlubbers.net
+# Site settings
 livereload: true
+
+  #version: '2021-01-01'
+
+default_language: 'en'
+fallback_page: home
+
+timezone: Europe/Amsterdam
+encoding: utf-8
+
+# Build settings
 markdown: kramdown
+
+# Markdown Processors
 kramdown:
-    parse_block_html: true
+  parse_block_html: true
+  auto_ids: true
+  footnote_nr: 1
+  entity_output: as_char
+  toc_levels: 2..3
+
+# Defaults
 defaults:
-  -
-    scope:
-      path: ""
-    values:
-      layout: "default"
+-
+  scope:
+    path: '_posts/en'
+    type: 'posts'
+  values:
+    permalink: 'en/:title'
+    language: en
+-
+  scope:
+    path: '_posts/nl'
+    type: 'posts'
+  values:
+    permalink: 'nl/:title'
+    language: nl
+-
+  scope:
+    path: '_posts/nds'
+    type: 'posts'
+  values:
+    permalink: 'nds/:title'
+    language: nds
diff --git a/_data/snippets.yml b/_data/snippets.yml
new file mode 100644 (file)
index 0000000..1af7034
--- /dev/null
@@ -0,0 +1,39 @@
+title:
+  en: Mart Lubbers' Website
+  nl: Mart Lubbers' Webpagina
+  nds: Mart Lubbers zien Webstie
+
+languages:
+  en:
+    value: en
+    slug: en
+  nl:
+    value: nl
+    slug: nl
+  nds:
+    value: nds
+    slug: nds
+
+back:
+  en: Back to top
+  nl: Terug naar boven
+  nds: Teruw noar båm
+
+top:
+  en: Top
+  nl: Boven
+  nds: Båm
+
+languagename:
+  en: Languages
+  nl: Talen
+  nds: Språken
+
+currentfunction:
+  en: Scientific programmer at TOP Software
+  nl: Wetenschappelijk programmeur bij TOP Software
+  nds: Wetenschoppelyk programmeur by TOP Software
+fingerprint:
+  en: Fingerprint
+  nl: Vingerafdruk
+  nds: Vingerofdruk
diff --git a/_includes/footer.html b/_includes/footer.html
new file mode 100644 (file)
index 0000000..9516ee3
--- /dev/null
@@ -0,0 +1,8 @@
+               <footer>
+                       <span style="font-size: 0.75em">
+                       Valid HTML 5 and optimized for screen readers.<br />
+                       Best viewed with a screen resolution at least &ge;640x480 or at
+                       least &ge;80x24 text mode in one of <a href="https://en.wikipedia.org/wiki/List_of_web_browsers">these browsers.</a><br />
+                       Powered by <a href="https://jekyllrb.com">Jekyll</a><br />
+                       </span>
+               </footer>
diff --git a/_includes/head.html b/_includes/head.html
new file mode 100755 (executable)
index 0000000..ed612a0
--- /dev/null
@@ -0,0 +1,20 @@
+  <head>
+    <meta charset="utf-8"/>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1"/>
+
+    <title>{% if page.title %}{{ page.title | escape }} / {{ site.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title>
+    <meta name="description" content="{% if page.description %}{{ page.description | strip_html | strip_newlines }}{% else %}{{ site.description }}{% endif %}"/>
+
+{% include localizations.html %}
+
+    <style>
+    .current {
+      color: red;
+    }
+    .current a {
+      color: red;
+    }
+    </style>
+
+  </head>
\ No newline at end of file
diff --git a/_includes/header.html b/_includes/header.html
new file mode 100644 (file)
index 0000000..1d4c8d7
--- /dev/null
@@ -0,0 +1,9 @@
+    <header>
+{% include title.html %}
+
+      <nav>
+
+{% include language-switch.html %}
+      </nav>
+
+    </header>
diff --git a/_includes/index_header.html b/_includes/index_header.html
new file mode 100644 (file)
index 0000000..85ccbe6
--- /dev/null
@@ -0,0 +1,4 @@
+{% include img.html alt='A photo of Mart Lubbers' img='p' %}<br />
+{{ site.data.snippets.currentfunction[page.language] }}<br />
+<tt>mart@martlubbers.net</tt> (GPG: <a href="http://martlubbers.net/mart@martlubbers.net.asc" title="Fingerprint: 74FF FBF1 4758 273B 2F56  A30C A937 B7A1 AD3F EBE7" style="font-family:monospace">AD3FEBE7</a>)<br />
+<tt>mart@cs.ru.nl</tt>
diff --git a/_includes/language-switch.html b/_includes/language-switch.html
new file mode 100644 (file)
index 0000000..57cbfad
--- /dev/null
@@ -0,0 +1,53 @@
+                                       {{ site.data.snippets.languagename[page.language] }}:
+                                       {%- for language in site.data.snippets.languages %}
+                                               {%- if page.layout == 'page' %}
+                                                       {%- assign navigation_pages = site.pages
+                                                               | where: 'language_reference', page.language_reference
+                                                               | where: 'language', language[1].slug %}
+                                                       {%- if navigation_pages.size == 1 %}
+                                                               {%- for navigation_page in navigation_pages %}
+                                                                       {%- assign url = site.baseurl | append: navigation_page.url %}
+                                                               {%- endfor %}
+                                                       {%- else %}
+                                                               {%- assign navigation_pages = site.pages
+                                                                       | where: 'language_reference', site.fallback_page
+                                                                       | where: 'language', language[1].slug %}
+                                                               {%- for navigation_page in navigation_pages %}
+                                                                       {%- assign url = site.baseurl | append: navigation_page.url %}
+                                                               {%- endfor %}
+                                                       {%- endif %}
+
+                                               {%- elsif page.layout == 'post' %}
+                                                       {%- assign navigation_posts = site.posts
+                                                               | where: 'language_reference', page.language_reference
+                                                               | where: 'language', language[1].slug %}
+                                                       {%- if navigation_posts.size == 1 %}
+                                                               {%- for navigation_post in navigation_posts %}
+                                                                       {%- assign url = site.baseurl | append: navigation_post.url %}
+                                                               {%- endfor %}
+                                                       {%- else %}
+                                                               {%- assign navigation_pages = site.pages
+                                                                       | where: 'language_reference', site.fallback_page
+                                                                       | where: 'language', language[1].slug %}
+                                                               {%- for navigation_page in navigation_pages %}
+                                                                       {%- assign url = site.baseurl | append: navigation_page.url %}
+                                                               {%- endfor %}
+                                                       {%- endif %}
+
+                                               {%- else %}
+                                                       {%- assign navigation_pages = site.pages
+                                                               | where: 'language_reference', site.fallback_page
+                                                               | where: 'language', language[1].slug %}
+                                                       {%- for navigation_page in navigation_pages %}
+                                                               {%- assign url = site.baseurl | append: navigation_page.url %}
+                                                       {%- endfor %}
+
+                                               {%- endif %}
+                                               {%- if language[1].slug == page.language %}
+                                                       <strong>
+                                               {%- endif %}
+                                                       <a href="{{ url }}">{{ language[1].value }}</a>
+                                               {%- if language[1].slug == page.language %}
+                                                       </strong>
+                                               {%- endif %}
+                                       {%- endfor %}
diff --git a/_includes/localizations.html b/_includes/localizations.html
new file mode 100755 (executable)
index 0000000..4dd05d5
--- /dev/null
@@ -0,0 +1,24 @@
+{%- if page.layout == 'page' %}
+  {%- assign localized_pages = site.pages
+    | where: 'language_reference', page.language_reference
+    | sort: 'language' %}
+  {%- for localized_page in localized_pages %}
+    <link rel="alternate" hreflang="{{ localized_page.language }}" href="{{ site.baseurl }}{{ localized_page.url }}" />
+  {%- endfor %}
+
+{%- elsif page.layout == 'post' %}
+  {%- assign localized_posts = site.posts
+  | where: 'language_reference', page.language_reference
+  | sort: 'language' %}
+  {%- for localized_post in localized_posts %}
+    <link rel="alternate" hreflang="{{ localized_post.language }}" href="{{ site.baseurl }}{{ localized_post.url }}" />
+  {%- endfor %}
+
+{%- elsif page.layout == 'index' %}
+  {%- assign localized_pages = site.pages
+    | where: 'language_reference', site.fallback_page
+    | sort: 'language' %}
+  {%- for localized_page in localized_pages %}
+    <link rel="alternate" hreflang="{{ localized_page.language }}" href="{{ site.baseurl }}{{ localized_page.url }}" />
+  {%- endfor %}
+{%- endif %}
\ No newline at end of file
diff --git a/_includes/navigation.html b/_includes/navigation.html
new file mode 100644 (file)
index 0000000..6bb9f3d
--- /dev/null
@@ -0,0 +1,12 @@
+        <ul>
+          {%- assign navigation_pages = site.pages
+            | where: 'layout', 'page'
+            | where: 'language', page.language
+            | where: 'published', true
+            | sort: 'order' %}
+          {%- for navigation_page in navigation_pages %}
+          <li{%- if navigation_page.title == page.title %} class="current"{%- endif %}>
+            <a href="{{ site.baseurl }}{{ navigation_page.url }}">{{ navigation_page.title }}</a>
+          </li>
+          {%- endfor %}
+        </ul>
\ No newline at end of file
diff --git a/_includes/posts.html b/_includes/posts.html
new file mode 100755 (executable)
index 0000000..d06794a
--- /dev/null
@@ -0,0 +1,11 @@
+        <ul>
+          {%- assign posts = site.posts
+            | where: 'language', page.language
+            | where: 'published', true
+            %}
+          {%- for post in posts %}
+            <li>
+              <a href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
+            </li>
+          {%- endfor %}
+        </ul>
\ No newline at end of file
diff --git a/_includes/title.html b/_includes/title.html
new file mode 100644 (file)
index 0000000..562c317
--- /dev/null
@@ -0,0 +1,13 @@
+      {%- if page.language == site.default_language %}
+        {%- assign url = site.baseurl | append: '/'%}
+      {%- else %}
+        {%- assign navigation_pages = site.pages
+          | where: 'language_reference', site.fallback_page
+          | where: 'language', page.language %}
+        {%- for navigation_page in navigation_pages %}
+          {%- assign url = site.baseurl | append: navigation_page.url %}
+        {%- endfor %}
+      {%- endif %}
+      <h1>
+        <a href="{{ url }}" {%- if page.url == '/' %} class="current"{%- endif %}>{{ site.title }}</a>
+      </h1>
\ No newline at end of file
diff --git a/_includes/toc.html b/_includes/toc.html
new file mode 100644 (file)
index 0000000..593a934
--- /dev/null
@@ -0,0 +1,4 @@
+#### Table of Contents
+
+* -
+{:toc}
diff --git a/_includes/toc.md b/_includes/toc.md
new file mode 100644 (file)
index 0000000..593a934
--- /dev/null
@@ -0,0 +1,4 @@
+#### Table of Contents
+
+* -
+{:toc}
similarity index 78%
rename from _layouts/default.html
rename to _layouts/index.html
index 0d529fa..c3fab70 100644 (file)
@@ -4,6 +4,7 @@
                <title>{{ page.title }}</title>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                <meta name="viewport" content="width=device-width, initial-scale=1" />
+               {% include localizations.html %}
        </head>
        <body>
                <header>
                                {% endif %}
                                {{ page.title }}
                         </h1>
+                       {% include language-switch.html %}
 
                        {% if page.collection == "posts" %}
                        <a href="/foerageer.html">Terug naar het blog</a>
                        {% endif %}
-                       {% if page.name != "index.md" %}
+                       {% if page.layout != "index" %}
                        <a href="/">Back to home/terug naar home</a>
                        {% endif %}
+
                </header>
 
+               {% include index_header.html %}
+
                <section>
                {{ content }}
                </section>
 
                <footer>
+                       <a href="#{{ snippets.top[page.language] | slugify: 'latin' }}">{{ site.data.snippets.back[page.language] }}</a><br />
                        <span style="font-size: 0.75em">
                        Valid HTML 5 and optimized for screen readers.<br />
                        Best viewed with a screen resolution at least &ge;640x480 or at
                        least &ge;80x24 text mode in one of <a href="https://en.wikipedia.org/wiki/List_of_web_browsers">these browsers.</a><br />
                        Powered by <a href="https://jekyllrb.com">Jekyll</a><br />
-                       {% unless page.collection == "posts" %}
+                       {% unless page.layout == "index" %}
                        Last updated: {{ page.date |  date: '%Y-%m-%d' }}<br />
                        {% endunless %}
                        </span>
similarity index 100%
rename from _layouts/posts.html
rename to _layouts/post.html
diff --git a/_posts/2021-06-12-look-zonder-look.md b/_posts/2021-06-12-look-zonder-look.md
deleted file mode 100644 (file)
index 331976e..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
----
-title: Groene asperge daslook risotto zonder look-zonder-look
----
-
-Onze eerste wildpluk experiment was daslook. Op de wildplukwijzer stonden
-diverse plekken aangegeven in onze woonplaats waar daslook te oogsten was. Ook
-is de geur onmiskenbaar en kan er eigenlijk niets mis gaan. Eenmaal op locatie
-bleek dit ook het geval. Een weeïge uienlucht verried de aanwezigheid en voor
-wij het wisten had ik genoeg afgesneden voor het recept dat we [hier][0]
-gevonden hadden. Het was heerlijk... Het begin van onze wildpluk avontuur was
-perfect.
-
-{% include img.html img="2021-06-12-bloei" alt="Look-zonder-look in bloed" %}{% include img.html img="2021-06-12-blad" alt="Look-zonder-look als blad" %}
-
-<!--more-->
-
-Een maand en wat ervaring later dachten we dat we wel kon experimenteren. De
-daslook is uitgebloeid en niet zo lekker meer dus we moesten een alternatief
-bedenken. Op de daslook plekken konden we nog wel wat vinden dus we wilden de
-daslook aanvullen met een ander gewas. Nou staat het in onze woonplaats ook vol
-met look-zonder-look, en we hadden hier al vaak aan geroken en rauwe blaadjes
-geproefd dus dat was een recept voor success.
-
-Niets was minder waar... Phillips schrijft over look-zonder-look:
-
-> Pluk de bovenste bladeren en toppen in maart of april als de bloemen in knop
-> zijn. Vroeger werk look-zonder-look algemeen gebruikt in salades en als
-> toekruid. William Coles schreef in 1657, dat het werd gegeten 'door velen op
-> het platteland als saus bij hun gezouten vis. --- Puur Natuur op tafel -
-> Roger Phillips (pg. 22)
-
-Mijn eerste ingeving was dat _Als saus bij hun gezouten vis_ een warme saus
-betrof dus we hebben vrolijk de helft van de daslook vervangen door
-look-zonder-look. Al bij de eerste hap merkten we dat er iets niet goed was.
-Look-zonder-look is van nature ietwat bitter maar door verhitting wordt de
-bitterheid versterkt en verdwijnt alle lokige smaak.  De risotto smaakte prima
-mits je geen bladen look-zonder-look op je lepel had liggen.
-
-Later vonden we diverse wisselende bronnen. De [een][1] beweert dat het gekookt
-prima is, de [an][2][der][3] stelt dat het echt alleen rauw gegeten moet
-worden. Wij scharen ons achter die tweede groep.
-
-## Daslook Groene Asperge Risotto
-
-### Benodigdheden (4 personen)
-
-- 1 l bouillon
-- 300g groene asperges
-- 1el olijfolie
-- 150g daslook
-- 250g risotto rijst
-- 1dl witte wijn
-- 60g parmigiano reggiano
-- peper
-
-### Bereiding
-
-Snijd de houtige onderkant van de asperges en kook ze gaar in de bouillon in 3
-minuten.
-
-Hak de steeltjes van de daslookbladeren fijn en fruit deze 2 minuutjes aan met 1el olie in een pan met een dikke bodem.
-
-Voeg de rijst toe en bak mee tot het glazig geworden is
-
-Blus af met de wijn en laat inkoken. Telkens als het vocht ingekookt is voeg je
-wat bouillon toe tot de rijst weer onder staat (±25 minuten).
-
-Voeg de grofgesneden daslook bladeren, de geraspte kaas en de fijngesneden
-asperges toe, zet het vuur uit en schep om.
-
-Garneer af met peper uit de molen en eventueel een daslook bloemetje.
-
-{% include img.html img="2021-06-12-groente" alt="Verse geoogste daslook en look-zonder-look" %}
-
-[0]: https://www.bijnanetzolekkeralsthuis.nl/2016/05/risotto-met-daslook-en-groene-asperges.html?m=1)had ik 
-[1]: https://www.permacultuurnederland.org/planten.php?zoek=&laag=&functieSER=Z24=&pid=167&page=20
-[2]: http://www.natuur-keuken.nl/eten/look-zonder-look-de-smaak-van-knoflook-van-een-plant-uit-de-koolfamilie/
-[3]: http://www.nederlands-dis.nl/basis/eten-uit-de-natuur/uit-de-natuur-look-zonder-look/
-[i0]: /assets/2021-06-12-bloei-thumb.jpeg
-[i0l]: /assets/2021-06-12-bloei.jpeg
-[i1]: /assets/2021-06-12-blad-thumb.jpg
-[i1l]: /assets/2021-06-12-blad.jpg
-[i2]: /assets/2021-06-12-groente-thumb.jpeg
-[i2l]: /assets/2021-06-12-groente.jpeg
diff --git a/_posts/2021-06-14-zomereikwijn.md b/_posts/2021-06-14-zomereikwijn.md
deleted file mode 100644 (file)
index ca1e9c1..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Zomereikwijn
----
-
-<!--more-->
-
-## Zomereikwijn
-
diff --git a/_posts/2021-06-16-aalbessen-krentjesjam.md b/_posts/2021-06-16-aalbessen-krentjesjam.md
deleted file mode 100644 (file)
index 2e0d3dd..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: Aalbessen krentjesjam
----
-
-April en mei mogen dan koud geweest zijn. Juni heeft dit al meer dan goed
-gemaakt waardoor ook de aalbessen nu rijp zijn.
-Juni is normaliter ook de tijd van de aalbessen, die hier in de tuin staan maar
-ook uitgebreid wild te vinden zijn. Naast aalbessen zijn de krentjes/besjes van
-de krentenboom ook rijp op dit moment.
-
-{% include img.html alt="Krentjes foto 1" img="2021-06-16-krentjes1" %}{% include img.html alt="Krentjes foto 1" img="2021-06-16-krentjes2" %}
-
-Krentenbomen zijn geïmporteerd uit Amerika maar is al tijden een boompje die
-veel in Europa voor komt. Zo ook rond de universiteit Nijmegen en in Almere.
-De oogst van de krentenboompjes is meestal beperkt omdat de vogels er ook dol
-op zijn. Toch heb ik best een doosje vol kunnen scoren bij de boompjes in
-Nijmegen en de ---pas ontdekt toen ik terug kwam uit Nijmegen--- bomen in
-Almere hangen ook goed vol. De krentjes zijn lekker om zo te eten maar kunnen
-ook in jam en gebak gebruikt worden. Tijdens het verzamelen riep een fietser
-nog wel: "er zitten beestjes in!" maar na grondig onderzoek en proeven bleken
-de krenten prima en de aalbessen krentjes jam evengoed.
-
-<!--more-->
-
-## Aalbessen krentjesjam
-
-{% include img.html alt="Aalbessen" img="2021-06-16-aalbessen" %}{% include img.html alt="Jam inkoken" img="2021-06-16-pan" %}{% include img.html alt="Drie potjes jam" img="2021-06-16-potjes" %}
-
-### Benodigdheden (ruim 3 potjes a 350ml)
-
-- 400g aalbessen
-- 100g krentjes
-- 500g geleisuiker
-- citroensap
-
-### Bereiding
-
-Volg het algemene jam recept maar laat het wat langer koken (zie: http://oogstenzonderzaaien.nl/wiki/Krentenboom#Jam).
diff --git a/_posts/en/2021-01-01-hello-world.markdown b/_posts/en/2021-01-01-hello-world.markdown
new file mode 100644 (file)
index 0000000..406ee79
--- /dev/null
@@ -0,0 +1,14 @@
+---
+layout: post
+
+title: Hello World
+description: Hello World.
+date: 2021-01-01 00:00:00
+
+language: en
+language_reference: world
+
+published: true
+---
+
+Hello world.
\ No newline at end of file
diff --git a/_posts/en/2021-01-02-hello-mars.markdown b/_posts/en/2021-01-02-hello-mars.markdown
new file mode 100644 (file)
index 0000000..8285db4
--- /dev/null
@@ -0,0 +1,14 @@
+---
+layout: post
+
+title: Hello Mars
+description: Hello Mars.
+date: 2021-01-02 00:00:00
+
+language: en
+language_reference: mars
+
+published: true
+---
+
+Hello Mars.
\ No newline at end of file
diff --git a/archive/lejos-ubuntu.html b/archive/lejos-ubuntu.html
deleted file mode 100644 (file)
index 8c1a73c..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<html>
-       <head>
-               <title>Install LeJOS on Ubuntu</title>
-               <link href="style.css" rel="stylesheet" type="text/css">
-       </head>
-       <body>
-               <h3>INFO</h3>
-               <p><a href="http://lejos.org">LeJOS</a> is an alternative operating system and programming environment for the LEGO NXT robots. LeJOS 
-               uses java as main programming languages and makes it thus very easy to program object-oriented and reuse old java code.</p>
-
-               <h3>INSTALLATION</h3>
-               <pre>
-# apt-get update
-# apt-get install libusb-dev gcj libbluetooth-dev ant
-$ wget http://downloads.sourceforge.net/project/lejos/lejos-NXJ/0.9.1beta/leJOS_NXJ_0.9.1beta-3.tar.gz?
-r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flejos%2Ffiles%2Flejos-NXJ%2F0.9.1beta%2F&amp;ts=1356791160&amp;use_mirror=heanet
-$ tar -zxvf leJOS_NXJ_0.9.1beta-3.tar.gz 
-$ mv leJOS_NXJ_0.9.1beta-3 ~/software/lejos_nxj (or something)
-$ cd ~/software/lejos_nxj/bin
-$ chmod +x nxj*
-$ cd ~/software/lejos_nxj/build
-$ ant
-$ export PATH=/home/user/software/lejos_nxj/bin:$PATH (or put in /etc/environment)
-# touch /etc/udev/rules.d/70-lego.rules
-# echo "BUS==\"usb\", SYSFS&#123;idVendor&#125;==\"03eb\", GROUP=\"lego\", MODE=\"0660\"" &lt;&lt; /etc/udev/rules.d/70-lego.rules
-# echo "BUS==\"usb\", SYSFS&#123;idVendor&#125;==\"0694\", GROUP=\"lego\", MODE=\"0660\"" &lt;&lt; /etc/udev/rules.d/70-lego.rules 
-$ groupadd lego
-$ useradd -G lego user</pre>
-               <br />
-               <p>Remember to run eclipse as root(don't know why yet)</p> 
-       </body>
-</html>
diff --git a/archive/nsa-dropbox.html b/archive/nsa-dropbox.html
deleted file mode 100644 (file)
index 921e78e..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<html>
-       <head>
-               <title>Use any untrusted cloud storage with encryption</title>
-               <link href="style.css" rel="stylesheet" type="text/css">
-       </head>
-       <body>
-               <h3>PREREQUISITES</h3>
-               Install encfs and fuse<br />
-<pre># apt-get install fuse encfs</pre>
-               Install a cloud service(copy.com used here)(assuming ~/bin is in your path and running on a 64bits machine)<br />
-               When using a different architecture just change x86_64 to x86 or armv6h in the client install script<br />
-               If ~/bin is not in your path add to your bashrc(example using user: test): 
-<pre>PATH=$PATH:/home/test/bin</pre>
-               Download and install the copy client for linux
-<pre>
-$ wget https://copy.com/install/linux/Copy.tgz
-$ mkdir ~/bin/copy; tar -xf Copy.tgz -C ~/bin/copy
-$ ln -s ~/bin/copy/x86_64/CopyConsole ~/bin/CopyConsole
-</pre>
-               <h3>SETUP</h3>
-               <p>Make sure your user is in the fuse group and setup the encfs share by doing this:
-<pre>
-$ mkdir ~/.copy.encr ~/copy
-$ encfs ~/.copy.encr ~/copy
-</pre>
-               When they ask use option p for paranoia and pick a password.<br />
-               Create an account on copy.com and setup the client by typing this command
-<pre>$ CopyConsole -u=the_mail_you_signed_up_with -r=/home/your_linux_username/.copy.encr -p=the_password_you_signed_up_with</pre>
-               This creates a setup that does this automatically in the future<br />
-               Let the daemon and the encfs autostart when you and only you are logged in by adding this to ~/.bashrc
-<pre>
-if ! mountpoint -q ~/copy; then
-    encfs ~/.copy.encr ~/copy
-fi
-if ! pidof CopyConsole >> /dev/null; then
-    CopyConsole -daemon 2>&1 1>/dev/null
-fi
-</pre>
-               Congratulations your setup is working. <br />
-               When you want to stop the daemon you can kill the pid given by ~/.copy.pid.<br />
-               From now on your computer or server will ask one time for you password when the first bash starts in your account.</p>
-
-               <h3>NOTES</h3>
-               <p>This could work with any cloud service, just mount the folder it wil sync first with encfs</p>
-       </body>
-</html>
diff --git a/archive/thin.html b/archive/thin.html
deleted file mode 100644 (file)
index 9d6c17b..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE html>
-<html>
-       <head>
-               <title>HP t5710 as a retro machine</title>
-               <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-               <meta name="viewport" content="width=device-width, initial-scale=1" />
-       </head>
-       <body>
-               <h2>Hardware</h2>
-               <p>Detailed info can be found <a href="http://www.parkytowers.me.uk/thin/hp/t5710/efficeon.shtml">here</a></p>
-
-               <h2>Drivers and software used</h2>
-               <ul>
-                       <li>Dos
-                               <ul>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/dos/oakcdrom.zip">Oakcdrom</a> - General purpose CDROM driver</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/dosapps/PKUNZIP.EXE">PKUNZIP</a> - Unzip tool for dos</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/dos/sup.zip">MSDOS 6.22 Supplemental disk</a> - Supplemental utilities(such as dvorak keyboard layout</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/dosapps/shsucd.zip">SHSUCD</a> - Toolkit for mounting ISO files in DOS</li>
-                                       <li><a href="#">VT6105 Packet driver</a> - DOS Packet diver, this has yet to appear</li>
-                                       <li><a href="#">mTCP</a> - DOS TCPIP stack, this has yet to appear</li>
-                               </ul>
-                       </li>
-                       <li>Windows 3.11 for Workgroups
-                               <ul>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w311/w311.zip">Installation</a> - Flattened installation floppies</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w311/w311tcp.zip">W311 TCPIP stack</a> - TCPIP stack</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w311/VT6105.zip">VT6105</a> - Network card</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w311/SB16W3X.ZIP">Sound blaster</a> - Sound blaster driver(I couldn't get it to work with the emulation mode from the Live!</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w311apps/IE3.3.ZIP">Internet explorer 3.3</a> - Don't install the dialup functionality if you want to use it with TCP/IP</li>
-                               </ul>
-                       </li>
-                       <li>Windows 95
-                               <ul>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w95/cd.zip">Installation</a> - Installation CD</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w95/FIX95CPU.ZIP">CPU Fix</a> - This fixes the protection error due to the too high clockspeed</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w95/imsia.exe">Microsoft installerr</a> - Needed for some installations like daemon tools</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w95/ie55sp2.exe">Internet Explorer 5.5SP2</a> - IE 5.5, this is also a windows 95 update</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w95/sblw9xup.exe">Sound blaster live driver</a> - This includes SB16 emulation on windows level</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w95/vinyl_v700b.zip">AC 97 driver</a> - While this does make the system recognize the chip I couldn't get the audio to work</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w95/ali.zip">Chipset drivers</a> - Make sure you have a PS2 keyboard or mouse attached because this will recognize the usb root hubs and will disable BIOS legacy PS2 emulation</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w95/XUSBSUPP.ZIP">USB Stack</a> - This also includes support for usb thumbdrive, floppy and cd drivers, however UDF CD's are not supported</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w95apps/daemon347.exe">Daemon tools</a> - Easy tool to mount ISO's. This requires the IE5.5 update</li>
-                                       <li><a href="ftp://ygdrassil.martlubbers.net/w95apps/winzip70.exe">Winzip 7.0</a> - Handy GUI zip tool, I couldn't get PKUNZIP to work properly in 95</li>
-                               </ul>
-                       </li>
-               </ul>
-               
-               <h2>Iteration 1: Microsoft DOS 6.22</h2>
-               <p>I found out that the network card included in this model had drivers for
-               all os'es including dos and windows 3.11. Thus I started to try freedos and
-               friends on this box. This all worked fine but I couldn't get it to boot
-               from the flash driver. The MBR was never installed correctly from a
-               bootable USB stick. However after I picked up a USB floppy drive and
-               installed from there it worked fine. Freedos or MSDOS 6.22 were working
-               fine. Unfortunatly, networking was the only thing that worked.</p>
-
-               <h2>Iteration 2: Windows 3.11 for Workgroups</h2>
-               <p>After doing some research I thought it would be smart to install Windows
-               3.11 alongside the MSDOS 6.22. Very soon the hard disk space ran out so I
-               got a IDE to compact flash adapter. This all worked but gave a lot of IO
-               erors so I resorted back to an old laptop IDE drive that was generously
-               gifted.</p>
-
-               <p>Installation of all the hardware went fine, however, the on board sound
-               card didn't have drivers available for windows 3.11 so I started to hunt
-               down a PCI Sound Blaster since there was a PCI slot available. After
-               some time I found a Sound Blaster Live! which was the last card to include
-               legacy sound blaster emulation. This worked for one game(skyroads) and
-               did not work for others. Also, in windows the sound card was not
-               recognized. This all led to the realization that I had to install windows
-               95 since that comes with sound blaster emulation included.</p>
-
-               <h2>Iteration 3: Windows 95</h2>
-               <p>Installing Windows 95 went like a breeze since it supports hard disk
-               installation and did not even required me to format anything. After
-               installing the clock speed fix everything seemed to work. Installing the
-               drivers however... After a lot of messing around I finally got almost
-               everything working: sound via the sound blaster live!, network with the
-               onboard card, usb with the usbsupp patch from microsoft and even some DOS
-               games were recognizing the sound card via the built-in emulation.
-               Unfortunatly I could only use the keyboard OR mouse since through
-               installing the USB support the BIOS's legacy PS2 emulation stopped and
-               there is only 1 PS2 port on the device. For this I've ordered a PS2 to
-               Serial converter for my mouse to be able to use both since there are no USB
-               HID drivers for Windows 95 as far as I know. Also when I tried to get my
-               ZIP drive to work on the parallel port it rendered the windows installation
-               unbootable since the interrupts conflicted. This still has to be fixed.
-               </p>
-       </body>
-</html>
diff --git a/archive/wlan-debian.html b/archive/wlan-debian.html
deleted file mode 100644 (file)
index 8f35522..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<html>
-       <head>
-               <title>Automatic wifi without heavy network manager on debian</title>
-               <link href="style.css" rel="stylesheet" type="text/css">
-       </head>
-       <body>
-               <h3>PREREQUISITES</h3>
-               <p>Install wpa_supplicant and wireless-tools(standard in most distros).<br />
-<pre># apt-get install wireless-tools wpa_supplicant</pre>
-               <br />
-               Identify your wifi controller. This can usually be found by typing<br />
-               <pre>$ iwconfig</pre>
-               <br />
-               Locate all the config files for your desired networks. Mine are placed in /etc/network/wifi/<SSID>.conf. More info on creating configs in the end of the file.</p>
-
-               <h3>INSTALLATION</h3>
-               <p>Create the SSID selection script.<br />
-               I've put mine in /etc/network/wifi/select<br />
-<pre>
-#!/bin/sh
-ifconfig [INTERFACE] up 1> /dev/null && { iwlist [INTERFACE] scan | grep -o "\".*\"" | tr -d \'\" | sort | uniq; grep -o "map\ .*" /etc/network/interfaces | awk '{print $2}'; } | sort | uniq -d | head -1
-</pre>
-               <br />
-               Make it executable.<br />
-               <pre># chmod +x /etc/network/wifi/select</pre>
-               <br />
-               Change in /etc/network/interfaces the [INTERFACE] specification.<br />
-<pre>          
-mapping [INTERFACE]
-       script /etc/network/wifi/select
-       map [SSID]1
-       map [SSID]2
-       ..
-       map eduroam
-
-iface [SSID]1 inet dhcp
-wpa_conf /etc/network/wifi/[SSID]1.conf
-
-iface [SSID]2 inet dhcp
-wpa_conf /etc/network/wifi/[SSID]2.conf
-
-..
-
-iface eduroam inet dhcp
-wpa_conf /etc/network/wifi/eduroam.conf
-</pre>
-               <br />
-               You're finished! Restart the network service with:<br />
-               <pre># service networking restartworking restart</pre>
-               And you can connect to a available network by running this command.<br />
-               <pre># ifup [INTERFACE]</pre>
-               If you want to force an [SSID] you can run:<br />
-               <pre># ifup [INTERFACE]=[SSID]</pre></p>
-
-               <h3>CONFIG CREATION</h3>
-               <p>Standard wpa2 network configs can be created by running:<br />
-               <pre># wpa_passphrase [SSID] [PASSWORD] > /etc/network/wifi/[SSID].conf</pre>
-               <br />
-               For eduroam you can use this example:<br />
-<pre>          
-network={
-       ssid="eduroam"
-       key_mgmt=WPA-EAP
-       eap=TTLS
-       phase2="auth=MSCHAPV2"
-       ca_cert="/etc/ssl/certs/AddTrust_External_Root.pem"
-       identity="login@university.nl"
-       scan_ssid=1
-       password="YOURPASSWORD"
-}
-</pre>
-               If you don't want your password in a config you can also use a hash generated by this command. (Don't forget to remove it from ~/.bash_history afterwards)<br />
-<pre>$ echo -n [PASSWORD] | iconv -t UTF16LE | openssl md4</pre>
-               You should replace the plaintext string with: "hash:[HASHOUTPUT]"<br />
-               note: don't use quotes.</p>
-               <footer>update 2014-03-04: fixed a few small errors concerning hashing and config files</footer>
-       </body>
-</html>
diff --git a/archive/youtube-term.html b/archive/youtube-term.html
deleted file mode 100644 (file)
index 6f69543..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>
-       <head>
-               <title>Play youtube videos on a headless server</title>
-               <link href="style.css" rel="stylesheet" type="text/css">
-       </head>
-       <body>
-               Download the get_flash_videos latest version:
-<pre>$ git clone https://github.com/monsieurvideo/get-flash-videos.git</pre>
-               Install the dependencies:
-<pre># apt-get install perl libmodule-find-perl libwww-mechanize-perl vlc</pre>
-               Install the get_flash_videos script:
-<pre>
-$ cd get-flash-videos/
-$ make
-$ make install
-</pre>
-               Create a small script that combines these with vlc by adding this to bashrc or a shellscript in PATH the flag -A alsa could be different(when usig pulseaudio it can be omitted):
-<pre>
-function ytview {
-       if [ "$#" -ne "1" ]; then
-               echo "usage $0 yturl"
-       else
-               get_flash_videos -q -f - $1 | cvlc -A alsa -V aa -
-       fi
-}
-</pre>
-               Play a video by typing:
-<pre>$ ytview http://www.youtube.com/watch?v=QAUzWtLMnU0</pre>
-               Some videos can't be downloaded, but most videos will just work.
-       </body>
-</html>
diff --git a/dvorak.md b/dvorak.md
deleted file mode 100644 (file)
index 5791c60..0000000
--- a/dvorak.md
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: Dvorak resources
-date: 2021-06-16
----
-
-Since about 2011 I've started using dvorak as my main keyboard layout and like the efficiency compared to QWERTY.
-
-## Table of contents
-
-- [Notes](#notes)
-       - [Note to self (2015-10-30)](#note-to-self-2015-10-30)
-- [Dosbox](#dosbox)
-       - [Update (2020-06-11)](#update-2020-06-11)
-- [Dos](#dvorak-in-dos)
-- [Russian (2014-10-07)](#russian-2014-10-07)
-       - [Update (2015-04-16)](#update-2015-04-16)
-
-## Notes
-### Note to self (2015-10-30)
-Note to self: x-keyboard-config on arch linux overwrites the
-file where the dvorak russian keymap is stored and by that the
-xserver fails to set the keymap, returning to default qwerty.
-This can be solved by loading the keymap from a custom
-location? Or maybe to pin the file so that the package manager
-doesn't overwrite it?
-
-## Dosbox
-Dvorak is also usable in dosbox via a custom mapper file that your can find [here](files/dvorak-0.74.map)
-You can enable the layout by saving this in your settings directory and `mapperfile=dvorak-0.74.map` to your sdl section of your dosbox config.
-
-### Update (2020-06-11)
-Dvorak is now built in as a keymap in dosbox.
-You can enable the layout by running `KEYB dv103` in a dosbox
-prompt or setting the following in your dosbox config file.
-
-```
-[dos]
-keyboardlayout=dv103
-```
-
-## Dvorak in dos
-To use dvorak in dos download this [file](files/dvorak_dos.tar) containing dvorak.com
-Transfer it to your C:\DOS folder for example and add this to your AUTOEXEC.bat:
-
-```
-C:\DOS\DVORAK.COM
-```
-
-When your computer boots the program will say DVORAK is loaded and you're good to go
-
-The MS-DOS supplemental disk also contains a dvorak keyboard layout. Install and put this in your AUTOEXEC.bat:
-```
-KEYB DV,,C:\DOS\DVORAK.SYS
-```
-
-## Russian (2014-10-07
-When learning russian I had to type some stuff in russian, as I found
-out that there was a phonetic keyboard I was excited but it didn't work on
-dvorak layout. So some guy named Oleg made a phonetic russian keyboard
-layout in dvorak and you can download it 
-[here](files/phonetic_dvorak.gz). When you want to use it you
-have to append the information from the file to
-`/usr/share/X11//xkb/symbols/ru`
-When you want to load it you can type 
-```
-setxkbmap -layout ru -variant phonetic_dvorak</pre>
-```
-
-### Update (2015-04-16)
-Since having to setup the keyboard after login can be useful if you
-don't have the rights to edit system configuration files on your system(eg.
-work) but it's not a durable solution for your own system. If you want to
-make these things semipermanent you can use the handy program called
-[localectl](http://www.freedesktop.org/software/systemd/man/localectl.html)
-which writes an xorg.conf.d/ file. In my specific case these are the
-commands to set the keymap for the console and for within X. For the
-console I only use normal dvorak whereas in X I want to be able to
-switch(with menu key) and use the right alt as compose key.
-
-```
-# localectl set-x11-keymap --no-convert dvorak,ru pc104 ,phonetic_dvorak compose:ralt,grp:menu_toggle
-# localectl set-keymap --no-convert dvorak
-```
diff --git a/en/home.md b/en/home.md
new file mode 120000 (symlink)
index 0000000..c82c633
--- /dev/null
@@ -0,0 +1 @@
+../index.md
\ No newline at end of file
diff --git a/files/3cows.pdf b/files/3cows.pdf
deleted file mode 100644 (file)
index 10205e6..0000000
Binary files a/files/3cows.pdf and /dev/null differ
diff --git a/files/alberts.pdf b/files/alberts.pdf
deleted file mode 100644 (file)
index 2dd4a3e..0000000
Binary files a/files/alberts.pdf and /dev/null differ
diff --git a/files/amlap15.pdf b/files/amlap15.pdf
deleted file mode 100644 (file)
index 6e46b71..0000000
Binary files a/files/amlap15.pdf and /dev/null differ
diff --git a/files/andrade.pdf b/files/andrade.pdf
deleted file mode 100644 (file)
index adcae1e..0000000
Binary files a/files/andrade.pdf and /dev/null differ
diff --git a/files/artz.pdf b/files/artz.pdf
deleted file mode 100644 (file)
index 6b0c650..0000000
Binary files a/files/artz.pdf and /dev/null differ
diff --git a/files/bachelor.pdf b/files/bachelor.pdf
deleted file mode 100644 (file)
index 14335c1..0000000
Binary files a/files/bachelor.pdf and /dev/null differ
diff --git a/files/boer.pdf b/files/boer.pdf
deleted file mode 100644 (file)
index 52b20ed..0000000
Binary files a/files/boer.pdf and /dev/null differ
diff --git a/files/böhm.pdf b/files/böhm.pdf
deleted file mode 100644 (file)
index 1ae36cf..0000000
Binary files "a/files/b\303\266hm.pdf" and /dev/null differ
diff --git a/files/crooijmans.pdf b/files/crooijmans.pdf
deleted file mode 100644 (file)
index 446fd50..0000000
Binary files a/files/crooijmans.pdf and /dev/null differ
diff --git a/files/dvorak-0.74.map b/files/dvorak-0.74.map
deleted file mode 100644 (file)
index ec69d28..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-hand_shutdown "key 290 mod1" \r
-hand_capmouse "key 291 mod1" \r
-hand_fullscr "key 13 mod2" \r
-hand_pause "key 19 mod2" \r
-hand_mapper "key 282 mod1" \r
-hand_speedlock "key 293 mod2" \r
-hand_recwave "key 287 mod1" \r
-hand_caprawmidi "key 289 mod1 mod2" \r
-hand_scrshot "key 286 mod1" \r
-hand_video "key 286 mod1 mod2" \r
-hand_decfskip "key 288 mod1" \r
-hand_incfskip "key 289 mod1" \r
-hand_cycledown "key 292 mod1" \r
-hand_cycleup "key 293 mod1" \r
-hand_caprawopl "key 288 mod1 mod2" \r
-hand_swapimg "key 285 mod1" \r
-key_esc "key 27"\r
-key_f1 "key 282"\r
-key_f2 "key 283"\r
-key_f3 "key 284"\r
-key_f4 "key 285"\r
-key_f5 "key 286"\r
-key_f6 "key 287"\r
-key_f7 "key 288"\r
-key_f8 "key 289"\r
-key_f9 "key 290"\r
-key_f10 "key 291"\r
-key_f11 "key 292"\r
-key_f12 "key 293"\r
-key_grave "key 96"\r
-key_1 "key 49"\r
-key_2 "key 50"\r
-key_3 "key 51"\r
-key_4 "key 52"\r
-key_5 "key 53"\r
-key_6 "key 54"\r
-key_7 "key 55"\r
-key_8 "key 56"\r
-key_9 "key 57"\r
-key_0 "key 48"\r
-key_minus "key 39"\r
-key_equals "key 93"\r
-key_bspace "key 8"\r
-key_tab "key 9"\r
-key_q "key 120"\r
-key_w "key 44"\r
-key_e "key 100"\r
-key_r "key 111"\r
-key_t "key 107"\r
-key_y "key 116"\r
-key_u "key 102"\r
-key_i "key 103"\r
-key_o "key 115"\r
-key_p "key 114"\r
-key_lbracket "key 45"\r
-key_rbracket "key 61"\r
-key_enter "key 13"\r
-key_capslock "key 301"\r
-key_a "key 97"\r
-key_s "key 59"\r
-key_d "key 104"\r
-key_f "key 121"\r
-key_g "key 117"\r
-key_h "key 106"\r
-key_j "key 99"\r
-key_k "key 118"\r
-key_l "key 112"\r
-key_semicolon "key 122"\r
-key_quote "key 113"\r
-key_backslash "key 92"\r
-key_lshift "key 304"\r
-key_lessthan "key 60"\r
-key_z "key 47"\r
-key_x "key 98"\r
-key_c "key 105"\r
-key_v "key 46"\r
-key_b "key 110"\r
-key_n "key 108"\r
-key_m "key 109"\r
-key_comma "key 119"\r
-key_period "key 101"\r
-key_slash "key 91"\r
-key_rshift "key 303"\r
-key_lctrl "key 306"\r
-key_lalt "key 308"\r
-key_space "key 32"\r
-key_ralt "key 307"\r
-key_rctrl "key 305"\r
-key_printscreen "key 316"\r
-key_scrolllock "key 302"\r
-key_pause "key 19"\r
-key_insert "key 277"\r
-key_home "key 278"\r
-key_pageup "key 280"\r
-key_delete "key 127"\r
-key_end "key 279"\r
-key_pagedown "key 281"\r
-key_up "key 273"\r
-key_left "key 276"\r
-key_down "key 274"\r
-key_right "key 275"\r
-key_numlock "key 300"\r
-key_kp_divide "key 267"\r
-key_kp_multiply "key 268"\r
-key_kp_minus "key 269"\r
-key_kp_7 "key 263"\r
-key_kp_8 "key 264"\r
-key_kp_9 "key 265"\r
-key_kp_plus "key 270"\r
-key_kp_4 "key 260"\r
-key_kp_5 "key 261"\r
-key_kp_6 "key 262"\r
-key_kp_1 "key 257"\r
-key_kp_2 "key 258"\r
-key_kp_3 "key 259"\r
-key_kp_enter "key 271"\r
-key_kp_0 "key 256"\r
-key_kp_period "key 266"\r
-jbutton_0_0 \r
-jbutton_0_1 \r
-jaxis_0_1- \r
-jaxis_0_1+ \r
-jaxis_0_0- \r
-jaxis_0_0+ \r
-jbutton_0_2 \r
-jbutton_0_3 \r
-jbutton_1_0 \r
-jbutton_1_1 \r
-jaxis_0_2- \r
-jaxis_0_2+ \r
-jaxis_0_3- \r
-jaxis_0_3+ \r
-jaxis_1_0- \r
-jaxis_1_0+ \r
-jaxis_1_1- \r
-jaxis_1_1+ \r
-jbutton_0_4 \r
-jbutton_0_5 \r
-jhat_0_0_0 \r
-jhat_0_0_3 \r
-jhat_0_0_2 \r
-jhat_0_0_1 \r
-mod_1 "key 306" "key 305" \r
-mod_2 "key 308" "key 307" \r
-mod_3 \r
diff --git a/files/dvorak_dos.tar b/files/dvorak_dos.tar
deleted file mode 100644 (file)
index 62f0309..0000000
Binary files a/files/dvorak_dos.tar and /dev/null differ
diff --git a/files/gc/GC8WNDQ.png b/files/gc/GC8WNDQ.png
deleted file mode 100644 (file)
index a29b58a..0000000
Binary files a/files/gc/GC8WNDQ.png and /dev/null differ
diff --git a/files/gc/GC8WNDQ_klein.png b/files/gc/GC8WNDQ_klein.png
deleted file mode 100644 (file)
index ad4d7b4..0000000
Binary files a/files/gc/GC8WNDQ_klein.png and /dev/null differ
diff --git a/files/gc/GC8YY6C.png b/files/gc/GC8YY6C.png
deleted file mode 100644 (file)
index c20baea..0000000
Binary files a/files/gc/GC8YY6C.png and /dev/null differ
diff --git a/files/gc/GC8ZV56_a-c.png b/files/gc/GC8ZV56_a-c.png
deleted file mode 100644 (file)
index c3128bf..0000000
Binary files a/files/gc/GC8ZV56_a-c.png and /dev/null differ
diff --git a/files/gc/GC8ZV56_d-g.png b/files/gc/GC8ZV56_d-g.png
deleted file mode 100644 (file)
index fc9ae59..0000000
Binary files a/files/gc/GC8ZV56_d-g.png and /dev/null differ
diff --git a/files/gc/GC8ZV56_h-j.png b/files/gc/GC8ZV56_h-j.png
deleted file mode 100644 (file)
index 39f0c9b..0000000
Binary files a/files/gc/GC8ZV56_h-j.png and /dev/null differ
diff --git a/files/ifl18.pdf b/files/ifl18.pdf
deleted file mode 100644 (file)
index 3b4ed94..0000000
Binary files a/files/ifl18.pdf and /dev/null differ
diff --git a/files/ifl19.pdf b/files/ifl19.pdf
deleted file mode 100644 (file)
index 7d626db..0000000
Binary files a/files/ifl19.pdf and /dev/null differ
diff --git a/files/iot20.pdf b/files/iot20.pdf
deleted file mode 100644 (file)
index 7fb9e1e..0000000
Binary files a/files/iot20.pdf and /dev/null differ
diff --git a/files/master.pdf b/files/master.pdf
deleted file mode 100644 (file)
index 445ca4e..0000000
Binary files a/files/master.pdf and /dev/null differ
diff --git a/files/phonetic_dvorak.gz b/files/phonetic_dvorak.gz
deleted file mode 100644 (file)
index d2708ac..0000000
Binary files a/files/phonetic_dvorak.gz and /dev/null differ
diff --git a/files/pympi_presentation2014.zip b/files/pympi_presentation2014.zip
deleted file mode 100644 (file)
index f7b563c..0000000
Binary files a/files/pympi_presentation2014.zip and /dev/null differ
diff --git a/files/rwdsl17.pdf b/files/rwdsl17.pdf
deleted file mode 100644 (file)
index 2ea5cec..0000000
Binary files a/files/rwdsl17.pdf and /dev/null differ
diff --git a/files/tfp20pres.pdf b/files/tfp20pres.pdf
deleted file mode 100644 (file)
index 704c1e0..0000000
Binary files a/files/tfp20pres.pdf and /dev/null differ
diff --git a/files/tt21.pdf b/files/tt21.pdf
deleted file mode 100644 (file)
index 5c084c4..0000000
Binary files a/files/tt21.pdf and /dev/null differ
diff --git a/files/veen.pdf b/files/veen.pdf
deleted file mode 100644 (file)
index 784db26..0000000
Binary files a/files/veen.pdf and /dev/null differ
diff --git a/foerageer.md b/foerageer.md
deleted file mode 100644 (file)
index 4191680..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: Foerageerheer
-date: 2021-06-14
-description: Dit blog dient als een plek om mijn wildplukervaringen te delen en als notitieblok voor mijzelf.
----
-Dit blog dient als een plek om mijn wildplukervaringen te delen en als
-notitieblok voor mijzelf.
-
-De meeste informatie haal ik uit de volgende bronnen:
-
-- Puur natuur op tafel --- Roger Phillips (ISBN: 902747737X)
-- Wildplukwiki van oogstenzonderzaaien --- <http://oogstenzonderzaaien.nl/wiki/Hoofdpagina>
-- Eetbare planten database van Permacultuur Nederland --- <https://www.permacultuurnederland.org/planten.php>
-- Nederlands-dis --- <https://nederlands-dis.nl/dis>
-
-<!--more-->
-
-[RSS feed](foerageer.xml)
-
-<ul>
-       {% for post in site.posts %}
-               <li>
-                       {{ post.date | date: '%Y-%m-%d' }}: <a href="{{ post.url }}">{{ post.title }}</a>
-                       {{ post.excerpt }}
-               </li>
-       {% endfor %}
-</ul>
diff --git a/foerageer.xml b/foerageer.xml
deleted file mode 100644 (file)
index be55f0a..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: null
----
-<?xml version="1.0" encoding="UTF-8" ?>
-<rss version="2.0">
-<channel>
-       {% assign blog = site.pages | where:'name','foerageer.md' %}
-       {% for page in blog limit:1 %}
-       <title>{{ page.title }}</title>
-       <description>
-                       {{ page.title }}:
-                       {{ page.description }}
-       </description>
-       <link>{{ page.url }}</link>
-       <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
-       {% endfor %}
-
-       {% for post in site.posts %}
-       <item>
-               <title>{{ post.title }}</title>
-               <link>
-                       {{ post.url | prepend: site.url }}
-               </link>
-               <description>
-                       {{ post.excerpt }}
-               </description>
-               <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
-               <guid>
-                       {{ post.url | prepend: site.url }}
-               </guid>
-       </item>
-       {% endfor %}
-</channel>
-</rss>
diff --git a/griezels/achtergronden/marble1.jpg b/griezels/achtergronden/marble1.jpg
deleted file mode 100755 (executable)
index 6693c42..0000000
Binary files a/griezels/achtergronden/marble1.jpg and /dev/null differ
diff --git a/griezels/animaties/bar10.gif b/griezels/animaties/bar10.gif
deleted file mode 100755 (executable)
index 9286ab2..0000000
Binary files a/griezels/animaties/bar10.gif and /dev/null differ
diff --git a/griezels/animaties/hoofd1.gif b/griezels/animaties/hoofd1.gif
deleted file mode 100755 (executable)
index 81b3188..0000000
Binary files a/griezels/animaties/hoofd1.gif and /dev/null differ
diff --git a/griezels/boven.htm b/griezels/boven.htm
deleted file mode 100755 (executable)
index 77d5dae..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<html>\r
-\r
-\r
-<head>\r
-<meta http-equiv="Content-Language" content="nl">\r
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">\r
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">\r
-<meta name="ProgId" content="FrontPage.Editor.Document">\r
-<title>boven</title>\r
-<base target="ronder">\r
-</head>\r
-\r
-<body background="achtergronden/marble1.jpg" bgproperties="fixed">\r
-\r
-<p align="center"><b><i><font face="Creepy" size="6" color="#FF0000">Deze pagina is gemaakt\r
-door Roy en Mart</font></i></b></p>\r
-\r
-<p align="center">&nbsp;</p>\r
-\r
-</body>\r
-\r
-\r
-</html>\r
diff --git a/griezels/fotos/fpcounter2.gif b/griezels/fotos/fpcounter2.gif
deleted file mode 100644 (file)
index ec76fba..0000000
Binary files a/griezels/fotos/fpcounter2.gif and /dev/null differ
diff --git a/griezels/fotos/heks.JPG b/griezels/fotos/heks.JPG
deleted file mode 100755 (executable)
index 5a1f9f8..0000000
Binary files a/griezels/fotos/heks.JPG and /dev/null differ
diff --git a/griezels/fotos/heks_small1.JPG b/griezels/fotos/heks_small1.JPG
deleted file mode 100755 (executable)
index 8244f75..0000000
Binary files a/griezels/fotos/heks_small1.JPG and /dev/null differ
diff --git a/griezels/fotos/heksen.JPG b/griezels/fotos/heksen.JPG
deleted file mode 100755 (executable)
index 1d467a3..0000000
Binary files a/griezels/fotos/heksen.JPG and /dev/null differ
diff --git a/griezels/fotos/heksen_small1.JPG b/griezels/fotos/heksen_small1.JPG
deleted file mode 100755 (executable)
index 7f65421..0000000
Binary files a/griezels/fotos/heksen_small1.JPG and /dev/null differ
diff --git a/griezels/fotos/heksles.JPG b/griezels/fotos/heksles.JPG
deleted file mode 100755 (executable)
index 1419192..0000000
Binary files a/griezels/fotos/heksles.JPG and /dev/null differ
diff --git a/griezels/fotos/heksles_small1.JPG b/griezels/fotos/heksles_small1.JPG
deleted file mode 100755 (executable)
index 7a80362..0000000
Binary files a/griezels/fotos/heksles_small1.JPG and /dev/null differ
diff --git a/griezels/fotos/weervolven.JPG b/griezels/fotos/weervolven.JPG
deleted file mode 100755 (executable)
index 312d82e..0000000
Binary files a/griezels/fotos/weervolven.JPG and /dev/null differ
diff --git a/griezels/fotos/weerwolf.JPG b/griezels/fotos/weerwolf.JPG
deleted file mode 100755 (executable)
index 5d8b398..0000000
Binary files a/griezels/fotos/weerwolf.JPG and /dev/null differ
diff --git a/griezels/fotos/weerwolf1.JPG b/griezels/fotos/weerwolf1.JPG
deleted file mode 100755 (executable)
index 5680343..0000000
Binary files a/griezels/fotos/weerwolf1.JPG and /dev/null differ
diff --git a/griezels/fotos/weerwolf1_small1.JPG b/griezels/fotos/weerwolf1_small1.JPG
deleted file mode 100755 (executable)
index 77b31ad..0000000
Binary files a/griezels/fotos/weerwolf1_small1.JPG and /dev/null differ
diff --git a/griezels/fotos/weerwolf_small1.JPG b/griezels/fotos/weerwolf_small1.JPG
deleted file mode 100755 (executable)
index dcbb278..0000000
Binary files a/griezels/fotos/weerwolf_small1.JPG and /dev/null differ
diff --git a/griezels/heksen.htm b/griezels/heksen.htm
deleted file mode 100755 (executable)
index f5826a6..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<html>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/heksen.htm by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:27:58 GMT -->\r
-<head>\r
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">\r
-<title>Vampiers</title>\r
-</head>\r
-\r
-<body background="achtergronden/marble1.jpg" text="FF0000" link="FF0000" alink="FF0000" vlink="FF0000">\r
-\r
-<p align="center"><font face="Creepy" size="7">HEKSEN</font>\r
-<p align="left"><font size="5" face="Creepy">Kenmerken:</font></p>\r
-<ul>\r
-  <li>\r
-    <p align="left"><font size="5" face="Creepy">blauw spuug</font></li>\r
-  <li>\r
-    <p align="left"><font size="5" face="Creepy">geen tenen</font></li>\r
-  <li>\r
-    <p align="left"><font size="5" face="Creepy">geen haar</font></li>\r
-  <li>\r
-    <p align="left"><font size="5" face="Creepy">blijft altijd drijven</font></li>\r
-  <li>\r
-    <p align="left"><font size="5" face="Creepy">grote neusgaten</font></li>\r
-  <li>\r
-    <p align="left"><font size="5" face="Creepy">heeft één plekje waar ze\r
-    niets voelt</font></li>\r
-  <li>\r
-    <p align="left"><font size="5" face="Creepy">is nooit een man</font></li>\r
-</ul>\r
-<p align="left">&nbsp;</p>\r
-<p><center><font face="Creepy" size="5">klik op de plaatjes om ze te vergroten...</font><br><br>\r
-\r
-<a href="fotos/heksles.JPG">\r
-<img border="2" src="fotos/heksles_small1.JPG" width="100" height="154">\r
-</a><br><br>\r
-\r
-<a href="fotos/heks.JPG">\r
-<img border="2" src="fotos/heks_small1.JPG" width="100" height="89">\r
-</a><br><br>\r
-\r
-<a href="fotos/heksen.JPG">\r
-<img border="2" src="fotos/heksen_small1.JPG" width="100" height="76">\r
-</a><br><br>\r
-\r
-</center>\r
-\r
-</p>\r
-\r
-</body>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/heksen.htm by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:28:04 GMT -->\r
-</html>\r
-</style></noframes></pre></xmp></noscript>
diff --git a/griezels/hoofd.htm b/griezels/hoofd.htm
deleted file mode 100755 (executable)
index a7b93cd..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<html>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/hoofd.htm by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:27:41 GMT -->\r
-<head>\r
-<meta http-equiv="Content-Language" content="nl">\r
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">\r
-<title>hoofd</title>\r
-<base target="_self">\r
-</head>\r
-\r
-<body background="achtergronden/marble1.jpg" text="FF0000" link="FF0000" alink="FF0000" vlink="FF0000">\r
-\r
-<p align="center"><img border="0" src="animaties/bar10.gif" width="600" height="50"></p>\r
-\r
-  <div align="center">\r
-    <table border="0" cellspacing="1" cellpadding="0">\r
-      <tr>\r
-        <td>\r
-        <img src="animaties/hoofd1.gif" border="0" width="33" height="32">\r
-        </td>\r
-        \r
-        <td valign="middle" align="center">\r
-        <a href="mailto:roylubbers@dolfijn.nl">\r
-        <font face="Creepy" size="5" color="#FF0000">Mail Roy</font></a>\r
-        </td>\r
-        \r
-        <td>\r
-        <img src="animaties/hoofd1.gif" border="0" width="33" height="32">\r
-        </td>\r
-        \r
-      </tr>\r
-      <tr>\r
-      \r
-        <td>&nbsp;</td>\r
-        <td>&nbsp;</td>\r
-        <td>&nbsp;</td>\r
-        \r
-      </tr>\r
-      <tr>\r
-      \r
-        <td>\r
-        <img src="animaties/hoofd1.gif" border="0" width="33" height="32">\r
-        </td>\r
-        \r
-        <td valign="middle" align="center">\r
-        <a href="mailto:martlubbers@dolfijn.nl">\r
-        <font face="Creepy" size="5" color="#FF0000">Mail Mart</font></a>\r
-        </td>\r
-        \r
-        <td>\r
-        <img src="animaties/hoofd1.gif" border="0" width="33" height="32">\r
-        </td>\r
-        \r
-      </tr>\r
-    </table>\r
-  </div>\r
-\r
-<p align="center"><img border="0" src="animaties/bar10.gif" width="600" height="50"></p>\r
-\r
-<center>\r
-<font face="Creepy" size="5" color="#FF0000">\r
-Er wordt nog aan deze site gewerkt!\r
-</font>\r
-</center>\r
-\r
-</body>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/hoofd.htm by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:27:41 GMT -->\r
-</html>\r
-</style></noframes></pre></xmp></noscript>
diff --git a/griezels/index.html b/griezels/index.html
deleted file mode 100755 (executable)
index e0ff78e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/ by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:27:16 GMT -->\r
-<head>\r
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">\r
-<meta name="description" content="Griezelpage van Roy en Mart">\r
-<meta name="keywords" content="griezel, heksen, weerwolf, vampier">\r
-<title>Griezelsite van Roy en Mart</title>\r
-</head>\r
-\r
-<frameset cols="166,*" framespacing="1" border="1">\r
-  <frame name="links" scrolling="no" noresize target="rboven" src="linker.htm">\r
-  <frameset rows="12%,*">\r
-    <frame name="rboven" target="ronder" src="boven.htm" scrolling="no" noresize>\r
-    <frame name="ronder" src="hoofd.htm" target="_self">\r
-  </frameset>\r
-  <noframes>\r
-  <body>\r
-\r
-  <p>Op deze pagina worden frames gebruikt, maar uw browser ondersteunt geen\r
-  frames.</p>\r
-\r
-  </body>\r
-  </noframes>\r
-</frameset>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/ by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:27:16 GMT -->\r
-</html>\r
-</style></noframes></pre></xmp></noscript>
diff --git a/griezels/knoppen/fantbat3001.gif b/griezels/knoppen/fantbat3001.gif
deleted file mode 100755 (executable)
index b54d0c2..0000000
Binary files a/griezels/knoppen/fantbat3001.gif and /dev/null differ
diff --git a/griezels/knoppen/geesten.gif b/griezels/knoppen/geesten.gif
deleted file mode 100644 (file)
index aa2ae77..0000000
Binary files a/griezels/knoppen/geesten.gif and /dev/null differ
diff --git a/griezels/knoppen/heksen.gif b/griezels/knoppen/heksen.gif
deleted file mode 100644 (file)
index 464412d..0000000
Binary files a/griezels/knoppen/heksen.gif and /dev/null differ
diff --git a/griezels/knoppen/links.gif b/griezels/knoppen/links.gif
deleted file mode 100644 (file)
index 5f74132..0000000
Binary files a/griezels/knoppen/links.gif and /dev/null differ
diff --git a/griezels/knoppen/start.gif b/griezels/knoppen/start.gif
deleted file mode 100644 (file)
index 2633e6c..0000000
Binary files a/griezels/knoppen/start.gif and /dev/null differ
diff --git a/griezels/knoppen/vampiers.gif b/griezels/knoppen/vampiers.gif
deleted file mode 100644 (file)
index 44a1938..0000000
Binary files a/griezels/knoppen/vampiers.gif and /dev/null differ
diff --git a/griezels/knoppen/weerwolven.gif b/griezels/knoppen/weerwolven.gif
deleted file mode 100644 (file)
index e896c36..0000000
Binary files a/griezels/knoppen/weerwolven.gif and /dev/null differ
diff --git a/griezels/linker.htm b/griezels/linker.htm
deleted file mode 100755 (executable)
index 3ff4853..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<html>
-
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<title>linker</title>
-<base target="rboven">
-</head>
-
-<body background="achtergronden/marble1.jpg" bgproperties="fixed">
-
-<p><b><i><font face="Creepy" color="#FF0000" size="5">U bent bezoeker</font></i></b></p>
-<p><img border="0" src="fotos/fpcounter2.gif" width="109" height="24"> </p>
-<p><a target="ronder" href="hoofd.htm"><img border="0" src="knoppen/start.gif" width="147" height="28"</a></p>
-<p><a target="ronder" href="weerwolven.htm"><img border="0" src="knoppen/weerwolven.gif" width="147" height="28"</a></p>
-<p><a target="ronder" href="heksen.htm"><img border="0" src="knoppen/heksen.gif" width="147" height="28"</a></p>
-<p><a target="ronder" href="vampiers.htm"><img border="0" src="knoppen/vampiers.gif" width="147" height="28"</a></p>
-<p><a target="ronder" href="geesten.htm"><img border="0" src="knoppen/geesten.gif" width="147" height="28"</a></p>
-<p><a target="ronder" href="links.htm"><img border="0" src="knoppen/links.gif" width="147" height="28"</a></p>
-
-</body>
-
-
-</html>
diff --git a/griezels/links.htm b/griezels/links.htm
deleted file mode 100755 (executable)
index 92d9a7c..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<html>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/links.htm by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:28:05 GMT -->\r
-<head>\r
-<meta http-equiv="Content-Language" content="nl">\r
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">\r
-<title>Links</title>\r
-<base target="_blank">\r
-</head>\r
-\r
-<body background="achtergronden/marble1.jpg" link="FF0000" alink="FF0000" vlink="FF0000">\r
-\r
-<p align="center"><font face="Creepy" size="7" color="#FF0000">LINKS</font>\r
-<p>&nbsp;</p>\r
-<p>&nbsp;</p>\r
-<p>&nbsp;</p>\r
-<p>\r
-\r
-<font size="5" face="Creepy">\r
-\r
-<center>\r
-<a href="http://members.tripod.lycos.nl/vfrhonda/">VFR Honda site</a><br><br>\r
-<a href="http://www.geindomein.nl/">GeinDomein.nl</a><br><br>\r
-<a href="http://www.tkc.myweb.nl/">Twentse Klootschieters Club</a><br><br>\r
-<a href="http://www.jauko.nl/">Jauko.nl (Een goede muzieksite)</a><br><br>\r
-\r
-</font>\r
-\r
-</p>\r
-\r
-</body>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/links.htm by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:28:05 GMT -->\r
-</html>\r
-</style></noframes></pre></xmp></noscript>
diff --git a/griezels/vampiers.htm b/griezels/vampiers.htm
deleted file mode 100755 (executable)
index 2ee820c..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-<html>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/vampiers.htm by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:28:05 GMT -->\r
-<head>\r
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">\r
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">\r
-<meta name="ProgId" content="FrontPage.Editor.Document">\r
-<title>Nieuwe pagina 1</title>\r
-</head>\r
-\r
-<body background="achtergronden/marble1.jpg" bgproperties="fixed" text="#FF0000" link="#FF0000" vlink="#FF0000" alink="#FF0000">\r
-\r
-<p align="center"><font face="Creepy" size="7">VAMPIERS</font></p>\r
-\r
-<p align="center"><font face="Creepy" size="5">De kenmerken van een vampier zijn:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
-</font><font face="Creepy" size="5">&nbsp;&nbsp;&nbsp; </font><a href="fotos/weerwolf1.JPG"><img border="2" src="fotos/weerwolf1_small1.JPG" alt="weerwolf1.JPG (208287 bytes)" width="117" height="124"></a></p>\r
-\r
-<ul>\r
-  <li><font face="Creepy" size="5">&nbsp;een vampier heeft lange hoektanden </font></li>\r
-  <li><font face="Creepy" size="5">&nbsp;een vampier heeft &quot;bloed&quot;rode\r
-    lippen</font></li>\r
-  <li><font face="Creepy" size="5">&nbsp;een vampier is heel bleek</font></li>\r
-  <li><font face="Creepy" size="5">&nbsp;een vampier heeft overdag altijd een\r
-    zonnebril op</font></li>\r
-  <li><font face="Creepy" size="5">&nbsp;een vampier slaapt in een grafkist met\r
-    zand erin</font></li>\r
-</ul>\r
-<p><font face="Creepy" size="5">Hier kan een vampier niet tegen:</font></p>\r
-<ul>\r
-  <li><font face="Creepy" size="5">&nbsp;knoflook</font></li>\r
-  <li><font face="Creepy" size="5">&nbsp;wijwater</font></li>\r
-  <li><font face="Creepy" size="5">&nbsp;een&nbsp; kruisbeeld</font></li>\r
-  <li><font face="Creepy" size="5">&nbsp;zonlicht</font></li>\r
-</ul>\r
-<p><font face="Creepy" size="5">Een vampier drinkt bloed vandaar die rode\r
-lippen.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
-Hij drinkt het bloed uit de nek van het\r
-slachtoffer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
-Als je door een vampier gebeten wordt en je gaat\r
-dood word je zelf een ook een van hen.&nbsp;&nbsp;&nbsp;</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
-<font face="Creepy" size="5">Overdag slapen de meeste vampiers, maar 's\r
-nachts gaan ze op jacht.&nbsp;&nbsp;&nbsp;</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
-<font face="Creepy" size="5">Als ze niks hebben gevangen gaan ze naar de\r
-bloedbank om bloed te halen.&nbsp;&nbsp;&nbsp;</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
-<font face="Creepy" size="5">Om in de bloedbank te komen veranderende\r
-vampiers in een vleermuis.&nbsp;&nbsp;&nbsp;</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
-<font face="Creepy" size="5">Een vampier is zo bleek door bloedgebrek.</font></p>\r
-<p>&nbsp;</p>\r
-\r
-<p><font face="Creepy" size="5">De bekendste vampier is DRACULA.</font></p>\r
-\r
-<p><font face="Creepy" size="5">Bram Stoker schreef er een verhaal over.</font></p>\r
-\r
-<p><b><u><font face="Creepy" size="5">HET VERHAAL,</font></u></b></p>\r
-\r
-<p><font face="Creepy" size="5">Het was een koude nacht. de maan stond pal boven\r
-de herberg. een ijzige windvlaag gierde omhoog langs de trap, langs een kier van\r
-een deur. In de kamer flakkerde een kaars. Ze scheen op het gezicht van een man.\r
-Hij heette Jonathan Harker. hij zat aan tafel achter een hoop papieren. Ze waren\r
-voor graaf Dracula. De graaf wilde het Carfax House in Londen kopen. De jonge\r
-advocaat moest de verkoop afwerken. hij reisde er speciaal voor naar Trans-\r
-sylvanië. Het was zijn eerste opdracht. Daarom was hij een beetje zenuwachtig.\r
-En de graaf was een geheimzinnige klant. Harker geeuwde. Het was een zware dag\r
-geweest. Morgen had hij nog een lange treinreis voor de boeg. Hij slofte naar\r
-het bed. De oude houten vloer kraakte bij elke stap. In bed keek hij nog een\r
-tijd naar een foto. Zijn vrouw Mina lachte hem toe. Buiten klonk gehuil van\r
-wolven. Huilden ze om hem welkom te heten?</font></p>\r
-\r
-<p><font face="Creepy" size="5">De volgende morgen zat Harker weer vroeg in de\r
-trein. Het landschap van Transsylvanië schoof voorbij. In bistrita wachtte een\r
-koets op hem. Harker stapte in. Er zat al een koopman met zijn gezin in. Al gauw\r
-ploeterde de koets langs modderpaden. Het gezin fluisterde tegen elkaar in het\r
-Roemeens. Nu en dan gluurden ze naar de vreemdeling. Ze leken bank.De Borsa-Pas\r
-kwam in zicht. Opeens kon de moeder zich niet meer inhouden.\r
-&quot;Jongeman,&quot; zei ze tegen Harker,&nbsp; &quot;het is de avond van St.\r
-George. Weet je wel wat er vannacht gebeurt? Om twaalf uur zijn alle kwade\r
-machten op hun sterkst!&quot; Ze haalde een kruis van haar hals. Dat gaf ze aan\r
-hem. &quot;Als je beslist verder moet, draag dit dan. Doe het nooit meer\r
-af...&quot;</font></p>\r
-\r
-<p><font face="Creepy" size="5">De koets bereikte de Borsa-Pas. De paarden\r
-hinnikten. Knarsend verscheen nog een koets, zwart als de nacht. Op de bok zal\r
-een lange man met een grote zwarte hoed. Zijn ogen gloeiden rood in de lampen\r
-van de koets. De koopman en zijn gezin maakten een kruisteken. Harker stapte\r
-over de zwarte koets. De koetsier nam zijn koffers aan. Hij legde ze op de koets\r
-alsof ze niets wogen. De zweep knalde en ze reden de nacht in. De koets ratelde\r
-over het smalle pad. Aan de ene kant stonden dichte rijen bomen. Aan de andere\r
-kant was een rotswand. Het gehuil van wolven klonk steeds dichterbij. Links\r
-flakkerde een blauwe vlam. De koetsier zag het, maar reed gewoon door. Even\r
-later stopte de koets opeens. Harker keek naar buiten. Hij verstijfde van\r
-schrik. Rond de koets stond een troep wolven! De koetsier sprong van de\r
-koets.Met een zwaai van zijn arm beval hij hen weg te gaan. Het leek alsof ze\r
-oplosten in de nacht. Harker viel van angst flauw...</font></p>\r
-\r
-<p><font face="Creepy" size="5">Harker kwam bij op de binnen plaats van een oud\r
-kasteel. Hij stapte uit de koets. Het rijtuig verdween in een donker steegje.\r
-Harker keerde zich om en stond voor een hoge deur. Ze was met ijzer beslagen.\r
-Hij wachtte geduldig. En hij wachtte. Het was erg koud in de bergen. Harker\r
-rilde. Eindelijk hoorde hij voetstappen. Grendels werden weggeschoven. De deur\r
-kraakte, ging langzaam open. Daar stond een lange, knappe man, van top tot teen\r
-in het zwart. Hij leek verdacht veel op de geheimzinnige koetsier. &quot;Graaf\r
-Dracula?&quot; vroeg Harker nerveus. &quot;Ja, ik ben Dracula. Welkom in mijn\r
-huis. U komt uit eigen vrije wil.&quot; Wat een vreemd welkom! harker stapte\r
-over de drempel. De graaf bracht zijn gast naar een grote eetkamer. In een hoek\r
-loeide een laaiend vuur. Boven de schoorsteen hing een schilderij.\r
-&quot;Bijzondere man, nietwaar?&quot; zei de graaf. &quot;Het is mijn beroemde\r
-voorvader, Vlad de Vijfde. Hij was een groot beschermheer van zijn volk.&quot;</font></p>\r
-\r
-<p><font face="Creepy" size="5">De graaf scheen geen honger te hebben. Maar\r
-Harker des te meer! onder het eten praatten ze over de verkoop van Carfax House\r
-. Na het diner bracht Dracula zijn gast naar zijn kamer. &quot;U mag overal\r
-komen,&quot; zei de graaf. &quot;Behalve waar de deur op slot is. Maar daar wilt\r
-u ook vast niet naar binnen.&quot; Met een vreemde glimlach verdween hij. De\r
-volgende dag stond het ontbijt voor Harker klaar. Dracula zelf kwam niet. Het\r
-werd avond. Nog steeds geen Dracula. Harker keek uit het raam. De kamer van de\r
-graaf was onder de zijne. Hij schrok van wat hij zag. De graaf klom net uit het\r
-raam. Hij kroop langs de muur omlaag! En zijn mantel spreidde zich als de\r
-vleugels van een enorme vleermuis...</font></p>\r
-\r
-<p><font face="Creepy" size="5">De volgende nacht kroop de graaf opnieuw langs\r
-de muur. Deze keer leek hij op te lossen in de lucht. Maar er vloog opeens een\r
-vleermuis weg. Nu wist Harker hoe de graaf het kasteel verliet! De dag ervoor\r
-was hij al op onderzoek geweest. Nu doorzocht hij het hele kasteel. Hij keek ook\r
-waar hij van de graaf niet mocht komen. Elke kamer, elk raam, elke deur\r
-probeerde hij. Nergens kon hij het kasteel uit. Urenlang zocht hij. Opeens zag\r
-hij bij het licht van zijn kaars voetstappen. Hij had steeds in kringetjes\r
-gelopen! Doodmoe viel hij in een diepe slaap. Hij werd wakker omdat iemand\r
-lachte. In het maanlicht stonde drie jonge vrouwen. Ze hadden net zulke tanden\r
-en ogen als Dracula. Ze fluisterden tegen elkaar en kwamen op hem af. De\r
-rillingen liepen over Harkers rug. Maar hij kon zich niet bewegen. Een van de\r
-vrouwen pakte hem vast. Haar open mond ging naar zijn hals...</font></p>\r
-<p><font face="Creepy" size="5">Dracula verscheen uit het niets. Zijn ogen\r
-schoten vuur. met reuzenkracht duwde hij de vrouw opzij &quot;Hoe durf je hem\r
-aan te raken?&quot;schreeuwde hij.&quot;Hij is van mij!&quot; Bij die woorden\r
-viel Harker bewusteloos op de vloer. hij kwam bij op zijn kamer . was alles maar\r
-een droom geweest? Mmaar er was geen tijd om na te denken. Voetje voor voetje\r
-klom hij uit het raam omlaag. Met een zwaai belande hij in de kamer onder de\r
-zijne. De graaf was er niet. Wanhopig doorzocht Harker de kamer. Hij wilde weg\r
-uit deze gevangenis. Bijna had hij de moed opgegeven. Toen voelde hij een beetje\r
-tocht. Een geheime duer! Doodsbang maar dapper sloop hij een donkere vochtige\r
-gang in. Hij kwam uit in een crypte. Overal hing de stank van de dood. In het\r
-midden stond een grote doodskist. Harker móest kijken. Het deksel kraakte toen\r
-hij het optilde. </font><font face="Creepy" size="5">Dracula! Het monster\r
-glimlachte in zijn slaap. Er liep vers bloed uit een mondhoek. Gillend rende\r
-Harker weg, zo hard hij kon. </font></p>\r
-<p><font face="Creepy" size="5">De vissersplaats Whitby ligt aan de voet van\r
-hoge rotsen. Op de rotsen stond Mina, Harkers vrouw. Hoe zou het met haar man\r
-zijn? Waarom schreef hij niet vanuit kasteel Dracula? Ze staarde naar de zee. Er\r
-broeide storm, voelde ze. Alle schepen koersten snel naar de haven. Behalve een\r
-onbekende schoener. Drie weken eerder liet Dracula Jonathan achter in het\r
-kasteel. De graaf vertrok naar Londen. Hij wilde nieuwe slachtoffers zoeken. In\r
-het schip lagen 50 kisten met aarde uit Trans- sylvanië. Dat werden zijn nieuwe\r
-slaapplaatsen. Eenmaal op zee kwam hij uit zijn kist. Hij nam de hele bemanning\r
-te grazen. Bij de Engelse kust riep Dracula duistere machten aan. Het schip\r
-sloeg met een vreselijke klap op de rotsen. Terwijl het schip zonk sprong een\r
-grote witte wolf aan land. DE dag daarna vond men de kapitein. Hij zat met touw\r
-vast aan het stuurwiel. Zijn keel was opengescheurd...</font></p>\r
-<p><font face="Creepy" size="5">De grote witte wolf drukte zijn kop tegen het\r
-raam. Binnen zag niemand hem. Lucy Westenra had het veel te druk. Ze gaf een\r
-feestje. Er zaten drie knappe mannen tegenover haar. Ze deden hun best om indruk\r
-op haar te maken. Links zat de lange Amerikaan Quincey Morris. Naast hem Lucy's\r
-verloofde Lord Arthur Holmwood. Rechts zat Jack Steward, haar huisarts. Mina,\r
-haar vriendin, was er ook. Het beloofde een leuk feest te worden! In het hlst\r
-van de nacht liep Lucy naar buiten. Als verdoofd ging ze de rotsen op. Mina en\r
-dr. Steward werden wakker omdat er een deur klapperde. In de dichte mist zochten\r
-ze wanhopig naar hun vriendin. Opeens vloog er een enorme vleermuis op hun af.\r
-Verschrikt sprongen ze opzij. Toen vonden ze Lucy Ze lag bewusteloos op de\r
-grond. Dr. Steward droeg haar naar binnen. Hij onderzocht haar.&quot; Ik begrijp\r
-niet wat er aan de hand is,&quot; zei hij. &quot;Er is maar één persoon die\r
-ons kan helpen. Dat is professor Abraham Van Helsing.&quot;</font></p>\r
-<p>&nbsp;</p>\r
-<p><font face="Creepy" size="5">De professor liep meteen naar Lucy's slaapkamer.\r
-Haar gezicht was doodsbleek. Haar adem klonk als schuurpapier. Van Helsing vond\r
-twee gaatjes in haar hals. Van schrik heild hij zijn adem in. &quot;Er is geen\r
-moment te verliezen. Ze moet nú bloed hebben.&quot; Hij pakte snel zijn\r
-instrumenten uit. De operatie was snel klaar. Lucy kreeg bloed uit de arm van\r
-Arhtur Holmwood. Daarna lieten de drie mannen haar alleen om te rusten.\r
-&quot;Vrienden,&quot; zei de professor, &quot;Ik vrees dat dit het werk is van\r
-een vampier.&quot; Buiten bewoog iets. Opeens, als bij een plotselinge\r
-windvlaag, knalde het raam open. Een reusachtige vleermuis vloog de kamer\r
-binnen. Zijn rode ogen priemden door de nacht. Hij strekte zijn enorme vleugels.\r
-In de schaduw ervan verscheen een andere gedaante - Dracula! Hij glimlachte en\r
-likte langs zijn spitse hoektanden. Toen stak hij ze diep in Lucy's hals.</font></p>\r
-<p><font face="Creepy" size="5">Dracula bleef 's nachts op bezoek komen. Lucy\r
-werd steeds zwakker. Intussen kreeg Mina bericht over haar man, Harker. De brief\r
-kwam van een zuster uit een klooster in Transsylvanië. Jonathan was daar. Hij\r
-had hevige koorts. Harker had in het kasteel de crypte ontdekt. Dracula's\r
-slaapkamer! Dezelfde dag kwamen mannen, de kisten met aarde ophalen. Ze\r
-spijkerden Dracula's kist dicht. Die moest blijkbaar ook mee. Harker had zich\r
-verstopt. De vrouwen zouden hem 's nachts vast opnieuw aanvallen. Ze waren net\r
-zo erg als Dracula. Hij wist dat hij dat niet zou overleven. Maar nu stond de\r
-deur open. Hij greep zijn kans en rende voor zijn leven. Zijn longen leken te\r
-barsten. Toch rende hij door. Zijn angst gef hem extra kracht. Vanuit het bos\r
-loerden hongerige wolven naar hem. Het werd nacht voor hij licht in de verte\r
-zag. Eindelijk veilig! Bij de poort van het klooster zakte hij in elkaar.</font></p>\r
-<p><font face="Creepy" size="5">Mina nam de eerste boot naar Europa. Drie weken\r
-later nam ze Jonathan mee naar huis. Hij kon al weer reizen. Lucy stief op de\r
-dag dat ze aankwamen. Ze had een kruis om haar hals en er hing knoflook bij het\r
-raam. Het had Draclua niet tegengehouden. Op haar begrafenis fluisterde Van\r
-Helsing tegen Harker: &quot;Ik vrees dat dit voor haar pas het begin is.&quot;\r
-De vrienden lagen de hele nacht op de loer bij de kerk. Langzaam werd het\r
-ochtend. Tussen de graven bewoog een schaduw. Opeens stond ze in het volle licht\r
-van een lamp. Haar mond was rood van het verse bloed. Van helsing hield een\r
-kruisbeeld omhoog. De vampier, die eens Lucy was, week terug in haar graf. De\r
-professor hield een staak boven haar hart. &quot;Arthur, sla snel als je van\r
-haar houdt.&quot; Lord Holmwood tilde zijn hamer op. Hij aarzelde.Toen sloeg hij\r
-zo hard hij kon.</font></p>\r
-<p><font face="Creepy" size="5">De vrienden kwamen terug van het kerkhof. Ze\r
-gingen naar de studeerkamer. Van Helsing zei: &quot;Dracula is een vampier, een\r
-ondode, een nosferatu. Sinds er mensen zijn, zijn er vampiers. Overal in de\r
-wereld. We zullen niet rusten voor Dracula vernitigd is. Eerst moeten we de\r
-vijftig kisten vinden waarin hij kan slapen. We beginnen bij zijn nieuwe huis in\r
-Londen. Kun jij ons erheen brengen, Jonatha?&quot; Op dat moment knalde er een\r
-schot. De ruit spring kapot. Twee tellen later stormde Quincey Morris de kamer\r
-in. Hij was buiten adem. &quot;Sorry dat ik jullie liet schrikken. Buiten zag ik\r
-een enorme vleermuis. Jammer genoeg schoot ik mos.' Van Helsing wist dat er geen\r
-tijd te verliezen was. De volgende dag nam de groep de eerste trein naar Londen.\r
-Ze logeerden in het huis van dr. Seward. Het werd avond. Jonathan stond buiten\r
-op wacht. Er dreef een dichte, groen mist naar het huis. Jonathan lette er niet\r
-op. De mist kroop langs de muur omhoog. Hij gleed onder de spleet door van\r
-Mina's raam. De volgende ochtend ontdekte Mina twee gaatjes in haar hals.</font></p>\r
-<p><font face="Creepy" size="5">In het huis van Dracula zochten ze naar de\r
-kisten. Het hele huis zat dik onder het stof. De lucht was er bedompt en muf.\r
-Bij de huiskapel sprong Quicney Morris verschrikt achteruit. Het krioelde er van\r
-de ratten. Maar Arthur Holmwood blies op een fluitje. Zijn drie hondern stormden\r
-het huis in. Binnen een paar minuten waren alle ratten weg. Ze vonden 29 kisten.\r
-Van Helsing druppelde er wijwater op. Stuk voor stuk vielen ze uit elkaar. 's\r
-Avonds laat zaten Van Helsing, Quinsey en Arthur plannen te maken. Opeens\r
-hoorden ze een geluid. Ze rende de trap op naar Mina's kamer. Ze trapten de deur\r
-open. Dee graaf sond over Mina gebogen. Er droop bloed van zijn lippen. Zijn\r
-ogen waren rood en glansen. Jonathan zat hulpeloos op een stoel. Dracula had hem\r
-gehypnotiseerd. Van Helsing haarde zijn kruisbeeld te voorschijn. De graaf deed\r
-angstig een stap achteruit Er schoof een donkere wolk voor de maan. Toen Quincey\r
-een lucifer aanstreek was Dracula verdwenen.</font></p>\r
-<p><font face="Creepy" size="5">Denk aan wat er met Lucy is gebeurd,&quot; zei\r
-Van Helsing. &quot;We hebben een maand om Mina te redden. De graaf heeft de\r
-kisten vast niet in zijn eentje verhuisd. Iemand anders weet dus ook waar ze\r
-zijn. We gaan zoeken. Maar eerst geef ik Mina een beetje bescherming.&quot; Van\r
-Helsing drukte een heilige hostie op Mina's voorhoofd. Ze schreeuwde het uit. De\r
-hostie brandde een vuurrode vlek op haar huis. In Londen vonden ze die week\r
-driep slaapplatsen van de graaf. Ze ruimden er 18 kisten op. In het laatste huis\r
-gingen ze op de loer liggen. Opeens sprong Dracula via een deur te voorschijn.\r
-Jonathan haalde uit met zijn jachtmes. Maar de graaf dook opzij. Heel snel rende\r
-hij de kamer door en spring het raam uit.</font></p>\r
-<p><font face="Creepy" size="5">Er waren nog maar 3 kisten over. In Londen\r
-blijven werd erg riskant voor Dracula. Van Helsing begreep dat ook. &quot;Hij\r
-gaat terug naar Transsylvanië. We moeten achter hem aan.&quot; Arthur ging\r
-navraag doen in de haven. Er was maar één schip onderweg naar de Zwarte Zee.\r
-Het zou naar Varna zeilen. Dracula moest dus wel aan boord zijn. De vrienden\r
-staken per zeilschip het Kanaal over. Daarna namen ze de trein naar Varna. Zo\r
-zouden ze er een week voor Dracula zijn. Maar het schip kwam nooit in Varna aan.\r
-Sterke winden joegen het naar de kust bij Galatz. &quot;Quincey en dr. Seward\r
-volgen hem te paard,&quot; zei Mina. &quot;Arthur en Jonathan gaan met een\r
-snelle boot door de kanalen. Professor Van Helsing en&nbsp; ik reizen per trein\r
-en koets naar de Borsa-Pas.&quot;</font></p>\r
-<p><font face="Creepy" size="5">Er volgde een wilde jacht door Roemenië. Een\r
-week lang lukte het niemand de graaf in te halen. Van Helsing en Mina bereikten\r
-het eerst de Borsa-Pas. Die nacht zaten ze bij een kampvuur. Opeens begon Mina\r
-akelig te lachten. Van Helsing keek achter zich. Daar stonden de drie vrouwen\r
-uit het kasteel. &quot;Kom zusje,&quot; riepen ze. &quot;Je bent een van\r
-ons.&quot; Maar Van Helsing had hosties in een kring rond het kamp gelegd. Mina\r
-kon er niet uit en de vrouwen konden er niet in. Krijsend van woede losten ze op\r
-in de nacht. Vroeg in de ochtend klom Van Helsing naar het kasteel. Jonathan had\r
-hem uitgelegd waar de crypte was. Dracula's doodskist was er niet. Maar wel die\r
-met de drie vrouwelijke vampiers. De professor sloeg ze stuk voor stuk het hoofd\r
-af. Daarna wachtte hij op Dracula. De zon ging onder. Aan de horizon verscheen\r
-de kar met Dracula's kist erop. Ernaast reed een groep bandieten. Ze zagen er\r
-levensgevaarlijk uit met al hun wapens. Moest Van Helsing die alleen\r
-tegenhouden?</font></p>\r
-<p><font face="Creepy" size="5">&quot;Kijk! Kijk!&quot; riep Mina. Ze wees inde\r
-verte. Quincey en dr. Seward joegen te paard achter de kar aan. Ze reden op\r
-topsnelheid. Er klonk gekraak uit het bos. Jonathan en Arthur sprongen voor de\r
-kar. &quot;Halt!&quot; riepen ze. De leider van de bandieten reed gewoon door.\r
-De anderen moesten de vampierjagers tegenhouden. Quicney en Jonathan wisten toch\r
-bij de kar te komen. Ze klommen erop en gooiden de zware kist eraf. Quincey\r
-zwaaide dapper met zijn grote jachtmes. Hij hield de bandieten op een afstand.\r
-Maar in de schemering zag Mina hun messen flitsen. Quincey werd zwaar gewond.\r
-Arthur en dr. Seward dreigden hun geweren leeg te schieten. Toen gaven de\r
-bandieten zich over. Jonatha brak het deksel van de kist open met zijn mes. Daar\r
-lag Dracula. Hij zag de zon ondergaan en zijn rode ogen glansen. maar een zwaai\r
-van Jonathas mes sneed zijn keel open. Quincey plofte het mes in zijn hart. Voor\r
-hun ogen verging Dracula's lichaam tot stof. Quincey zakte uitgeput in elkaar.\r
-Hij stierf terwijl hij naar Mina wees. &quot;Kijk,&quot; kreunde hij, &quot;het\r
-teken van Dracula is weg. Ik sterf niet voor niets.</font></p>\r
-<p>&nbsp;</p>\r
-<p>&nbsp;</p>\r
-\r
-</body>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/vampiers.htm by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:28:05 GMT -->\r
-</html>\r
-</style></noframes></pre></xmp></noscript>
diff --git a/griezels/weerwolven.htm b/griezels/weerwolven.htm
deleted file mode 100755 (executable)
index ded25c2..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<html>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/weervolven.htm by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:27:41 GMT -->\r
-<head>\r
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">\r
-<title>Weerwolven</title>\r
-</head>\r
-\r
-<body background="achtergronden/marble1.jpg" link="FF0000" alink="FF0000" vlink="FF0000" text="FF0000">\r
-<p align="center"><font face="Creepy" size="7">WEERWOLVEN</font></p>\r
-<p align="left">&nbsp;</p>\r
-<p align="left">&nbsp;</p>\r
-<p align="left">&nbsp;</p>\r
-<p align="left">&nbsp;</p>\r
-<p align="left"><font face="Creepy" size="5">De kenmerken van een weerwolf met\r
-nieuwe maan [dus dan is hij geen weerwolf]</font></p>\r
-<ul>\r
-  <li>\r
-    <p align="left"><font face="Creepy" size="5">haren die op de handpalm\r
-    groeien</font>&nbsp;&nbsp;&nbsp;<font face="Creepy" size="5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
-    </font><a href="fotos/weerwolf1.JPG"><img border="2" src="fotos/weerwolf1_small1.JPG" alt="weerwolf1.JPG (208287 bytes)" width="117" height="124"></a></li>\r
-  <li>\r
-    <p align="left"><font face="Creepy" size="5">lang haar</font>&nbsp;&nbsp;&nbsp;<font face="Creepy" size="5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></li>\r
-  <li>\r
-    <p align="left"><font face="Creepy" size="5">in elkaar groeiende wenkbrauwen</font></li>\r
-  <li>\r
-    <p align="left"><font face="Creepy" size="5">lange tanden</font></li>\r
-  <li>\r
-    <p align="left"><font face="Creepy" size="5">eet heel veel (rauw) vlees.</font></li>\r
-  <li>\r
-    <p align="left"><font face="Creepy" size="5">heel veel\r
-    huidhaar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></li>\r
-</ul>\r
-<p align="left"><font face="Creepy" size="5">hoe zie je nou of je met een\r
-weerwolf of een gewone wolf hebt te maken.</font>\r
-<p align="left"><font face="Creepy" size="5">Een paar kenmerken zijn:</font></p>\r
-<ul>\r
-  <li>\r
-    <p align="left"><font face="Creepy" size="5">De ogen zijn ongeveer hetzelfde\r
-    als van een mens</font></li>\r
-  <li>\r
-    <p align="left"><font face="Creepy" size="5">Er zitten vaak stukjes van\r
-    kleren op zijn huid</font></li>\r
-  <li>\r
-    <p align="left">&nbsp;</li>\r
-</ul>\r
-    <p align="left"><font size="5" face="Creepy">Klik op de plaatjes om ze te\r
-    vergroten</font>\r
-<p align="center"><a href="fotos/weerwolf.JPG"><img border="2" src="fotos/weerwolf_small1.JPG" alt="weerwolf.JPG (50823 bytes)" width="122" height="108"></a></p>\r
-<p align="center">&nbsp;</p>\r
-<p align="center"><img border="0" src="fotos/weervolven.JPG" width="830" height="199"></p>\r
-</body>\r
-\r
-\r
-<!-- Mirrored from members.multimania.nl/griezels/weervolven.htm by HTTrack Website Copier/3.x [XR&CO'2010], Wed, 09 Jan 2013 21:27:58 GMT -->\r
-</html>\r
-</style></noframes></pre></xmp></noscript>
index 56c3c3d..9975049 100644 (file)
--- a/index.md
+++ b/index.md
@@ -1,32 +1,12 @@
 ---
+layout: index
 title: Mart Lubbers' website
+language: en
+language_reference: home
 ---
 
-{% include img.html alt='A photo of Mart Lubbers' img='p' %}
-PhD candidate at the [Institute of Computing and Information Sciences](https://cs.ru.nl) ([Radboud University](https://ru.nl))<br />
-`mart@martlubbers.net` (GPG: <a href="http://martlubbers.net/mart@martlubbers.net.asc" title="Fingerprint: 74FF FBF1 4758 273B 2F56  A30C A937 B7A1 AD3F EBE7" style="font-family:monospace">AD3FEBE7</a>)<br />
-`mart@cs.ru.nl`
-
-<header>
-## Table of contents
-                               
-<nav>
-- [Work](#work)
-- [Publications](#publications)
-       - [Peer reviewed](#peer-reviewed)
-       - [Student supervision](#student-supervision)
-       - [Theses](#theses)
-       - [Posters](#posters)
-- [Teaching](#teaching)
-- [Talks](#talks)
-- [Other](#other)
-       - [Software, libraries and projects](#software-libraries-and-projects)
-       - [Tutorials and manuals](#tutorials-and-manuals)
-       - [Interests](#interests)
-       - [Archive](#archive)
-</nav>
-</header>
-               
+{% include toc.html %}
+
 ## Work
 
 - PhD candidate at the Radboud University --- from 2018-06
diff --git a/langes.md b/langes.md
deleted file mode 100644 (file)
index 7b1d35d..0000000
--- a/langes.md
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: ſ-homografen (Lange s homografen)
-date: 2021-06-16
----
-<header>
-Op deze internetpagina presenteer ik mijn verzameling ſ-homografen, ſ-homogrammen, ſ-bommelwoorden, plaatstaalwoorden of hoe men ze ook noemen wil.
-
-## Table of contents
-
-- [Introduction](#introduction)
-- [Verzameling](#verzameling)
-  - [Woorden die eindigen op -staal](#staal)
-  - [Vrouwlijke vormen met -ster](#ster)
-  - [Woorden die eindigen op -stop](#stop)
-  - [Anders](#anders)
-- [Dankwoord](#dankwoord)
-</header>
-
-## Introduction
-ſ-homografen zijn homografen in de reguliere spelling maar bij het correct gebruik van de ſ niet meer.
-In vroegere tijden schreef men de kleine letter s als ſ, behalve als het de laatste letter van het woord, of samengesteld woord, was.
-De bekendste ſ-homograaf is plaatstaal, dat geïnterpreteerd kan worden als plaats-taal of plaat-staal, maar plaatstaal en plaatſtaal zijn prima te onderscheiden.
-
-## Verzameling ſ-homografen
-### Woorden die eindigen op -staal
-
-moerstaal
-plaatstaal
-rechtstaal
-staatstaal
-wetstaal
-
-### Vrouwlijke vormen met -ster
-aanstichtster,
-aanzetster,
-africhtster,
-afzetster,
-betweetster,
-bezitster,
-brandstichtster,
-doorbijtster,
-doorzetster,
-erflaatster,
-fractievoorzitster,
-gastster,
-gemeentevoorlichtster,
-haatster,
-kaartster,
-kajotster,
-liftster,
-mannenhaatster,
-medeoprichtster,
-nagelbijtster,
-nettenboetster,
-onruststookster,
-oplichtster,
-oprichtster,
-overzetster,
-pachtster,
-partijvoorzitster,
-persvoorlichtster,
-pleitster,
-praatster,
-slijtster,
-sportster,
-spotster,
-sprintster,
-staartster,
-stichtster,
-stoelenzetster,
-stovenzetster,
-strovlechtster,
-toegespitster,
-topsportster,
-uitbaatster,
-vechtster,
-ventster,
-vicevoorzitster,
-voorlichtster,
-voorvechtster,
-voorzitster,
-vredestichtster
-
-### Woorden die eindigen op -stop
-autostop
-bedrijfstop
-bestuurstop
-fotostop
-fusiestop
-immigratiestop
-koffiestop
-migratiestop
-mutatiestop
-opnamestop
-productiestop
-regeringstop
-subsidiestop
-tankstop
-vacaturestop
-vakbondstop
-verstop
-vredestop
-werkgelegenheidstop
-
-### Anders
-gospel,
-tijdstip,
-plastic,
-juweliersloep
-
-## Dankwoord
-Met dank aan Battus voor de eeuwige inspiratie voor taalfenomenen.
diff --git a/mart@martlubbers.net.asc b/mart@martlubbers.net.asc
deleted file mode 100644 (file)
index ffba08a..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.12 (GNU/Linux)
-
-mQENBFJUQNsBCADpv9X6QIYS/dsnGyc8T8ijmTGdcWj/NhXcUSsUqi48NHGMxwCH
-s3hGWjb0jRSyzmxo5l8zsoi65iIMj+8S7sGdW1AJTmrE7At/s3MQu3hc6hpHR5Zb
-SV18MSzRwFD5KsfDq6fFjtUwq4YXymlN9XaCN22i3966ACdtfOZr1NFuBd2BkqVu
-wD5JGWCN7SSNZZMFEO8z+liCAI2zMR6Hc+whNeOBLa5+aFMwk0pxQeSTM4/z7/89
-80jKOvi66ueVL1MwoMiZXRBpigLwPVytaymCMflC2tv4/vpJ6HWV6nLV6LYq8FI7
-dd8OQOl6MZMNY3VNh8xwNwaBsaIPxHCdOYA7ABEBAAG0I01hcnQgTHViYmVycyA8
-bWFydEBtYXJ0bHViYmVycy5uZXQ+iQE4BBMBAgAiBQJSVEDbAhsDBgsJCAcDAgYV
-CAIJCgsEFgIDAQIeAQIXgAAKCRCpN7ehrT/r5xGYB/4gtXklGEufKXf1F+gu3u5J
-oWdbW45w9skPjZfNj/fAG7y2W+iqR5LMbNvCF5tivScPiURnHrr4OL3werL+YaTr
-XjLiYw3qX8y5/HRuo+988I+wwbBZIUzv0/8mtiLwYXLVBK38XertsM/uTg4sCfLo
-Bh1JbaBnb3tgzcOM91cz39WaoltSbUhT87IgNhgFuRaHfzGxbvZ1Jam5qWrlZ/Px
-caet3v2/ffkzag60qCJiKQ1752yzQsaeSgAcanvMnQSAI/aLUclFFS9SdCM1FhFh
-dlY6Q/Ff9QId/2MwsmqE2LUj9YyFIbYst1gNpExWw1BwEzrPnMzDdfRbaPpGr/xN
-uQENBFJUQNsBCADhjbVI3jJbQUQI8Kc3X3D0PWTHfNc35caB0WXC+g4itG6DBmz4
-rsZZ+Qkhsi+L56XEsl0QELsA5S+kRGuiQ1WBQGcqEb3DbO/VWvn5Atl4O2bucISV
-8rILRep/o9TMaDfZvMty0SWlZTzIW7fV//LKTE/aP13r3/7o44fJt1x9nzEP0hhW
-iwN+wjozycAVzAKiYeBqX8W7VwO9xRheP9DW4Xc+YZOozqY73ciEFXc4+js97exE
-OBHIaVqbmMX69pqfgIRWpXPTpvIvgzTlQXHGXqMlYd8Xdz6Yh6Dgmc0Xd2wc8mkD
-j8DMag9FzEKHrSv/wk+jaWY2S6yu3LOPiLjXABEBAAGJAR8EGAECAAkFAlJUQNsC
-GwwACgkQqTe3oa0/6+f2Rgf+NO+NP6qFkpTYzi8hzNxovOdwRPESRLFLsQjC1YHg
-UR2cqYOKPEIYkE8/yu4ayFJbJniX8t+IFfbliqBzr8Pr1yD0iwFq13PwkYZvW1WC
-epXYnTiXKbisU4V1R/wQ+/S3XJLpWxoIKzJB0IJuxMHTJ2mT2m8FKqQf1djuLA1f
-8K/1G3PbT43vh21IoUQLeNwTz0yv3RZ+PSZn3kgOiyUgjmS1/SR2z7MqCGbeGtdY
-+LaM6XFzp+Ocr90yxDlYnnTOLUsIhPFZ7H25Hpq+6mGCzqolM3wGhgggJLO70RaR
-XBldnRFcphP2W+krMxaLOGOFH3mfjoaRg+z+WpA4GBBJQw==
-=7vNz
------END PGP PUBLIC KEY BLOCK-----
diff --git a/nds/thoos.md b/nds/thoos.md
new file mode 100644 (file)
index 0000000..5d0f61d
--- /dev/null
@@ -0,0 +1,9 @@
+---
+layout: index
+title: Mart Lubbers' webstie
+language: nds
+language_reference: home
+---
+
+{% include toc.html %}
+
diff --git a/nl/thuis.md b/nl/thuis.md
new file mode 100644 (file)
index 0000000..d4530a5
--- /dev/null
@@ -0,0 +1,8 @@
+---
+layout: index
+title: Mart Lubbers' webpagina
+language: nl
+language_reference: home
+---
+
+{% include toc.html %}
diff --git a/nonm.md b/nonm.md
deleted file mode 100644 (file)
index deb5863..0000000
--- a/nonm.md
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: Wifi without network manager
-date: 2020-09-16
----
-With this setup, `wpa_supplicant` automatically changes network when needed.
-Moreover, the network can be changed in userspace and new networks can be added.
-All withouth the bloat of `NetworkManager` and `ModemManager`.
-
-## Table of contents
-                               
-- [Requirements](#requirements)
-- [`wpa_supplicant`](#wpa_supplicant)
-- [`wpa_supplicant.conf`](#wpa_supplicantconf)
-- [`wpa_gui`](#wpa_gui)
-- [Eduroam](#eduroam)
-       - [update: cat broken](#update)
-       - [openssl update](#openssl)
-- [interaction](#interaction)
-
-## Requirements
-               
-- `wpa_supplicant`
-- `wpa_gui`
-               
-
-## `wpa_supplicant`
-`/etc/network/interfaces` needs for direct use with a `wpa_supplicant` daemon.
-This is done by setting the wireless network as follows.
-
-```
-allow-hotplug wlp2s0
-iface wlp2s0 inet manual
-       wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
-```
-
-This basically means that a `wpa_supplicant` will be watching the networks specified in the config and switch when in range.
-Note that the `iface` is set to `manual` and not `dhcp`.
-This means that below those lines you can configure your networks from the config manually.
-So say that you have a network in the `wpa_supplicant.conf` with `id_str="work"` that needs to be configured with dhcp, you add the following lines:
-
-```
-iface work inet dhcp
-```
-
-Setting `id_str`s for all networks is tedious so to create a default setting you can use the `default` network name to for example set all wifi networks to dhcp.
-
-```
-iface default inet dhcp
-```
-
-## `wpa_supplicant.conf`
-The config file for `wpa_supplicant` should at least contain the following lines.
-The `interface` line defines the control socket and states that all users in the `netdev` group may control `wpa_supplicant`.
-The `update_config` line states that the config file may be updated, thus having persistent changes.
-Users you allow changing the config therefore have to be added to `netdev`.
-
-               <pre>
-interface=DIR=/run/wpa_supplicant GROUP=netdev
-update_config=1
-               </pre>
-
-               <p>
-               Followed are all the network configurations.
-               For these configuration consult the manpage for `wpa_supplicant`.
-               E.g. for `WPA2` networks you can use the `wpa_passphrase` tool.
-               For eduroam, don't handcraft configs either, use the [configuration assistant](https://cat.eduroam.org/).
-               This tool will generate a `wpa_supplicant.conf` if it fails to talk to networkmanager.
-               </p>
-
-## `wpa_gui`
-Editing the config file is tedious and error prone.
-Moreover, it requires a restart of `wpa_supplicant` to reinistate the config.
-Luckily there are two tools that allow you to do this in-place using either the command line (`wpa_cli` is not discussed here) and via a GUI(`wpa_gui`).
-If your user is a member of the `netdev` group you can just start it up.
-Note that it resides by default in `/usr/sbin`.
-`wpa_gui` is a graphical frontend where you can add, remove, diagnose and change wireless networks with _almost_ as much functionality as `wpa_cli`.
-
-## Eduroam
-Eduroam gives a nice configuration assistant tools nowadays that will generate a `wpa_supplicant.conf` entry for you.
-Previously you could hash your password using md4 but I haven't tested whether this still works.
-
-### update: cat broken
-The tool worked before&trade; but not anymore on my debian testing version.
-Therefore I've pasted my config here for later reference.
-You get the `ca_cert` from the assistant tool.
-I might upload that here as well.
-
-```
-network={
-       ssid="eduroam"
-       proto=RSN
-       key_mgmt=WPA-EAP
-       pairwise=CCMP
-       auth_alg=OPEN
-       eap=PEAP
-       identity="YOURUSERNAME@ru.nl"
-       anonymous_identity="anonymous@ru.nl"
-       password="YOURPASSWORD"
-#      ca_cert="/home/frobnicator/.cat_installer/ca.pem"
-       domain_suffix_match="authenticatie.ru.nl"
-       phase2="auth=MSCHAPV2"
-}
-```
-
-### openssl update (not needed anymore)
-The new version of openssl disables everything lower than TLSv1.2.
-If you see errors in `/var/log/syslog` about `TLS` you have to allow lower version TLS versions by changing the last two lines in `/etc/ssl/openssl.cnf` to:
-
-```
-MinProtocol = TLSv1.0
-CipherString = DEFAULT@SECLEVEL=1
-```
-
-## Interaction with wired interfaces
-When you have an ethernet jack as well in your laptop you might be tempted to put this in your `/etc/network/interfaces` as well
-
-```
-auto enp0s31f6
-iface enp0s31f6 inet dhcp
-```
-
-However, this results in your machine eagerly waiting for a connection at boot because a _connected_ ethernet jack means a connected card, and the card is always connected in a laptop.
-`ifupdown-extra` contains scripts to fix this.
-Just link `/etc/network/if-up.d/00check-network-cable` to `/etc/network/if-pre-up.d/00check-network-cable` and be good to go.
-If your system has _predictable_ network names you might need to apply [this](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=970359) patch first.
diff --git a/o.html b/o.html
deleted file mode 100644 (file)
index 48dcc2b..0000000
--- a/o.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>
-<head>
-<title>Website voor oma!</title>
-
-<script src="cardgamecore.js" type="text/javascript"></script>
-<script src="solitaire.js" type="text/javascript"></script>
-
-</head>
-<body bgcolor="#000000" alinks="#F3F781" link="F3F781" text="FFFFF" vlink="F3F781">
-
-<h3>Hallo Oma</h3>
-<p>Het is je gelukt om het raadsel te ontcijferen en daarvoor heb ik deze internet site gemaakt met wat leuke en/of nostalgische dingen.
-Ten eerste van harte gefeliciteerd met je 80ste verjaardag en ik hoop dat er nog veel jaren bij komen.
-Iedereen werd gevraagd om iets te maken voor het boekje wat bij die gene past en ik vond dat dit wel bij mij past.
-Deze website zal altijd te bereiken zijn voor als je het nog eens terug wilt kijken.</p>
-
-<h3>Leuke links</h3>
-<a href="http://martlubbers.net">Mijn website: hierop staan een paar leuke filmpjes van de dingen die ik op de universiteit allemaal beleef.</a>
-
-<h3>Leuke muziekjes van vroeger en nu</h3>
-<iframe width="420" height="315" src="http://www.youtube.com/embed/RpX59JHnDOk?rel=0" frameborder="0" allowfullscreen></iframe>
-<iframe width="420" height="315" src="http://www.youtube.com/embed/BGLR25EJtfE?rel=0" frameborder="0" allowfullscreen></iframe>
-<iframe width="420" height="315" src="http://www.youtube.com/embed/Hlk0ohCYErE?rel=0" frameborder="0" allowfullscreen></iframe>
-
-<h3>Patience</h3>
-
-
-<h3>Email mij</h3>
-<p><a href="mailto:mart@martlubbers.net">mart@martlubbers.net</a></p>
-</body>
-</html>
diff --git a/readme.markdown b/readme.markdown
new file mode 100644 (file)
index 0000000..0f4e7fe
--- /dev/null
@@ -0,0 +1,855 @@
+# Multilingual Experiment in Jekyll
+
+The [basic *GitHub Pages* site](https://ranbureand.github.io/multilingual-experiment/) hosted in this repository and this README illustrate my approach to create a multilingual site in *[Jekyll](https://jekyllrb.com/ "Jekyll")*.
+
+## Table of Contents
+
++ [Preface](#preface)
++ [Foreword](#foreword)
++ [Directory Structure](#directory-structure)
+  + [Pages](#pages)
+    + [Exceptions](#exceptions)
+  + [Posts](#posts)
+    + [Configuration](#configuration)
++ [Front Matter](#front-matter)
+  + [Pages](#pages-1)
+  + [Posts](#posts-1)
++ [Data Files](#data-files)
+  + [Snippets](#snippets)
++ [Includes](#includes)
+  + [header.html](#headerhtml)
+    + [navigation.html](#navigationhtml)
+    + [language-switch.html](#language-switchhtml)
+      + [if page.layout == 'page'](#if-pagelayout--page)
+      + [elsif page.layout == 'post'](#elsif-pagelayout--post)
+      + [else](#else)
+      + [Fallback Page](#fallback-page)
+    + [title.html](#titlehtml)
+  + [localizations.html](#localizationshtml)
++ [Multilingual Sitemaps](#multilingual-sitemaps)
+  + [Sitemap Index File](#sitemap-index-file)
+  + [Sitemap Files](#sitemap-files)
++ [RSS Feed](#rss-feed)
++ [404 Page Not Found](#404-page-not-found)
++ [Resources](#resources)
++ [Afterword](#afterword)
+
+## Preface
+
+When I found myself coding a multilingual site in [Jekyll](https://jekyllrb.com/ "Jekyll"), I stumbled on [a lot of useful resources](#resources) while surfing the Web, but I struggled not a little while trying to digest and replicate their approaches because of the lack of a concrete, working example to look at.
+
+At first, I tried to replicate their approaches directly in the site I was working on, but this quickly backfired because it proved to be too big of a bite to chew for a designer who codes.
+
+Not giving up, I then opted for creating a basic site from scratch, so that I could just focus on experimenting with multiple languages in Jekyll without any extra complexity in the picture.
+
+That very same basic site is hosted in this repository, which I gladly share with the world as an example project, hoping to be of a help for anybody who is into coding a multilingual site using Jekyll.
+
+## Foreword
+
+A few words before starting. Sites built with the approach illustrated in this README:
+
++ can support [as many languages as needed](#directory-structure)
++ can serve pages or posts that do not necessarily need to be translated in all the supported languages
++ have a [language switch](#language-switchhtml) that can either direct web surfers to view the current page or post in the selected language, if available, or can direct them to an alternative [fallback page](#fallback-page)
++ do not need you to install custom plugins
++ leverage the basics of Jekyll and thus should be relatively future-proof (last famous words)
++ can be published as *GitHub Pages* sites
+
+Specifically, [the basic site](https://ranbureand.github.io/multilingual-experiment/) hosted in this repository and used as an example:
+
++ is visually quite crude, since the focus is on illustrating a structural (not visual) approach to building multilingual sites
++ supports English and Italian as example languages
+
+## Directory Structure
+
+The directory structure of this basic site looks like this:
+
+```
+.
+├── _data
+│   └── snippets.yml
+├── _includes
+│   ├── head.html
+│   ├── header.html
+│   ├── localizations.html
+│   └── references.html
+├── _layouts
+│   ├── base.html
+│   ├── index.html
+│   ├── page.html
+│   └── post.html
+├── _posts
+│   ├── en
+│   │   ├── YYYY-MM-DD-title.markdown
+│   │   ├── …
+│   │   └── YYYY-MM-DD-title.markdown
+│   └── it
+│       ├── YYYY-MM-DD-titolo.markdown
+│       ├── …
+│       └── YYYY-MM-DD-titolo.markdown
+├── 404.html
+├── config.yml
+├── en
+│   ├── drafts.html
+│   ├── feed.xml
+│   ├── postface.html
+│   ├── preface.html
+│   ├── sitemap.xml
+│   └── stories.html
+├── index.html
+├── it
+│   ├── bozze.html
+│   ├── feed.xml
+│   ├── prefazione.html
+│   ├── sitemap.xml
+│   └── storie.html
+└── sitemap.xml
+```
+
+### Pages
+
+We organize the pages into as many subdirectory as the languages that we plan to support, and name them using [ISO language codes](https://www.w3schools.com/tags/ref_language_codes.asp "HTML Language Code Reference in W3Schools"). This basic site has two subdirectories, one named `en` for grouping the English pages, and one named `it` for grouping the Italian pages.
+
+```
+├── …
+├── en
+│   ├── drafts.html
+│   ├── feed.xml
+│   ├── postface.html
+│   ├── preface.html
+│   ├── sitemap.xml
+│   └── stories.html
+├── …
+├── it
+│   ├── bozze.html
+│   ├── feed.xml
+│   ├── prefazione.html
+│   ├── sitemap.xml
+│   └── storie.html
+├── …
+```
+
+After Jekyll has built the site, we can reach, for example, the English page `stories.html` and the Italian page `storie.html` at the URLs `www.site.ext/en/stories.html` and `www.site.ext/it/storie.html`, respectively.
+
+#### Exceptions
+
+But, of course, there are exceptions. We place the pages `404.html`, `index.html`, and `sitemap.html` in the root directory of the site. Why?
+
+`404.html` and `index.html` are *unique* pages because Jekyll builds and serves automatically one and only one of them at a time.
+
+`sitemap.xml` instead is none other than a [Sitemap index](https://www.sitemaps.org/protocol.html#index "Sitemaps XML Format, Sitemap index") which points to the other localized sitemaps in the respective language subfolders (read the section [Multilingual Sitemap](#multilingual-sitemap) for more details).
+
+### Posts
+
+We organize the posts following a similar logic. This basic site has two subdirectories in the folder named `_posts`, one named `en` for grouping the English posts, and one named `it` for grouping the Italian posts.
+
+```
+├── …
+├── _posts
+│   ├── en
+│   │   ├── YYYY-MM-DD-title.markdown
+│   │   ├── …
+│   │   └── YYYY-MM-DD-title.markdown
+│   └── it
+│       ├── YYYY-MM-DD-titolo.markdown
+│       ├── …
+│       └── YYYY-MM-DD-titolo.markdown
+├── …
+```
+
+#### Configuration
+
+We then add the following configuration options in the `_config.yml` file placed in the site’s root directory:
+
+``` yaml
+defaults:
+-
+  scope:
+    path: '_posts/en'
+    type: 'posts'
+  values:
+    permalink: 'en/story/:title'
+    language: en
+-
+  scope:
+    path: '_posts/it'
+    type: 'posts'
+  values:
+    permalink: 'it/storia/:title'
+    language: it
+```
+
+By setting global permalinks for posts, we can reach, for example, the English post named `2021-01-01-hello-world.markdown` and the Italian post named `2021-01-01-ciao-mondo.markdown` at the URLs `www.site.ext/en/hello-world.html` and `www.site.ext/it/ciao-mondo.html`, respectively.
+
+## Front Matter
+
+### Pages
+
+Here is how the front matter of a page looks like:
+
+``` yaml
+---
+layout: page
+
+title: Stories
+description: Stories.
+
+language: en
+language_reference: stories
+
+published: true
+---
+```
+
+But for the usual variables, we set two new ones, `language` to define the language of the page, and `language_reference` to relate different translations of the same page. The logic is based on the principle articulated in Sylvain Durand’s *[Making Jekyll Multilingual](https://sylvaindurand.org/making-jekyll-multilingual/#principle "Making Jekyll
+Multilingual")*.
+
+For example, here is the front matter of the English page *Stories*:
+
+``` yaml
+---
+layout: page
+
+title: Stories
+description: Stories.
+
+language: en
+language_reference: stories
+
+published: true
+---
+```
+
+and here is the front matter of its Italian counterpart:
+
+``` yaml
+---
+layout: page
+
+title: Storie
+description: Storie.
+
+language: it
+language_reference: stories
+
+published: true
+---
+```
+
+Both pages have the variable `language_reference` set to `stories` so that they can be easily related.
+
+We can use `language` to retrieve only the pages that have the same language, and `language_reference` to retrieve only the pages that return the same content translated in different languages.
+
+### Posts
+
+Here is how the front matter of a post looks like:
+
+``` yaml
+---
+layout: post
+
+title: Hello World
+description: Hello world.
+date: 2021-01-01 00:00:00
+
+language: en
+language_reference: world
+
+published: true
+---
+```
+
+Again, but for the usual variables, we set two new ones, `language` to define the language of the post, and `language_reference` to relate different translations of the same post.
+
+For example, here is the front matter of the English post *Hello World*:
+
+``` yaml
+---
+layout: post
+
+title: Hello World
+description: Hello world.
+date: 2021-01-01 00:00:00
+
+language: en
+language_reference: world
+
+published: true
+---
+```
+
+and here is the front matter of its Italian counterpart:
+
+``` yaml
+---
+layout: post
+
+title: Ciao Mondo
+description: Ciao Mondo.
+date: 2021-01-01 00:00:00
+
+language: it
+language_reference: world
+
+published: true
+---
+```
+
+Both posts have the variable `language_reference` set to `world` so that they can be easily related.
+
+Again, we can use `language` to retrieve only the posts that have the same language, and `language_reference` to retrieve only the posts that return the same content translated in different languages.
+
+## Data Files
+
+### Snippets
+
+We create a YAML [Data File](https://jekyllrb.com/docs/datafiles/ "Data Files") named `snippets.yml` to store the different translations of the user interface copy as additional data in the `_data` subdirectory.
+
+We then create a new variable named `snippets` in the `base.html` layout to shorten the code that we need to write to access the data contained in the `snippets.yml` file:
+
+``` liquid
+{%- assign snippets = site.data.snippets %}
+```
+
+Since the `base.html` layout works as the base for all the other layouts, if we place the variable `snippets` there, we can then call it from any page.
+
+Through this variable, we can write just `snippets.name_of_the_data_item` when accessing a data item rather than the full, longer `site.data.snippets.name_of_the_data_item`.
+
+For example, the piece of code that generates *Back to the Top* link at the bottom of the page:
+
+``` liquid
+<a href="#{{ snippets.top[page.language] | slugify: 'latin' }}">{{ snippets.back[page.language] }}</a>
+```
+
+uses the following variable:
+
+``` liquid
+{{ snippets.back[page.language] }}
+```
+
+to retrieve the name of the link in the current selected language from the following lines in the `snippets.yml` data file:
+
+``` yaml
+back:
+  en: Back to the Top
+  it: Torna in Cima
+
+top:
+  en: Top
+  it: Cima
+```
+
+## Includes
+
+The purpose of most of the includes in this basic site is building the navigation.
+
+### header.html
+
+The include `header.html` generates the header in the HTML page. It, in turn, has three more includes:
+
++ `title.html`
++ `navigation.html`
++ `language-switch.html`
+
+``` liquid
+<header>
+  {% include site-title.html %}
+  <nav>
+    {% include navigation.html %}
+
+    {% include language-switch.html %}
+  </nav>
+</header>
+```
+
+#### navigation.html
+
+The include `navigation.html` generates an unordered list containing all the published pages having the same `language` variable as the current page.
+
+``` liquid
+<ul>
+  {%- assign navigation_pages = site.pages
+    | where: 'layout', 'page'
+    | where: 'language', page.language
+    | where: 'published', true
+    | sort: 'order' %}
+  {%- for navigation_page in navigation_pages %}
+  <li{%- if navigation_page.title == page.title %} class="current"{%- endif %}>
+    <a href="{{ site.baseurl }}{{ navigation_page.url }}">{{ navigation_page.title }}</a>
+  </li>
+  {%- endfor %}
+</ul>
+```
+
+In the code above, we create a new variable named `navigation_pages` which returns a list of the pages that, [in their front matter](#pages-1), have:
+
++ the `layout` variable set to `page`
++ the `language` variable set to the language of the current page (`page.language`)
++ the `published` variable set to `true`
+
+and we order the list according to the `order` variable. We then loop trough the array of pages and generate the list items of the unordered list.
+
+Whenever the title of the current page in the array (`navigation_page.title`) matches the title of the current page (`page.title`), we add a class named `current` to the corresponding `<li/>` tag.
+
+#### language-switch.html
+
+The include `language-switch.html` generates an unordered list containing all the languages supported in the site. You can use the list to switch to one of the other language translations of the current page/post, if available.
+
+``` liquid
+<ul>
+  {%- for language in snippets.languages %}
+
+    {%- if page.layout == 'page' %}
+      {%- assign navigation_pages = site.pages
+        | where: 'language_reference', page.language_reference
+        | where: 'language', language[1].slug %}
+      {%- if navigation_pages.size == 1 %}
+        {%- for navigation_page in navigation_pages %}
+          {%- assign url = site.baseurl | append: navigation_page.url %}
+        {%- endfor %}
+      {%- else %}
+        {%- assign navigation_pages = site.pages
+          | where: 'language_reference', site.fallback_page
+          | where: 'language', language[1].slug %}
+        {%- for navigation_page in navigation_pages %}
+          {%- assign url = site.baseurl | append: navigation_page.url %}
+        {%- endfor %}
+      {%- endif %}
+
+    {%- elsif page.layout == 'post' %}
+      {%- assign navigation_posts = site.posts
+        | where: 'language_reference', page.language_reference
+        | where: 'language', language[1].slug %}
+      {%- if navigation_posts.size == 1 %}
+        {%- for navigation_post in navigation_posts %}
+          {%- assign url = site.baseurl | append: navigation_post.url %}
+        {%- endfor %}
+      {%- else %}
+        {%- assign navigation_pages = site.pages
+          | where: 'language_reference', site.fallback_page
+          | where: 'language', language[1].slug %}
+        {%- for navigation_page in navigation_pages %}
+          {%- assign url = site.baseurl | append: navigation_page.url %}
+        {%- endfor %}
+      {%- endif %}
+
+    {%- else %}
+      {%- assign navigation_pages = site.pages
+        | where: 'language_reference', site.fallback_page
+        | where: 'language', language[1].slug %}
+      {%- for navigation_page in navigation_pages %}
+        {%- assign url = site.baseurl | append: navigation_page.url %}
+      {%- endfor %}
+
+    {%- endif %}
+    <li{%- if language[1].slug == page.language %} class="current"{%- endif %}>
+      <a href="{{ url }}">{{ language[1].value }}</a>
+    </li>
+  {%- endfor %}
+</ul>
+```
+
+In the code above, we loop through the languages defined in the `snippets.html` file (read the section [Snippets](#snippets) for more details).
+
+``` yaml
+languages:
+  en:
+    value: English
+    slug: en
+  it:
+    value: Italian
+    slug: it
+```
+
+The *for* loop contains three different code blocks that are run only if specific conditions are met. If we were to look only at its high-level structure:
+
+``` liquid
+<ul>
+  {%- for language in snippets.languages %}
+
+    {%- if page.layout == 'page' %}
+      <!-- first code block -->
+
+    {%- elsif page.layout == 'post' %}
+      <!-- second code block -->
+
+    {%- else %}
+      <!-- third code block -->
+
+    {%- endif %}
+    <li {%- if language[1].slug == page.language %} class="current"{%- endif %}>
+      <a href="{{ url }}">{{ language[1].value }}</a>
+    </li>
+  {%- endfor %}
+</ul>
+```
+
+We run the first block of code only if the `layout` variable of the current page is set to `page`, else, if it is set to `post`, we run the second block of code, else, if it is set to anything else (or to nothing at all), we run the third block of code.
+
+After at least one of the code blocks has been run, we generate the list items of the unordered list.
+
+Whenever the slug of the current language item of the array `snippets.languages` (`language[1].slug`) matches the language of the current page (`page.language`), we add a class named `current` to the corresponding `<li/>` tag.
+
+##### if page.layout == 'page'
+
+``` liquid
+{%- if page.layout == 'page' %}
+  {%- assign navigation_pages = site.pages
+    | where: 'language_reference', page.language_reference
+    | where: 'language', language[1].slug %}
+  {%- if navigation_pages.size == 1 %}
+    {%- for navigation_page in navigation_pages %}
+      {%- assign url = site.baseurl | append: navigation_page.url %}
+    {%- endfor %}
+  {%- else %}
+    {%- assign navigation_pages = site.pages
+      | where: 'language_reference', site.fallback_page
+      | where: 'language', language[1].slug %}
+    {%- for navigation_page in navigation_pages %}
+      {%- assign url = site.baseurl | append: navigation_page.url %}
+    {%- endfor %}
+  {%- endif %}
+```
+
+What does the first block of code do?
+
+``` liquid
+{%- assign navigation_pages = site.pages
+  | where: 'language_reference', page.language_reference
+  | where: 'language', language[1].slug %}
+```
+
+We create a new variable named `navigation_pages` which returns a list of the pages that, [in their front matter](#pages-1), have:
+
++ the `language_reference` variable equal to the current page’s `language_reference` variable (`page.language_reference`)
++ the `language` variable equal to the slug of the current language item (`language[1].slug`) in the array `snippets.languages`
+
+If we set the front matter of the pages correctly, the size of the array `navigation_pages` should be:
+
++ either equal to one if the current page <u>has</u> a corresponding page translated in the current language item of the array `snippets.languages`
++ or equal to zero if the current page <u>does not have</u> a corresponding page translated in the current language item of the array `snippets.languages`
+
+``` liquid
+{%- if navigation_pages.size == 1 %}
+  {%- for navigation_page in navigation_pages %}
+    {%- assign url = site.baseurl | append: navigation_page.url %}
+  {%- endfor %}
+```
+
+If the size of the array `navigation_pages` is equal to one, we loop through the array `navigation_pages` and create a new variable named `url` by combining the `site.baseurl` (defined in the `_config.yml` file) and the url of the one page (`navigation_page.url`) contained in the array `navigation_pages`.
+
+``` liquid
+{%- else %}
+  {%- assign navigation_pages = site.pages
+    | where: 'language_reference', site.fallback_page
+    | where: 'language', language[1].slug %}
+  {%- for navigation_page in navigation_pages %}
+    {%- assign url = site.baseurl | append: navigation_page.url %}
+  {%- endfor %}
+{%- endif %}
+```
+
+If instead, the size of the array `navigation_pages` is equal to zero (or more than one, which is trouble), we do not have a corresponding page in the current language item of the array `snippets.languages` to switch to.
+
+Thus, we provide a fallback page (`site.fallback_page`) so that web surfers who interact with the language switch and press on a language that does not support the current page are at least redirected to a meaningful page in the language they selected.
+
+We set the `fallback_page` in the `_config.yml` file placed in the site’s root directory:
+
+``` yaml
+fallback_page: 'stories'
+```
+
+The fallback pages of this basic site are those whose `language_reference` variable is set to `stories`.
+
+Why `stories`? Because the pages whose `language_reference` variable is set to `stories` work as *home* pages, since they:
+
++ return a list of all the published posts (they have exactly the same structure as the `index.html` page)
++ have a translated counterpart in all the languages supported on the site
+
+##### elsif page.layout == 'post'
+
+``` liquid
+{%- elsif page.layout == 'post' %}
+  {%- assign navigation_posts = site.posts
+    | where: 'language_reference', page.language_reference
+    | where: 'language', language[1].slug %}
+  {%- if navigation_posts.size == 1 %}
+    {%- for navigation_post in navigation_posts %}
+      {%- assign url = site.baseurl | append: navigation_post.url %}
+    {%- endfor %}
+  {%- else %}
+    {%- assign navigation_pages = site.pages
+      | where: 'language_reference', site.fallback_page
+      | where: 'language', language[1].slug %}
+    {%- for navigation_page in navigation_pages %}
+      {%- assign url = site.baseurl | append: navigation_page.url %}
+    {%- endfor %}
+  {%- endif %}
+```
+
+The second block of code behaves akin to the first, with the only difference that we manipulate an array of posts (`navigation_posts`) rather than one of pages (`navigation_pages`).
+
+##### else
+
+``` liquid
+{%- else %}
+  {%- assign navigation_pages = site.pages
+    | where: 'language_reference', site.fallback_page
+    | where: 'language', language[1].slug %}
+  {%- for navigation_page in navigation_pages %}
+    {%- assign url = site.baseurl | append: navigation_page.url %}
+  {%- endfor %}
+```
+
+The third block of code runs in the remote eventuality in which both the first and second blocks of code are not run, so that we make sure, again, to serve a fallback page to our web surfers.
+
+##### Fallback Page
+
+How can we be sure that the fallback page truly works?
+
+In this basic site, not all the pages and posts are translated into all the supported languages—on purpose.
+
+###### Pages
+
+| English | Italian |
+| - | - |
+| preface.html | prefazione.html |
+| stories.html | storie.html |
+| postface.html| — |
+
+If you go to [the English page *Postface*](https://ranbureand.github.io/multilingual-experiment/en/postface.html) and press on *Italian* in the language switch, you can see that you are indeed redirected to the Italian page *Storie*.
+
+###### Posts
+
+| English | Italian |
+| - | - |
+| hello-world.markdown | ciao-mondo.markdown |
+| hello-mars.markdown | ciao-marte.markdown |
+| — | ciao-giove.markdown |
+
+Similarly, if you go to [the Italian post *Ciao Giove*](https://ranbureand.github.io/multilingual-experiment/it/storia/ciao-giove) and press on *English* in the language switch, you can see that you are indeed redirected to the English page *Stories*.
+
+#### title.html
+
+The include `title.html` generates the title of this basic site.
+
+``` liquid
+{%- if page.language == site.default_language %}
+  {%- assign url = site.baseurl | append: '/'%}
+{%- else %}
+  {%- assign navigation_pages = site.pages
+    | where: 'language_reference', site.fallback_page
+    | where: 'language', page.language %}
+  {%- for navigation_page in navigation_pages %}
+    {%- assign url = site.baseurl | append: navigation_page.url %}
+  {%- endfor %}
+{%- endif %}
+<h1>
+  <a href="{{ url }}" {%- if page.url == '/' %} class="current"{%- endif %}>{{ site.title }}</a>
+</h1>
+```
+
+Again, we have two different code blocks that are run only if specific conditions are met.
+
+We run the first code block when the language of the current page (`page.language`) is equal to the default language (`site.default_language`) defined in the `_config.yml` file. Through it we create a new variable named `url` by combining the `site.baseurl` (defined in the `_config.yml` file) and `/`, that is, the domain name of the site. Web surfers who browse the site in the default language are directed to the main page when they press on the title.
+
+Else, we run the second code block to provide the usual fallback page already discussed above (read the section [language-switch.html](#language-switchhtml) for more details). Web surfers who browse the site in a language different than the default one are directed to the fallback page in their current language when they press on the title.
+
+### localizations.html
+
+The include `localizations.html` adds `<link rel="alternate" … />` tags in the `<head/>` tag of a page [to tell search engines](https://developers.google.com/search/docs/advanced/crawling/localized-versions "Tell Google about localized versions of your page") if there are multiple versions of the page for different languages or regions.
+
+``` liquid
+{%- if page.layout == 'page' %}
+  {%- assign localized_pages = site.pages
+    | where: 'language_reference', page.language_reference
+    | sort: 'language' %}
+  {%- for localized_page in localized_pages %}
+    <link rel="alternate" hreflang="{{ localized_page.language }}" href="{{ site.baseurl }}{{ localized_page.url }}" />
+  {%- endfor %}
+
+{%- elsif page.layout == 'post' %}
+  {%- assign localized_posts = site.posts
+  | where: 'language_reference', page.language_reference
+  | sort: 'language' %}
+  {%- for localized_post in localized_posts %}
+    <link rel="alternate" hreflang="{{ localized_post.language }}" href="{{ site.baseurl }}{{ localized_post.url }}" />
+  {%- endfor %}
+
+{%- elsif page.layout == 'index' %}
+  {%- assign localized_pages = site.pages
+    | where: 'language_reference', site.fallback_page
+    | sort: 'language' %}
+  {%- for localized_page in localized_pages %}
+    <link rel="alternate" hreflang="{{ localized_page.language }}" href="{{ site.baseurl }}{{ localized_page.url }}" />
+  {%- endfor %}
+{%- endif %}
+```
+
+Again, we have three different code blocks that are run only if specific conditions are met (read the section [language-switch.html](#language-switchhtml) for more details).
+
+## Multilingual Sitemaps
+
+To serve a multilingual sitemap, we need to create a [Sitemap index](https://www.sitemaps.org/protocol.html#index "Sitemaps XML Format, Sitemap index") file and list a Sitemap file for each language we support.
+
+### Sitemap Index File
+
+We place the page named `sitemap.html` in the root directory of the site. It points to the other localized sitemaps in the respective language subfolders.
+
+``` liquid
+---
+layout: none
+
+sitemap:
+  excluded: true
+---
+
+<?xml version="1.0" encoding="UTF-8"?>
+<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+
+  {%- assign pages = site.pages | where: 'language_reference', 'sitemap' %}
+
+  {%- for page in pages %}
+    <sitemap>
+      <loc>{{ site.absoluteurl }}{{ page.url | remove: 'index.html' }}</loc>
+
+      {%- if page.sitemap.lastmod %}
+        {%- assign lastmod = page.sitemap.lastmod | date: '%Y-%m-%d' %}
+      {%- elsif page.date %}
+        {%- assign lastmod = page.date | date_to_xmlschema %}
+      {%- else %}
+        {%- assign lastmod = site.time | date_to_xmlschema %}
+      {%- endif %}
+      <lastmod>{{ lastmod }}</lastmod>
+    </sitemap>
+  {%- endfor %}
+
+</sitemapindex>
+```
+
+By setting the following variables in the front matter of the Sitemap index file:
+
+``` yaml
+sitemap:
+  excluded: true
+```
+
+we make sure to exclude it from the list of pages returned in the other Sitemap files.
+
+### Sitemap Files
+
+``` liquid
+---
+layout: none
+
+title: English Sitemap
+
+language: en
+language_reference: sitemap
+
+sitemap:
+  excluded: true
+---
+
+<?xml version="1.0" encoding="UTF-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+
+  {%- assign posts = site.posts | sort: 'date' | where: 'language', page.language | where: 'published', true %}
+
+  {%- for post in posts reversed %}
+    {%- unless post.sitemap.excluded == true %}
+    <url>
+      <loc>{{ site.absoluteurl }}{{ post.url }}</loc>
+
+      {%- if post.sitemap.lastmod %}
+        {%- assign lastmod = post.sitemap.lastmod | date: '%Y-%m-%d' %}
+      {%- elsif post.date %}
+        {%- assign lastmod = post.date | date_to_xmlschema %}
+      {%- else %}
+        {%- assign lastmod = site.time | date_to_xmlschema %}
+      {%- endif %}
+      <lastmod>{{ lastmod }}</lastmod>
+
+      {%- if post.sitemap.changefreq %}
+        {%- assign changefreq = post.sitemap.changefreq %}
+      {%- else %}
+        {%- assign changefreq = 'monthly' %}
+      {%- endif %}
+      <changefreq>{{ changefreq }}</changefreq>
+
+      {%- if post.sitemap.priority %}
+        {%- assign priority = post.sitemap.priority %}
+      {%- else %}
+        {%- assign priority = 0.5 %}
+      {%- endif %}
+      <priority>{{ priority }}</priority>
+    </url>
+    {%- endunless %}
+  {%- endfor %}
+
+  {%- assign pages = site.pages | where: 'language', page.language %}
+
+  {%- for page in pages %}
+    {%- unless page.sitemap.excluded == true %}
+    <url>
+      <loc>{{ site.absoluteurl }}{{ page.url | remove: 'index.html' }}</loc>
+
+      {%- if post.sitemap.lastmod %}
+        {%- assign lastmod = page.sitemap.lastmod | date: '%Y-%m-%d' %}
+      {%- elsif post.date %}
+        {%- assign lastmod = page.date | date_to_xmlschema %}
+      {%- else %}
+        {%- assign lastmod = site.time | date_to_xmlschema %}
+      {%- endif %}
+      <lastmod>{{ lastmod }}</lastmod>
+
+      {%- if page.sitemap.changefreq %}
+        {%- assign changefreq = page.sitemap.changefreq %}
+      {%- else %}
+        {%- assign changefreq = 'monthly' %}
+      {%- endif %}
+      <changefreq>{{ changefreq }}</changefreq>
+
+      {%- if page.sitemap.priority %}
+        {%- assign priority = page.sitemap.priority %}
+      {%- else %}
+        {%- assign priority = 0.3 %}
+      {%- endif %}
+      <priority>{{ priority }}</priority>
+    </url>
+    {%- endunless %}
+  {%- endfor %}
+
+</urlset>
+```
+
+``` yaml
+---
+…
+
+sitemap:
+  lastmod: true
+  changefreq: 'monthly'
+  priority: ''
+---
+```
+
+### RSS Feed
+
+*Coming soon…*
+
+### 404 Page Not Found
+
+*Coming soon…*
+
+## Resources
+
++ [Making Jekyll multilingual](https://sylvaindurand.org/making-jekyll-multilingual/ "Making Jekyll multilingual")
++ [Making a multilingual website with Jekyll collections](https://www.kooslooijesteijn.net/blog/multilingual-website-with-jekyll-collections "Making a multilingual website with Jekyll collections")
+
+## Afterword
+
+If you feel like adding something to the subject and/or you have spotted something worth fixing, please feel free to either [drop me a line](andreaburan.com/ "Andrea Buran’s Sitefolio") or [create an issue on GitHub](https://github.com/ranbureand/multilingual-experiment/issues): thoughts, critiques, suggestions are all more than welcomed.
+
+Thank you!
+
diff --git a/test.php b/test.php
deleted file mode 100644 (file)
index 5d666fb..0000000
--- a/test.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<html>
-       <head>
-               <meta name="keywords" content="Doom, Black, Metal, Depressing, Depressed, Band, Name, Generator, Funeral">
-               <meta name="description" content="Doom metal band name generator">
-               <meta name="author" content="mart@martlubbers.net">
-               <title>Doom Metal Band Name Generator!</title>
-       </head>
-       <body bgcolor="#000000" ALINK="#FFFFFF" LINK="#FFFFFF" TEXT="#FFFFFF" VLINK="#FFFFFF">
-<?php
-$input = array(
-       "Ability", "Abnormal", "Abominable", "Abuse", "Adolescents", "Affect", "Agency", "Aid", "Alarm", "Alienation", "All ages", "Alone", "Anger", "Anguish", "Antidepressant", "Anxiety", "Anxious", "Ashamed", "Attempt", "Attention", "Attitude", "Awareness", 
-       "Boiling", "Bitter", "Bad", "Bipolar", "Blase", "Blue", "Brain", 
-       "Caregiver", "Certify", "Child", "Clarity", "Clinical", "Communication", "Concern", "Conclude", "Condition", "Confide", "Confusion", "Cooperative", "Cope", "Counsel", "Courage", "Cruel", "Cure", "Cycle", 
-       "Data", "Death", "Debilitating", "Defeated", "Degree", "Depressed", "Depression", "Descent", "Despair", "Despicable", "Detestable", "Detriment", "Diagnosis", "Die", "Discrimination", "Discouraged", "Disease", "Disgusting", "Disinterest", "Dissatisfied", "Diminished", "Disorder", "Disorder", "Distracted", "Doctor", "Dog days", "Doom", "Down", "Drugs", 
-       "Education", "Effect", "Endure", "Esteem", "Evaluation", 
-       "Family", "Fatigued", "Fear", "Feelings", "Fight", "Finality", "Friends", "Funeral", 
-       "Gain", "Grief", "Grieving", "Guideline", "Guilty",  
-       "Hard work", "Heal", "Health", "Heaven", "Help", "Helpless", "Hereditary", "Hopelessness", "Hope", "Hot-line", "Hurt", 
-       "Immune", "Improvement", "Inability", "Inactivity", "Indicator", "Insecure", "Interested", "Interfere", "Involvement", "Irritable", "Isolation", "Issues", 
-       "Jeer", "Joking", 
-       "Kill", "Knowledge", "Knowledgeable", 
-       "Label", "Lack", "Level", "Level", "Listening", "Lousy", "Loss", 
-       "Mad", "Media", "Medication", "Medicine", "Melancholia", "Mental", "Mental health", "Miserable", "Misunderstanding", "Monitor", "Mourning", 
-       "Necessary", "Need", "Negative", "Normal", "Nothing", 
-       "Observation", "Oncoming", "Opinion", "Option", "Organize", "Overcome", "Overwhelmed", 
-       "Pain", "Panic", "Parents", "Patience", "Patient", "Pattern", "Pay attention", "Peers", "Personal", "Physician", "Pills", "Prescription", "Powerless", "Prevent", "Prevention", "Programs", "Progress", "Progressive", "Protect", "Psychiatrist", 
-       "Quality", "Quantity", "Query", "Quest", 
-       "Reality", "Refusal", "Reign", "Report", "Repugnant", "Requirement", "Resulting", "Review", 
-       "Sadness", "Scared", "Security", "Separation", "Septic", "Seriousness", "Sewage", "Shades", "Siblings", "Signs", "Skills", "Sleep", "Sleep pattern", "Solitary", "Sorrow", "Source", "Statistics", "Stigma", "Strength", "Struggle", "Studies", "Substance abuse", "Succor", "Suffer", "Suicide", "Sulky", "Sympathetic", "Symptoms", 
-       "Tack", "Talk", "Talking", "Tears", "Teenagers", "Tentative", "Terrible", "Terrified", "Therapy", "Thoughts", "Time", "Tired", "Tragedy", "Tragic", "Trajectory", "Treat", "Treatment", "Treatment", "Treatment", "Triumph", "Troubled", 
-       "Uncertain", "Uncomfortable", "Understanding", "Unfulfilled", "Unique", "Unsettling", "Unusual", 
-       "Validation", "Victim",
-       "Warning", "Watch", "Weeping", "Withdrawal", "Woesome", "World Health Organization", "Worry", "Worthless",
-       "Youth", 
-       "Zero");
-$rand_keys = array_rand($input, 2);
-echo "\t\t<h1>" . $input[$rand_keys[0]] . " ";
-echo $input[$rand_keys[1]] . "</h1><br />\n";
-?>
-               <br />
-               <img src="http://www.metalmusicarchives.com/images/artists/arckanum.jpg"/><br/>
-               <font size="1">
-                       <a href="javascript:location.reload(true);">new</a><br/>
-                       <a href="mailto:mart@martlubbers.net">contact</a>
-               </font>
-       </body>
-<html>
diff --git a/triest/index.html b/triest/index.html
deleted file mode 100644 (file)
index 54ff3e0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-       <head>
-               <title>Trieste Muziek</title>
-               <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-               <meta name="viewport" content="width=device-width, initial-scale=1" />
-       </head>
-       <body>
-               <p>Home page of the record label Trieste Muziek.</p>
-               <p>For inquiries please contact <code>mart@triestemuziek.nl</code>.</p>
-       </body>
-</html>