Quelltext für eine einfache Quiz-Seite
In diesem Repo wird der Quelltext für und um eine web-basierten Quiz versioniert. Hierzu gehören die Benutzer-Dateien quiz.{html,css,js} wie Skripte die das Aufsetzen erleichtern.
Um Lokal alles aufzusetzen, führe lediglich
$ make
in diesem Verzeichnis aus. Die resultierende Seite befindet sich dann
im Verzeichnis out
.
Einstellungen können in der Makefile gefunden werden. Diese können auch beim Aufruf von Make überschrieben werden:
$ make OUT=$HOME/.www/quiz BRANCH=database/foo NAME=foo
Zusätzliche Regeln können in der Datei local.mk
angegeben werden:
$(OUT)/index.html: $(OUT)/$(NAME).html
ln -srf $< $@
all: $(OUT)/index.html
Datenbank der Fragen
Fragen werden in einem separatem Branch verwaltet, und sollen über einen "git worktree" eingeblendet werden. Damit bleibt das Repo selbst Themenneutral. Für SP sind die Fragen auf dem "database/sp" Branch. Wenn man an den Fragen arbeiten will, kann man gleich
$ git clone -b database/sp https://gitlab.cs.fau.de/oj14ozun/sp-quiz sp-fragen
ausführen. Weitere Branches können unabhängig erstellt werden mit
$ git checkout --orphan database/foo
$ git rm -rf
erstellt werden.
Abhängigkeiten
Man sollte auf seinem System folgende Programme installiert haben (im CIP sind die alle verfügbar):
- GNU Make
- GNU Coreutils (
mkdir
,ln
,basename
, ...) - GNU Findutils
- GNU m4
- Git
- Python 3
- AWK (beliebig)
- jq
- Perl
- Pandoc mit Lua Unterstützung *
- rsync (optional, wenn man
make sync
benutzen will)
* Pandoc wird benutzt um Markdown in dem Frage-Dateien zu HTML zu
übersetzen. Sollte man diese Abhängigkeit nicht benutzen wollen, kann
man in src/gen.pl
die Variable @markdown
anpassen.
Diese Abhängigkeiten sind nur für das automatische Aufsetzen der Seite
notwendig, was im wesentlichem die quiz.json
Datei generiert aus
einem maßgeschneidertem Format in so-genannten .q
Dateien. Die
quiz.json
Datei kann auch händisch oder anderweitig generiert
werden. Die conf.js
Datei kann die JavaScript Variablen
quiz_title
, quiz_description
und gitlab_base
setzen, welche
jeweils den Titel der Seite, die Beschreibung hinter dem i Knopf und
die GitLab-Integration einstellt. Per default werden diese wiederum
jeweils aus den Dateien TITLE
, DESC
und GITLAB
im Datenbank
Branch gelesen, aber auch diese Datei kann selbst erstellt werden.
Ansonsten kann man quiz.{html,css,js}
direkt übernehmen.
Maintainer: Philip Kaludercic <philip.kaludercic@fau.de>