# Metarepo für die Fachgruppenwebseite

[![meta pipeline status](https://gitlab.gwdg.de/GAUMI-fginfo/fg-website/badges/master/pipeline.svg)](https://gitlab.gwdg.de/GAUMI-fginfo/fg-website/-/commits/master)
[![pipeline status](https://gitlab.gwdg.de/GAUMI-fginfo/fg-website-data/badges/main/pipeline.svg)](https://gitlab.gwdg.de/GAUMI-fginfo/fg-website-data/-/commits/main)

Webseite: https://fg.informatik.uni-goettingen.de/

Inhaltsrepo: https://gitlab.gwdg.de/GAUMI-fginfo/fg-website-data

[TOC]

## Was ist in diesem Repo?

Dieses Repo beschreibt wie die Fachgruppenwebseite gebaut wird und baut diese auch.

Den eigentlichen Inhalt findest du im [Inhaltsrepo](https://gitlab.gwdg.de/GAUMI-fginfo/fg-website-data).


## Seite Lokal Hosten

Um an der Seite zu arbeiten ist es meistens sinnvoll diese auch lokal zu hosten.

### Setup

Die folgenden Befehle sind für Ubuntu 20.04 LTS (Focal) gedacht.

1. Pakete installieren: `apt-get update && apt-get install -y --no-install-recommends python3-pip python3 make git wget software-properties-common`
1. Pandoc 2.18 installieren: `wget -O pandoc.deb https://github.com/jgm/pandoc/releases/download/2.18/pandoc-2.18-1-amd64.deb && dpkg -i pandoc.deb && rm --interactive=never pandoc.deb`
1. Python Pakete installieren: `pip3 install tzlocal markdown pelican==4.7.2 pelican-pandoc-reader gitpython typogrify`
1. Metarepo klonen: `git clone --recurse-submodules git@gitlab.gwdg.de:GAUMI-fginfo/fg-website.git`
1. `cd fg-website`
1. Inhaltsrepo klonen: `git clone git@gitlab.gwdg.de:GAUMI-fginfo/fg-website-data.git content`

### (Automatisch) Bauen und Hosten

Die Seite kann nun relativ einfach mit `make html` gebaut werden.
Dabei wird die [pelicanconf.py](pelicanconf.py) Datei als Config verwendet.
Die Ausgabe befindet sich im `output` Ordner.

Mit `make publish` kann die Seite auch mit der [publishconf.py](publishconf.py) Datei gebaut werden.
Dies ist die selbe Config, die auch die tatsächliche Webseite zum Schluss verwendet.
In den meisten Fällen möchte man beim Entwickeln aber die oben genannte [pelicanconf.py](pelicanconf.py) Datei verwenden.

Um die Seite lokal zu hosten und automatisch neu zu bauen, wenn eine Datei bearbeitet wurde, kann `make devserver` verwendet werden.
Die Seite kann man dann unter [http://127.0.0.1:8000](http://127.0.0.1:8000) finden.
Die Seite wird zwar automatisch neu gebaut, aber es ist dennoch notwendig im Browser die Seite neu zu laden um die Veränderungen zu sehen.

Für weitere mögliche Befehle führe einfach `make help` aus.