Einführung der Schlagwortfunktionalität auf der Webseite #323

Merged
joerglohrer merged 12 commits from dev-website-tags into main 2025-04-03 09:57:20 +00:00
Owner
No description provided.
joerglohrer added 8 commits 2025-03-31 12:10:09 +00:00
joerglohrer requested review from sicking 2025-03-31 12:10:21 +00:00
joerglohrer added 1 commit 2025-03-31 12:10:51 +00:00
Author
Owner

Bitte nach Review in Main @sicking und deployen auf oer.community

Bitte nach Review in Main @sicking und deployen auf oer.community
joerglohrer changed title from dev-website-tags to Einführung der Schlagwortfunktionalität auf der Webseite 2025-03-31 12:17:00 +00:00
Owner

Ich vertraue meinen Prüfungen von vor 14 Uhr und genehmige (fast) ungesehen
(u. a. weil @joerglohrer ungeduldig ist. ;-)

Ich vertraue meinen Prüfungen von vor 14 Uhr und genehmige (fast) ungesehen (u. a. weil @joerglohrer ungeduldig ist. ;-)
sicking approved these changes 2025-03-31 12:26:46 +00:00
Dismissed
sicking left a comment
Owner

Tags, tags, tags...

Tags, tags, tags...
sicking closed this pull request 2025-03-31 12:26:50 +00:00
Author
Owner

Damit sind wir durch mit dieser Implementation und ich erlaube mir den Branch zu löschen.

Damit sind wir durch mit dieser Implementation und ich erlaube mir den Branch zu löschen.
joerglohrer deleted branch dev-website-tags 2025-03-31 16:51:54 +00:00
Owner

Dummerweise haben wir den Branch gelöscht ohne nach main zu mergen. :-/
Deswegen sind die Änderungen (erstmal) "verloren".

Ein weiteres Argument für "Workflow definieren" und "Workflow einüben".... ;-)

Dummerweise haben wir den Branch gelöscht ohne nach main zu mergen. :-/ Deswegen sind die Änderungen (erstmal) "verloren". Ein weiteres Argument für "Workflow definieren" und "Workflow einüben".... ;-)
Owner

@joerglohrer Könntest du das Skript mit dem du die Änderungen an den md-Dateien vorgenommen hast, hier anfügen?
Oder in dem Branch (einen neuen) anlegen... oder...
(wenn du es noch hast)

Sonst gucke ich mal, ob ich das schnell zusammengebastelt bekomme.


Jetzt zeigt sich wie "schön" git (bzw. forgejo) ist, alle Änderungen sind "gelöscht", aber alles ist "noch da" (im Sinne von wieder gut rekonstruierbar).
Ich mag git. :)

@joerglohrer Könntest du das Skript mit dem du die Änderungen an den md-Dateien vorgenommen hast, hier anfügen? Oder in dem Branch (einen neuen) anlegen... oder... (wenn du es noch hast) Sonst gucke ich mal, ob ich das schnell zusammengebastelt bekomme. ---- Jetzt zeigt sich wie "schön" git (bzw. forgejo) ist, alle Änderungen sind "gelöscht", aber alles ist "noch da" (im Sinne von wieder gut rekonstruierbar). Ich mag git. :)
Owner

Ah, ganz entspannt.
Ich habe den Branch hier noch lokal.
Also noch weniger Arbeit....

Aber erst einmal: , #326...

Den (hoffentlich identischen) "alten" Stand von gestern habe ich nun unter dem Branch "feature/214-metadaten-tags-sichtbar-machen" gepushed.


Diff mit "neuem" Branch:
https://git.rpi-virtuell.de/Comenius-Institut/FOERBICO/compare/main...feature/214-metadaten-tags-sichtbar-machen

Diff mit "altem" Branch:
https://git.rpi-virtuell.de/Comenius-Institut/FOERBICO/pulls/323/files

Ah, ganz entspannt. Ich habe den Branch hier noch lokal. Also noch weniger Arbeit.... Aber erst einmal: #320, #326... Den (hoffentlich identischen) "alten" Stand von gestern habe ich nun unter dem Branch "feature/214-metadaten-tags-sichtbar-machen" gepushed. ---- Diff mit "neuem" Branch: https://git.rpi-virtuell.de/Comenius-Institut/FOERBICO/compare/main...feature/214-metadaten-tags-sichtbar-machen Diff mit "altem" Branch: https://git.rpi-virtuell.de/Comenius-Institut/FOERBICO/pulls/323/files
Author
Owner

Hier der python-Code des Skripts, das die keywords redundant als tags angelegt hat:

import os
import re
import yaml
import copy
from dotenv import load_dotenv

load_dotenv()
POSTS_DIR = os.getenv("POSTS_DIR", "content/posts")

