fixed more possible bugs with filenames
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>
Sun, 26 Oct 2014 19:40:01 +0000 (20:40 +0100)
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>
Sun, 26 Oct 2014 19:40:01 +0000 (20:40 +0100)
22 files changed:
2048/index.in.md.de [new file with mode: 0644]
2048/index.in.md.eo [new file with mode: 0644]
2048/index.in.md.es [new file with mode: 0644]
cms/doc/index.in.md.en [new file with mode: 0644]
cms/index.in.md.en [new file with mode: 0644]
de.sh
de.tpl
dwm/index.in.md.de [new file with mode: 0644]
dwm/index.in.md.en [new file with mode: 0644]
dwm/index.in.md.eo [new file with mode: 0644]
en.sh
en.tpl
eo.sh
eo.tpl
es.sh
es.tpl
index.in.md.de [new file with mode: 0644]
index.in.md.en [new file with mode: 0644]
index.in.md.eo [new file with mode: 0644]
index.in.md.es [new file with mode: 0644]
mail-setup/index.in.md.de [new file with mode: 0644]
mail-setup/index.in.md.en [new file with mode: 0644]

diff --git a/2048/index.in.md.de b/2048/index.in.md.de
new file mode 100644 (file)
index 0000000..c8d4960
--- /dev/null
@@ -0,0 +1,17 @@
+# 2048
+
+Ich habe vor einigen Wochen eine [Version von 2048][orig]
+in C gefunden. Sie funktioniert zwar sehr gut, aber einige Funktionen mehr wären wünschenswert. Also
+habe ich sie erweitert, sodass sie jetzt Highscores speichert und man die Farben des Spielfelds
+verändern kann.
+
+
+Zum installieren muss man `git` und `make` installiert haben. Dann muss man
+nur noch den Befehl
+`git clone git://aubergine.gpcf.eu/2048.git && cd 2048 && make install`
+
+ausführen, um das Spiel zu installieren. Anschließend muss man `2048` eingeben, dann
+erscheint das Spiel. Der Befehl `man 2048` zeigt eine Hilfeseite auf Englisch.
+
+![2048 im Blau-Roten Design](/screenshots/2048.png "2048 unter `rxvt-unicode`")
+[orig]: https://github.com/mevdschee/2048.c
diff --git a/2048/index.in.md.eo b/2048/index.in.md.eo
new file mode 100644 (file)
index 0000000..3fe06d1
--- /dev/null
@@ -0,0 +1,14 @@
+# 2048
+
+Mi trovis [version de 2048][orig] kiu estas skribita en C. Ĝi funcias bone, sed ĝi mankas funkciojn. Do
+mi ĝi plivastigas. Ĝi nun konservi la poentaron kaj vi povas modifi la kolorojn de la ludo. 
+
+
+Por instali 2048 vi devas instali `git` kaj `make`. Tiam vi devas fari la komandon 
+`git clone git://aubergine.gpcf.eu/2048.git && cd 2048 && make install`
+
+por elŝuti la ludon. La komando `man 2048` mostras helppaĝon. Faru la komandon `2048` por
+ludi la ludon.
+
+![2048](/screenshots/2048.png "2048")
+[orig]: https://github.com/mevdschee/2048.c
diff --git a/2048/index.in.md.es b/2048/index.in.md.es
new file mode 100644 (file)
index 0000000..42be7ce
--- /dev/null
@@ -0,0 +1,16 @@
+# 2048
+
+Hace unas semanas he encontrado una [versión de 2048][orig] escrita en C, que funciona muy bien,
+pero le faltan funciones. Entonces la he ampliado. Ahora ella guarda la puntuación y se puede
+cambiar el color del tablero.
+
+
+Para instalar 2048 hace falta tener los programas `git` y `make` instalados.
+Para descargar 2048, hay que ejecutar la orden
+`git clone git://aubergine.gpcf.eu/2048.git && cd 2048 && make install`
+
+. Una vez descargado, se puede jugar escribiendo la orden `2048`. Para obtener ayuda,
+se puede ver la página de ayuda usando la orden `man 2048`.
+
+![2048 con el diseño azul y rojo](/screenshots/2048.png "2048 en `rxvt-unicode`")
+[orig]: https://github.com/mevdschee/2048.c
diff --git a/cms/doc/index.in.md.en b/cms/doc/index.in.md.en
new file mode 100644 (file)
index 0000000..1faa0d7
--- /dev/null
@@ -0,0 +1,4 @@
+
+# Documentation
+
+This is the documentation for the content management system.
diff --git a/cms/index.in.md.en b/cms/index.in.md.en
new file mode 100644 (file)
index 0000000..4a1a850
--- /dev/null
@@ -0,0 +1,147 @@
+
+# A Simple Multilingual Content Management System Written in Bash
+
+## Features
+
+* Write your pages in markdown
+* Convenient multilingual file format
+* Write your own templates as shell scripts (Copied from [werc](http://werc.cat-v.org))
+* Generates static pages for maximum security and performance
+* Database-free
+* Simplicity - Less than 60 lines of `bash`, less than 120 lines of `awk`
+* Can integrate perfectly with other systems or static files.
+* Free Software, licensed under the MIT license.
+
+
+## Documentation
+
+### Installation
+
+The system consists of a `bash` script (`gen.sh`) and
+two `awk` scripts (`dislines.awk`, `template.awk`). Extract them into
+the directory where your website will be and edit the `gen.sh` script
+to fit your purposes.
+
+### Adding pages
+
+To add a page to the site, create a directory and put a file named
+`index.in.md` in it. Open that file with your favorite text editor.
+You must mark the lines in the file by language, for example, if
+a line is in English write:
+
+       @en This line is in English
+
+The `@` always has to be the first character in a line, otherwise it
+will not be recognized as a command. If you have several lines in the
+same language, you can mark blocks. Blocks start with `@[tag]{` and
+end with `@}`. Blocks cannot be nested. For example, you could also
+write:
+
+       @en{
+       This line is in English.
+       This line is also in English.
+       @}
+
+Lines without a tag are common to all languages, but the file must
+contain at least one tag. Here is an example:
+
+       @en{
+       Run the following command to see a cow:
+       @}
+       @de Führen Sie folgenden Befehl aus, um eine Kuh zu sehen:
+               apt-get moo
+               
+This would create two files: one for English, one for German. The
+English file would contain:
+
+       Run the following command to see a cow:
+               apt-get moo
+
+The contents of the german file would be:
+
+       Führen Sie folgenden Befehl aus, um eine Kuh zu sehen:
+               apt-get moo
+
+You can use [markdown][markdown] (or any other system, just edit the `gen.sh`
+script!) to format the page. You can browse the [git repository][git]
+for my website to get some ideas.
+
+You can use `@"` (with any number of `"`s) to repeat a tag. For
+example the code
+
+       @en Emacs is a great editor
+       @" it is used to edit this site
+
+it is equivalent to
+
+       @en Emacs is a great editor
+       @en it is used to edit this site
+       
+The repetition syntax cannot be used for blocks.
+
+A line starting with `@-` that is not inside a block will be
+discarded. You can use any number of `@`s or `-`s.
+
+Should you want to write a line that starts with `@` you can do that
+in a block without doing anything. Outside a block you have to write a
+`@` followed by a space at the beginning of the line. For example
+
+       @ @en English
+
+becomes
+
+       @en English
+
+If there are any spaces before the `@`, you do not have to do
+anything.
+
+In all the commands listed above, you can write any number of `@`s.
+Of course, you can edit the source code of the `dislines.awk` script
+to make it fit your purposes.
+
+### Templates
+
+The content management system uses the template system from
+[werc][werc].
+
+All lines in a page that start with `%%` will be executed by a shell.
+For example,
+
+       %% ls
+
+becomes
+
+       dir1
+       dir2
+       dir3
+       dir4
+       dir5
+       ...
+
+The `%%` always has to be at the beginning of the line. As with the
+language tags, you can also use blocks. The blocks start with `%%{`
+and end with `%%}`.
+
+You can include a variable writing `%%($var%%)`. For example
+
+       My home directory is %%($HOME%%).
+
+would expand to
+
+       My home directory is /home/gpcf.
+
+To escape a `%%`, simply write `%%%%`.
+
+*Please note that you can use any shell expression in the this lines,
+so it could be a security risk if everyone could write pages.*
+
+### Generating the site
+
+You simply have to run `bash gen.sh` to generate the site. By default,
+the script only processes pages that have changed. If you want to
+force it to regenerate all pages run `bash gen.sh f`.
+
+
+[git]: http://git.gpcf.eu/gpcf.eu.git
+[markdown]: http://daringfireball.net/projects/markdown
+[werc-temp]: http://werc.cat-v.org/docs/rc-template-lang
diff --git a/de.sh b/de.sh
index 294b26e..96e02e3 100644 (file)
--- a/de.sh
+++ b/de.sh
@@ -14,7 +14,7 @@ echo -n '  </title>
  echo $bar
 echo -n '</div>
 '
- cat $content
+ cat "$content"
 echo -n '  <footer>
     &copy; 2014 Gabriel Pérez-Cerezo
   </footer>
diff --git a/de.tpl b/de.tpl
index 7362afb..b6905a5 100644 (file)
--- a/de.tpl
+++ b/de.tpl
@@ -11,7 +11,7 @@
 % gen_menu $lang
 % echo $bar
 </div>
-% cat $content
+% cat "$content"
   <footer>
     &copy; 2014 Gabriel Pérez-Cerezo
   </footer>
diff --git a/dwm/index.in.md.de b/dwm/index.in.md.de
new file mode 100644 (file)
index 0000000..983ecc1
--- /dev/null
@@ -0,0 +1,29 @@
+# dwm
+
+[dwm][dwm] ist ein kleiner Window-Manager für X11,
+der extrem simpel, schnell und stabil ist. Leider machen seine Standard-Tastenkombinationen 
+die Nutzung von Emacs unmöglich (dwm wurde höchstwahrscheinlich von Vi-Nutzern geschrieben), 
+also habe ich dwm umkonfiguriert. Alle Befehle, die früher die Meta-Taste verwendet haben,
+nutzen in meiner Version die Windows-Taste (auch unter dem Namen Super-Taste bekannt).
+
+
+Meine Version von dwm kann mit dem Befehl
+`git clone git://aubergine.gpcf.eu/dwm.git`
+
+heruntergeladen werden. Hier ist ein [Tarball][tar] mit dem 
+Quellcode und die dazugehörige [GPG-Signatur][sig]
+
+
+Meine Version enthält veränderte Tastenkombinationen, einige für mich nützliche 
+Regeln sowie eine Manpage, die die Tastenkombinationen nahezu vollständig 
+dokumentiert. Vorraussetzungen für die Nutzung von dwm sind Grundkenntnisse in C und im Umgang 
+mit Programmierwerkzeugen wie `make`, da ich dwm nur als Quellcode verbreite und man
+dwm neu kompilieren muss, wenn man die Konfiguration ändert. 
+
+Hier ein Screenshot von Emacs unter dwm:
+
+![Emacs unter dwm](/screenshots/emacs_dwm_600.png "[Emacs unter dwm](/screenshots/emacs_dwm.png)")
+
+[dwm]: http://dwm.suckless.org
+[tar]: /dowmloads/dwm_src.tar.bz2
+[sig]: /downloads/dwm_src.tar.bz2.sig
diff --git a/dwm/index.in.md.en b/dwm/index.in.md.en
new file mode 100644 (file)
index 0000000..60fe627
--- /dev/null
@@ -0,0 +1,29 @@
+# dwm
+
+[dwm][dwm] is a simple, fast, stable and lightweight window
+manager for X11, but its keyboard shortcuts make it impossible to use
+Emacs (dwm was probably written by vi users), so I have reconfigured
+dwm. All shortcuts that used the Meta key, now use the Windows key
+(also known as super key).
+
+
+You can run the command
+`git clone git://aubergine.gpcf.eu/dwm.git`
+
+to download my version of dwm. You can also download the
+[source code][tar] as a tar archive and its corresponding
+[Signature][sig]
+
+
+My version also contains some useful rules and keyboard shortcuts and a better
+manpage, that documents almost all keyboard shortcuts. To use dwm you need to know
+at least the basics of C programming and basic usage of tools like `make`, because
+you have to recompile dwm to change the configuration.
+
+Here is a screenshot of dwm:
+
+![dwm](/screenshots/emacs_dwm_600.png "[dwm](/screenshots/emacs_dwm.png)")
+
+[dwm]: http://dwm.suckless.org
+[tar]: /dowmloads/dwm_src.tar.bz2
+[sig]: /downloads/dwm_src.tar.bz2.sig
diff --git a/dwm/index.in.md.eo b/dwm/index.in.md.eo
new file mode 100644 (file)
index 0000000..24c028c
--- /dev/null
@@ -0,0 +1,18 @@
+# dwm
+
+[dwm][dwm] estis malgranda fenestrodministrilo por la fenestra
+sistemo X. Ĝia klavarkombinoj malfaciligas la utiligo de Emacs. Mi
+rekonfiguris dwm. Ĉio klavarkombinoj kia utiligis la metaklavon nun
+utiligas la Windowsklavon.
+
+Vi povas fari la komandon
+`git clone git://aubergine.gpcf.eu/dwm.git`
+
+por elŝuti dwm. Vi povas elŝuti la [fontkodon][tar] kaj la responda [subskribo][sig].
+
+
+
+
+[dwm]: http://dwm.suckless.org
+[tar]: /dowmloads/dwm_src.tar.bz2
+[sig]: /downloads/dwm_src.tar.bz2.sig
diff --git a/en.sh b/en.sh
index 0b59846..fce60ae 100644 (file)
--- a/en.sh
+++ b/en.sh
@@ -14,7 +14,7 @@ echo -n '  </title>
  echo $bar
 echo -n '</div>
 '
- cat $content
+ cat "$content"
 echo -n '  <footer>
     &copy; 2014 Gabriel Pérez-Cerezo
   </footer>
diff --git a/en.tpl b/en.tpl
index 8179d14..9c1f46d 100644 (file)
--- a/en.tpl
+++ b/en.tpl
@@ -11,7 +11,7 @@
 % gen_menu $lang 
 % echo $bar
 </div>
-% cat $content
+% cat "$content"
   <footer>
     &copy; 2014 Gabriel Pérez-Cerezo
   </footer>
diff --git a/eo.sh b/eo.sh
index 294b26e..96e02e3 100644 (file)
--- a/eo.sh
+++ b/eo.sh
@@ -14,7 +14,7 @@ echo -n '  </title>
  echo $bar
 echo -n '</div>
 '
- cat $content
+ cat "$content"
 echo -n '  <footer>
     &copy; 2014 Gabriel Pérez-Cerezo
   </footer>
diff --git a/eo.tpl b/eo.tpl
index 7362afb..b6905a5 100644 (file)
--- a/eo.tpl
+++ b/eo.tpl
@@ -11,7 +11,7 @@
 % gen_menu $lang
 % echo $bar
 </div>
-% cat $content
+% cat "$content"
   <footer>
     &copy; 2014 Gabriel Pérez-Cerezo
   </footer>
diff --git a/es.sh b/es.sh
index 294b26e..96e02e3 100644 (file)
--- a/es.sh
+++ b/es.sh
@@ -14,7 +14,7 @@ echo -n '  </title>
  echo $bar
 echo -n '</div>
 '
- cat $content
+ cat "$content"
 echo -n '  <footer>
     &copy; 2014 Gabriel Pérez-Cerezo
   </footer>
diff --git a/es.tpl b/es.tpl
index 7362afb..b6905a5 100644 (file)
--- a/es.tpl
+++ b/es.tpl
@@ -11,7 +11,7 @@
 % gen_menu $lang
 % echo $bar
 </div>
-% cat $content
+% cat "$content"
   <footer>
     &copy; 2014 Gabriel Pérez-Cerezo
   </footer>
diff --git a/index.in.md.de b/index.in.md.de
new file mode 100644 (file)
index 0000000..4d9d6f8
--- /dev/null
@@ -0,0 +1,8 @@
+
+# gpcf.eu
+
+Diese Seite befindet sich zur Zeit im Aufbau, ist aber bald fertig.
+
+
+[dwm]:/dwm
+[2048]:/2048
diff --git a/index.in.md.en b/index.in.md.en
new file mode 100644 (file)
index 0000000..757719a
--- /dev/null
@@ -0,0 +1,8 @@
+
+# gpcf.eu
+
+This page is still under construction but will be finished soon.
+
+
+[dwm]:/dwm
+[2048]:/2048
diff --git a/index.in.md.eo b/index.in.md.eo
new file mode 100644 (file)
index 0000000..175206e
--- /dev/null
@@ -0,0 +1,7 @@
+
+# gpcf.eu
+
+
+
+[dwm]:/dwm
+[2048]:/2048
diff --git a/index.in.md.es b/index.in.md.es
new file mode 100644 (file)
index 0000000..175206e
--- /dev/null
@@ -0,0 +1,7 @@
+
+# gpcf.eu
+
+
+
+[dwm]:/dwm
+[2048]:/2048
diff --git a/mail-setup/index.in.md.de b/mail-setup/index.in.md.de
new file mode 100644 (file)
index 0000000..dc41402
--- /dev/null
@@ -0,0 +1,32 @@
+
+# Meine E-Mail-Konfiguration mit Wanderlust
+
+Ich benutze ein E-Mailprogramm namens [Wanderlust][wl] um meine
+E-Mails zu lesen. Ich verwende Maildirs um meine E-Mails auf meinem
+Server und auf meinem Computer zu speichern. Ich sende und empfange
+E-Mails über SSH, da es einfacher ist, einen einzigen Schlüssel für
+alles zu haben als ein Passwort für IMAP und eines für SMTP zusätzlich
+zum SSH-Schlüssel zu haben.
+
+Ich habe ein Skript geschrieben, das alle E-Mails, die auf meinem
+Server sind, in meinen Posteingang verschiebt. Wenn ich eine E-Mail
+sende, leitet emacs sie an ein Python-Skript weiter, das `sendmail`
+imitiert und die E-Mail in einer Warteschlange abspeichert. Die
+E-Mails werden mithilfe eines Shell-Skriptes über SSH an den Server
+weitergeleitet.
+
+Führe den Befehl `git clone git://aubergine.gpcf.eu/mail.git` aus,
+um die Skripte herunterzuladen
+
+
+Ich habe außerdem die Verschlüsselungsfunktionen von Wanderlust verbessert.
+Es gibg eine Funktion namens [`gpcf-decrypt-mail`][g-d-m], die PGP/MIME-E-Mails
+entschlüsseln kann.
+
+Du kannst auch meine gesamte [Konfigurationsdatei für Wanderlust][dotwl] lesen.
+
+
+[dwm]: http://dwm.suckless.org
+[dotwl]: http://git.gpcf.eu/?p=dotfiles.git;a=blob;f=.wl;h=dfcddf2c6d1acc66955cc9070e6e28be2db17a74;hb=d1c02958a6103a6440bd434b744095184f8eaac9
+[g-d-m]: http://git.gpcf.eu/?p=dotfiles.git;a=blob;f=.wl;h=dfcddf2c6d1acc66955cc9070e6e28be2db17a74;hb=d1c02958a6103a6440bd434b744095184f8eaac9#l67
+[wl]:http://www.emacswiki.org/emacs/WanderLust
diff --git a/mail-setup/index.in.md.en b/mail-setup/index.in.md.en
new file mode 100644 (file)
index 0000000..dbff677
--- /dev/null
@@ -0,0 +1,31 @@
+
+# My mail setup with Wanderlust
+
+
+I use the [Wanderlust][wl] mail client to read my mail. I use
+Maildirs to store my messages, both on my server and locally.
+I receive and send mail over SSH, it is simpler to have a single
+key for everything than having to remember passwords for SMTP
+and IMAP in addition to having a SSH key.
+
+I have a script that copies all messages on my server and saves
+them to my local inbox. It is bound to `s-g` in [dwm][dwm]. When I
+send an email, emacs calls a script that imitates `sendmail` and saves
+the messages to a queue. To send these messages, there is a script,
+bound to `s-s`, that sends the contents of the queue calling
+`sendmail` on my server.
+
+You can download the scripts using the command `git clone
+git://aubergine.gpcf.eu/mail.git`.
+
+
+I have improved Wanderlust's encryption support. There is a function
+called [`gpcf-decrypt-mail`][g-d-m] that can decrypt PGP/MIME messages.
+
+You can also see my entire [.wl file][dotwl]
+
+
+[dwm]: http://dwm.suckless.org
+[dotwl]: http://git.gpcf.eu/?p=dotfiles.git;a=blob;f=.wl;h=dfcddf2c6d1acc66955cc9070e6e28be2db17a74;hb=d1c02958a6103a6440bd434b744095184f8eaac9
+[g-d-m]: http://git.gpcf.eu/?p=dotfiles.git;a=blob;f=.wl;h=dfcddf2c6d1acc66955cc9070e6e28be2db17a74;hb=d1c02958a6103a6440bd434b744095184f8eaac9#l67
+[wl]:http://www.emacswiki.org/emacs/WanderLust