diff --git a/.github/workflows/anki.yml b/.github/workflows/anki.yml new file mode 100644 index 0000000..dffe6b3 --- /dev/null +++ b/.github/workflows/anki.yml @@ -0,0 +1,48 @@ +name: Create Anki Decks release from markdown + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +jobs: + convert_via_md2apkg: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: '14' + - run: npm install -g md2apkg + - run: mkdir output + - run: | + while read -r line;do + inputpath=$(echo $line | awk -F\; '{print $1}'); + name=$(echo $line | awk -F\; '{print $2}'); + md2apkg -o output/${name} ${inputpath}; + done < "anki.list" + - uses: actions/upload-artifact@master # upload decks as an artifact + with: + name: output + path: output + release_decks: + runs-on: ubuntu-20.04 + needs: convert_via_md2apkg + 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 apkgs + with: + token: ${{ secrets.ACCESS_TOKEN }} + tag: anki-release + name: Anki Decks + body: Dieses Release wurde automatisch erstellt + gzip: false + files: output/[A-Z]*[A-Z]-[A-Z]*[A-Z].apkg + allow_override: true diff --git a/.gitignore b/.gitignore index 7bedb1a..8dd015f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,6 @@ !/.mdl.rb !/.mdlrc - # github workflows ############################################################# !/.github/ @@ -48,4 +47,8 @@ !.vscode !.vscode/settings.json -!.vscode/extensions.json \ No newline at end of file +!.vscode/extensions.json + +# actions lists ################################################################# + +!*.list \ No newline at end of file diff --git a/README.md b/README.md index 559ccc5..d46ef6a 100644 --- a/README.md +++ b/README.md @@ -83,5 +83,22 @@ Ansonsten können Formeln in ihrer vollen Pracht nur in den PDFs betrachtet werd ### Anki-Decks -Zusätzlich zu den PDFs generieren wir zu allen Modulen Anki-Decks. +Zusätzlich zu den PDFs generieren wir zu ausgewählten 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. + +Um für ein Dokument ein Anki-Deck zu erstellen, muss dieses in die `anki.list` aufgenommen werden. +Dabei muss folgende Syntax streng eingehalten werden: + +- **pro Zeile** wird **genau ein** Dokument angegeben +- Eine Zeile besteht aus dem **relativen Pfad** (vom Repo-Stammverzeichnis aus) zur gewünschten Markdown-Datei, gefolgt von einem **Semikolon als Trennzeichen**, gefolgt vom **Dateinamen ohne Pfad** für das Anki-Deck +- es befinden sich **keine Leerzeichen** in einer Zeile +- die Datei **muss** mit einer **Leerzeile enden** + +**Beispiel:** + +```text +./SCH-IT/appendix/LKF.md;SCHIT-LKF.apkg +./PRO-K/README.md;PRO.apkg + +``` + diff --git a/anki.list b/anki.list new file mode 100644 index 0000000..28c657d --- /dev/null +++ b/anki.list @@ -0,0 +1,3 @@ +./ISR-MUELLER/README.md;ISR-MUELLER.apkg +./CB-KUSCHE/README.md;CB-KUSCHE.apkg +./PRO-STRASS/README.md;PRO-STRASS.apkg diff --git a/pdf.list b/pdf.list new file mode 100644 index 0000000..e69de29