def update_index_md(filepath):
    with open(filepath, "r", encoding="utf-8") as f:
        content = f.read()

    # Frontmatter extrahieren
    match = re.match(r'^---\n(.*?)\n---\n', content, re.DOTALL)
    if not match:
        print(f"Kein gültiger YAML-Block in {filepath}")
        return

    frontmatter_raw = match.group(1)
    body = content[match.end():]

    # YAML parsen, um Keywords auszulesen
    data = yaml.safe_load(frontmatter_raw)
    keywords = data.get("keywords")

    if not keywords or not isinstance(keywords, list):
        print(f"Keine Keywords in {filepath}")
        return

    if "tags" in data and data["tags"]:
        print(f"Tags schon vorhanden in: {filepath}")
        return

    # Neue Zeile für tags einfügen
    tags_yaml = yaml.dump({'tags': copy.deepcopy(keywords)}, allow_unicode=True, sort_keys=False).strip()
    tags_line = "\n" + tags_yaml

    # Tags direkt am Ende der YAML-Frontmatter einfügen (vor `---`)
    frontmatter_with_tags = frontmatter_raw + tags_line
    new_content = f"---\n{frontmatter_with_tags}\n---\n{body}"

    with open(filepath, "w", encoding="utf-8") as f:
        f.write(new_content)

    print(f"Tags ergänzt in: {filepath}")

def run():
    for root, dirs, files in os.walk(POSTS_DIR):
        if "index.md" in files:
            update_index_md(os.path.join(root, "index.md"))

if __name__ == "__main__":
    run()
Hier der python-Code des Skripts, das die keywords redundant als tags angelegt hat: ``` import os import re import yaml import copy from dotenv import load_dotenv load_dotenv() POSTS_DIR = os.getenv("POSTS_DIR", "content/posts") def update_index_md(filepath): with open(filepath, "r", encoding="utf-8") as f: content = f.read() # Frontmatter extrahieren match = re.match(r'^---\n(.*?)\n---\n', content, re.DOTALL) if not match: print(f"Kein gültiger YAML-Block in {filepath}") return frontmatter_raw = match.group(1) body = content[match.end():] # YAML parsen, um Keywords auszulesen data = yaml.safe_load(frontmatter_raw) keywords = data.get("keywords") if not keywords or not isinstance(keywords, list): print(f"Keine Keywords in {filepath}") return if "tags" in data and data["tags"]: print(f"Tags schon vorhanden in: {filepath}") return # Neue Zeile für tags einfügen tags_yaml = yaml.dump({'tags': copy.deepcopy(keywords)}, allow_unicode=True, sort_keys=False).strip() tags_line = "\n" + tags_yaml # Tags direkt am Ende der YAML-Frontmatter einfügen (vor `---`) frontmatter_with_tags = frontmatter_raw + tags_line new_content = f"---\n{frontmatter_with_tags}\n---\n{body}" with open(filepath, "w", encoding="utf-8") as f: f.write(new_content) print(f"Tags ergänzt in: {filepath}") def run(): for root, dirs, files in os.walk(POSTS_DIR): if "index.md" in files: update_index_md(os.path.join(root, "index.md")) if __name__ == "__main__": run() ```
sicking reopened this pull request 2025-04-01 11:32:33 +00:00
sicking changed title from Einführung der Schlagwortfunktionalität auf der Webseite to WIP: Einführung der Schlagwortfunktionalität auf der Webseite 2025-04-01 11:32:39 +00:00
sicking added 3 commits 2025-04-01 14:37:24 +00:00
Owner

Unser Forge (forgejo) hatte den "alten" Branch dev-website-tags noch nicht endgültig gelöscht.
(das habe ich erst gesehen, nachdem ich den Branch "feature/214-metadaten-tags-sichtbar-machen" gepushed habe)

Die Tags für den neuesten Blogartikel von Laura habe ich ergänzt.
(und Woodpecker weniger arbeiten lassen... :-/)

Unser Forge (forgejo) hatte den "alten" Branch `dev-website-tags` noch nicht endgültig gelöscht. (das habe ich erst gesehen, _nachdem_ ich den Branch "feature/214-metadaten-tags-sichtbar-machen" gepushed habe) Die Tags für den neuesten Blogartikel von Laura habe ich ergänzt. (und Woodpecker weniger arbeiten lassen... :-/)
Owner
Dieser Stand ist zum Testen unter https://int.oer.community/ veröffentlicht. https://int.oer.community/tags/lizenzen/ https://int.oer.community/tags/cc-lizenzen/
sicking approved these changes 2025-04-01 14:48:45 +00:00
sicking left a comment
Owner

genehmigt

weil

  1. läuft unter int
  2. gestern bereits geprüft:
genehmigt weil 1) läuft unter int 2) gestern bereits geprüft: https://git.rpi-virtuell.de/Comenius-Institut/FOERBICO/pulls/323#issuecomment-3714
sicking changed title from WIP: Einführung der Schlagwortfunktionalität auf der Webseite to Einführung der Schlagwortfunktionalität auf der Webseite 2025-04-01 14:48:51 +00:00
joerglohrer merged commit 7078de2ed0 into main 2025-04-03 09:57:20 +00:00
Author
Owner

genehmigt
ok, aufgrund der Genehmigung von @sicking gemerged.
Auch einverstanden, dass der Branch gelöscht werden darf?

> genehmigt ok, aufgrund der Genehmigung von @sicking gemerged. Auch einverstanden, dass der Branch gelöscht werden darf?
Sign in to join this conversation.
No description provided.