From 79aabd4a4c2bad800206b0644f90dd58bb216f73 Mon Sep 17 00:00:00 2001 From: Yannis Becker Date: Sun, 6 Feb 2022 16:44:13 +0100 Subject: [PATCH] here we go again for one final round --- .github/workflows/lint.yml | 18 ++++++++ .github/workflows/pandoc.yml | 47 +++++++++++++++++++++ .github/workflows/toc.yml | 17 ++++++++ .gitignore | 51 +++++++++++++++++++++++ .mdl.rb | 26 ++++++++++++ .mdlrc | 1 + README.md | 81 ++++++++++++++++++++++++++++++++++++ 7 files changed, 241 insertions(+) create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/pandoc.yml create mode 100644 .github/workflows/toc.yml create mode 100644 .gitignore create mode 100644 .mdl.rb create mode 100644 .mdlrc create mode 100644 README.md diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..1dac3c3 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,18 @@ +name: markdownlint + +on: + push: + branches: + - main + pull_request: + +jobs: + linting: + + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@main + - name: Run mdl + uses: actionshub/markdownlint@main diff --git a/.github/workflows/pandoc.yml b/.github/workflows/pandoc.yml new file mode 100644 index 0000000..6c7cdcf --- /dev/null +++ b/.github/workflows/pandoc.yml @@ -0,0 +1,47 @@ +name: Create PDF release from markdown + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +jobs: + convert_via_pandoc: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - run: | + mkdir .old && + rsync -vr ./* .old/ --exclude .old && + for f in [A-Z]*[A-Z]-[A-Z]*[A-Z]/README.md; do awk '/!\[/{gsub(//,"}")};{gsub("","\\pagebreak")};{gsub("","\\newpage")};{gsub("","\\clearpage")};{gsub("","...")};{print}' .old/${f} > ${f} ; done + - run: | + mkdir output + - uses: docker://rstropek/pandoc-latex:latest # generate pdfs using pandoc + with: + entrypoint: /bin/sh + args: -c "for f in [A-Z]*[A-Z]-[A-Z]*[A-Z]/README.md; do d=$(echo ${f} | awk -F/ '{print $1}');echo ${d} ${f} $PATH; pandoc --output=output/${d}.pdf --resource-path=${d}/ --template https://raw.githubusercontent.com/Wandmalfarbe/pandoc-latex-template/v2.0.0/eisvogel.tex --pdf-engine=xelatex --listings -f markdown+raw_tex --verbose ${f} || exit 1; done" + - uses: actions/upload-artifact@master # upload pdfs as an artifact + with: + name: output + path: output + release_pdfs: + runs-on: ubuntu-20.04 + needs: convert_via_pandoc + if: github.ref == 'refs/heads/main' # only publish if commited to the main branch + steps: + - name: Retrieve saved Docker image + uses: actions/download-artifact@v2 + with: + name: output + path: output + - uses: meeDamian/github-release@2.0 # create/override a release and attach a pdf + with: + token: ${{ secrets.ACCESS_TOKEN }} + tag: pdf-release + name: PDFs + body: Dieses Release wurde automatisch erstellt + gzip: false + files: output/[A-Z]*[A-Z]-[A-Z]*[A-Z].pdf + allow_override: true diff --git a/.github/workflows/toc.yml b/.github/workflows/toc.yml new file mode 100644 index 0000000..c51de66 --- /dev/null +++ b/.github/workflows/toc.yml @@ -0,0 +1,17 @@ +on: + pull_request: + branches: + - main +name: TOC Generator +jobs: + generateTOC: + runs-on: ubuntu-latest + steps: + - uses: technote-space/toc-generator@v4.1.2 + with: + GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} + TOC_TITLE: "**Inhaltsverzeichnis**" + # Git commit name. + COMMIT_NAME: "TOCGEN" + CREATE_PR: false + TARGET_PATHS: "./[A-Z]*[A-Z]-[A-Z]*[A-Z]/README.md" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7bedb1a --- /dev/null +++ b/.gitignore @@ -0,0 +1,51 @@ +# ignore everything by default ################################################# + +** + +# root-level README ############################################################ + +!/README.md +!/.mdl.rb +!/.mdlrc + + +# github workflows ############################################################# + +!/.github/ +!/.github/workflows +!/.github/workflows/*.yml + +# modul folders ################################################################ + +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/ +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/README.md + +# appendix folder ############################################################## + +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/appendix +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/appendix/*.md +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/appendix/assets/ +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/appendix/assets/*.svg +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/appendix/assets/*.png +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/appendix/assets/*.jpg + +# assets folder ################################################################ + +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/assets +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/assets/*.svg +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/assets/*.png +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/assets/*.jpg + +# extras folder ################################################################ + +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/extra +!/[A-Z]*[A-Z]-[A-Z]*[A-Z]/extra/** + +# just in case ################################################################# +!.gitignore + +# vscode ###################################################################### + +!.vscode +!.vscode/settings.json +!.vscode/extensions.json \ No newline at end of file diff --git a/.mdl.rb b/.mdl.rb new file mode 100644 index 0000000..c15b902 --- /dev/null +++ b/.mdl.rb @@ -0,0 +1,26 @@ +# Enable all rules by default +all + +# Allow any Heading styles +exclude_rule 'MD003' + +# First line of the file is not required to be the top-level heading +exclude_rule 'MD041' + +# Allow the use of emphasis for small-headers +exclude_rule 'MD036' + +# Allow multiple top-level headers per file +exclude_rule 'MD025' + +# Allow the used of trailing punctuation in headers +exclude_rule 'MD026' + +# Disable line length +exclude_rule 'MD013' + +# Extend line length, since each sentence should be on a separate line. +# rule 'MD013', :line_length => 200 + +# Prefix ordered lists with incremental numbers instead of all ones +rule 'MD029', style: 'ordered' diff --git a/.mdlrc b/.mdlrc new file mode 100644 index 0000000..d068c66 --- /dev/null +++ b/.mdlrc @@ -0,0 +1 @@ +style '.mdl.rb' diff --git a/README.md b/README.md new file mode 100644 index 0000000..5d78641 --- /dev/null +++ b/README.md @@ -0,0 +1,81 @@ +# DHGE - Praktische Informatik - Matrikel 19 - Semester 6 + +Dieses Repository ist ein Projekt von Studierenden des Studiengangs "Praktische Informatik" der Dualen Hochschule Gera-Eisenach. +Hier werden alle Mitschriften der einzelnen Modulen gesammelt. +Die Skripte liegen im `markdown`-Format vor. +Zur besseren Handhabung (und weil Github nur begrenzte `markdown`-Features bereitstellt) +werden diese zusätzlich automatisch in [PDFs](https://github.com/importPI19fromDHGE/dhge-pi19-sem6/releases) umgewandelt und zur Verfügung gestellt. + +## Contributing (andere Jahrgänge) + +Studierende anderer Jahrgänge sind dazu eingeladen, dieses Projekt als Grundlage für ihr eigenes, matrikelspezifsiches Repository zu nutzen. +Du kannst folgendermaßen vorgehen: + +- Lerne in jedem Fall Git und Github kennen, frage deine Kommilitonen, frage das [Internet](https://rogerdudler.github.io/git-guide/index.de.html), frage uns diesbezüglich. +- Lerne außerdem hilfreiche Software kennen: Github Desktop, Visual Studio Code / andere Editoren, Git Bash, [git-fork](https://git-fork.com/), GitKraken etc. +- Beantrage ggf. [Github Student Developer Pack](https://education.github.com/students) (optional, aber nice to have) +- **Such dir engagierte Leute** und +- Informiere dich bei deinen Kommilitonen, ob schon jemand ein Repo / eine Orga angelegt hat. Falls wir (PI19) das mitkriegen folgt hier ein Link: + - PI20: [importPI20fromDHGE](https://github.com/importPI20fromDHGE) (Ansprechpartner: J. Müller, PIB20) +- Es gibt schon ein Repo? Dort weiterlesen. +- Es gibt noch kein Repo? Übernimm Verantwortung: +1. Lege eine Organisation mit passendem Namen und Einstellungen an. (Wie wäre es mit importPI20fromDHGE?) +2. Forke dieses Repository mit der Organisation als Besitzer, ändere ggf. den Namen. +2. Nimm alle Sicherheitseinstellungen vor, stell das Repo auf Public, **lade deine Kommilitonen zur Organsiation ein**, *verwalte Rechte*. +4. Klone (git clone) das neue Repo lokal auf deinem Computer. +5. Passe ggf. das Top-Level README.md an. + +Und dann kann es losgehen! + +## Contributing (PI 19) + +Alle Kommilitonen PI19 sind dazu eingeladen, ihre eigenen Beiträge zu diesem Projekt zu leisten und ihre Ideen einzubringen. Wenn du einen Beitrag leisten willst, kannst du wie folgt vorgehen: + +1. Wenn du hier neu bist, erstelle auf jeden Fall ersteinmal [ein Issue](https://github.com/importPI19fromDHGE/dhge-pi19-sem6/issues/new). Dann können wir uns gerne über deine Idee austauschen. +2. `git clone` diese Repo und erstelle mit `git checkout -b ` eine neue Branch +3. Implementiere deine Idee. Bei Fragen kannst du dich gerne über das Issue an uns wenden. +4. Erstelle eine Pull Request, markiere dabei via @mention die Personen aus dem Issue und warte auf Feedback. + +## Module + +- [ToDo](./ToDo) + +## Markdown-Erweiterungen + +Alle Skripte in diesem Repository sind im `markdown`-Format verfasst. Für dieses existieren [viele verschiedene Standards](https://de.wikipedia.org/wiki/Markdown#Weiterentwicklungen,_Variationen_und_Erg%C3%A4nzungen). +Auf Github selbst ist der Funktionsumfang von `markdown` im Vergleich zu anderen Standards deutlich eingeschränkt. +Es ist beispielsweise nicht möglich die Größe von Bilder zu definieren, Metadaten für Dokumente anzugeben oder Mathematische Formel darzustellen. +Aus diesem Grund wird [`pandoc`](https://pandoc.org/) verwendet, um `markdown`-Dateien mit vielen Funktionserweiterungen in PDFs umzuwandeln. +Damit eine Kompatibilität zum Github-`markdown` haben wir eigene Erweiterungen definiert, die im Folgenden beschrieben werden: + +### Markdown-Linter + +In unseren Github Repositories kommt ein sogenannter Linter zum Einsatz. Dieser sorgt dafür, dass bei allen Markdown Dokumenten eine einheitliche Formatierung eingehalten wird. +Damit bereits bei der lokalen Bearbeitung etwaige Fehler festgestellt werden können, empfehlen wir die Verwendung der VSCode-Extension [markdownlint von David Anson](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint). +Dieses Repository enthält für die Extension bereits eine vorgefertigte Konfiguration, die automatisch verwendet wird. + +### Bildgröße + +```md +![Bildbeschreibung](assets/a.png) +![Bildbeschreibung](assets/b.png) +``` + +### Pagebreaks usw + +```md + + + +``` + +### Mathematische Formel + +Github unterstützt keine mathematischen Formeln. +Als Workaround gibt es eine [Erweiterung für Chrome](https://github.com/orsharir/github-mathjax). +Ansonsten können Formeln in ihrer vollen Pracht nur in den PDFs betrachtet werden. + +### Anki-Decks + +Zusätzlich zu den PDFs generieren wir zu allen Modulen Anki-Decks. +Damit diese möglichst problemlos generiert werden können, sollten auch die Markdown Extensions [hier](https://github.com/Steve2955/md2apkg) beachtet werden.