Programmiermethoden-CampusMinden / Prog2-Lecture

Lecture "Programmieren 2"
https://www.hsbi.de/elearning/goto.php?target=crs_1352130&client_id=FH-Bielefeld
Creative Commons Attribution Share Alike 4.0 International
7 stars 5 forks source link

[Tooling] Toolchain vereinfachen: Templates mit Pandoc nachbauen #34

Closed cagix closed 1 year ago

cagix commented 2 years ago

see https://github.com/PM-Dungeon/pmdungeon-html/issues/18#issuecomment-950134772

Wiki: naja, das rendering findet quasi ausschließlich in github statt, es gibt ein rudimentäres menü und ein rudimentäres toc für jede seite. ansonsten halt die markdown-ansicht wie auch im normalen repo. andererseits gibt es keine "richtige" versionskontrolle und auch keine anzeige von contributors etc. ...

Jupyter: ich bin neulich mal über ein projekt eines kollegen im saarland gestolpert: https://github.com/uds-se/fuzzingbook ... der schreibt initial alles in jupyter-notebooks und hat eine toolchain, die das in folien (reveal.js mit nettem style) plus markdown plus html für eine webseite übersetzt. der witz ist aber, dass github diese jupyter-notebooks bereits relativ "schön" anzeigt: mathe wird sauber gerendert etc. (beispiel: https://github.com/uds-se/fuzzingbook/blob/master/notebooks/Grammars.ipynb oder https://github.com/uds-se/fuzzingbook/blob/master/notebooks/ProbabilisticGrammarFuzzer.ipynb) ... das bringt mich angesichts dieser unklaren situation, ob nun eine datenschutzerklärung notwendig ist oder nicht und wenn ja, was genau da rein muss, ins nachdenken. man könnte mit pandoc plus einem ci-workflow aus dem markdown die jupyter-notebooks erzeugen und die in einem seitenbranch einchecken (lassen). diese notebooks können sich die studis direkt im github/browser ansehen (inkl. code, abbildungen, mathe) und auch runterladen und als notebook ausführen (also mit den code-snippets interaktiv rumspielen). dann könnte man sich die webseite und den ganzen stress dazu sparen. zumal die toolchain md > pandoc > md > hugo > html sich in der praxis als erstaunlich anfällig zeigt :/

das einzige, was mir da fehlt, sind (a) ein menü über alle seiten und (b) ein toc/navigation in einer seite. aber (a) könnte man durch gliederungsseiten ohne probleme selbst manuell nachbauen und (b) geht vermutlich auch, man muss es sicher nur aktivieren (pandoc beispielsweise kann auch markdown mit toc erzeugen, aber das muss man ihm erst sagen). für die pandoc-webseite wird sowas ähnliches gemacht (siehe https://github.com/jgm/pandoc-website/blob/master/Makefile).

Alternative: Hauptrepo mit Unterlagen und Quizzes und Sourcen etc., automatische Generierung der Pages als HTML (https://github.com/pandoc-scholar/pandoc-scholar) oder Jupyter (https://github.com/uds-se/fuzzingbook). Je Semester ein neues Repo, dort Syllabus und Grading etc. in Markdown only und Schedule manuell mit Links in YT/FH-Medien plus Hauptrepo (gh-pages) für einzelne Lectures. Dann wird kein Menü o.ä. gebraucht und man hat eine schlanke Lösung, und im Hauptrepo hat man nicht die Vermischung aus Inhalten und Orga-Kram. Zusätzlich können im Semester-Repo die Issues und Discussions für die Kommunikation genutzt werden.

Pandoc:

cagix commented 1 year ago

Das Vorhaben ist nett, aber viel zu umfangreich und aufwändig. Mit Hugo/Relearn oder mdBook existieren zwei Alternativen, die bereits funktionieren und alle nötigen Features mitbringen.