Skip to content
Snippets Groups Projects
Name Last commit Last update
site
src
.gitignore
COPYING
Makefile
README.md

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>