HTML Suche Open source (flat file) CMS für spezielle Anforderungen

kali-hi

Banned
Registriert
Sep. 2025
Beiträge
760
Die Anforderungen sind:

  • wenn möglich, soll es einen Markdown-Editor geben, bzw. Markdown -> HTML Konverter,
  • man soll custom/embed CSS, JS oder HTML einfügen können,
  • es sollte sicher sein, also Updates geben

Also, ich hatte mir Payload CMS angeschaut, dieses basiert auf React und benötigt eine mongodb.

Das Problem ist aber, dass custom/embed JavaScript nur äußerst umständlich eingefügt werden kann, weil es eigentlich nicht dafür gedacht ist. Einen einfachen Button darzustellen, der die JS fetch-Funktion aufruft, ist damit eine mittelschwere Katastrophe gewesen.

Gibt es vielleicht etwas, was nicht ganz so umständlich wäre und das einfach mit dynamischen Content umgehen kann?
 
Ich kenn noch Tina CMS.
https://tina.io/

Da gibt's custom components mit CSS, aber wie es da mit js aussieht hab ich keine Ahnung.

Wissentlich was du sonst für Fragen stellst, geh ich mal implizit davon aus dass das ein xy Problem ist und du eigentlich kein CMS brauchst.
 
  • Gefällt mir
Reaktionen: cfreak84
Ist da nicht jekyll seit irgendwie 10 Jahren der default?
 
https://getnikola.com/ da gibts einen template ordner und das ganze html/css/js lässt sich da von grund auf bestimmen. Es werden markdown files in html verarbeitet.
 
@netzgestaltung Danke! Das ist ziemlich genau das, wonach ich gesucht hatte... Mit nikola auto --browser wird die Seite auch gleich bereitgestellt. So, wie ich jetzt gelesen habe, kann sowohl komplettes .html verarbeitet werden als auch "Partials" (also Fragmente). Eine Navigation/Breadcrumb wäre noch wichtig.
Ergänzung ()

BFF schrieb:
Schau mal Grav an ob das reicht.
Grav ist aktuell im Einsatz, Payload CMS war nur ein Test
 
Das ist jetzt mein Setup:

docker-compose.yml

Code:
  nikola:
    image: python:trixie
    user: 1000:1000
    volumes:
      - ./nikola/:/nikola/
    working_dir: /nikola/
    command:
      - bash
      - -c
      - |
        set -e
        # python3 -m venv nikola-env
        cd nikola-env
        bin/python -m pip install -U pip setuptools wheel
        bin/python -m pip install -U "Nikola[extras]"
        source bin/activate
        nikola help
        while true; do sleep 5; done
        exit 0
    labels:
      - "traefik.enable=false"
    networks:
      - mynet1

Zeile 12 muss ein kommentiert werden, wenn ihr dass das erste mal startet, und labels und networks müssen angepasst (bzw. entfernt) werden.

Weiterhin muss dann noch while sleep... durch nikola auto ersetzt werden...

Es gibt aber auch inoffizielle Docker-Images, wer nicht selber machen will. Siehe Docs.

Weihnachten ist gerettet. :D
Ergänzung ()

Bitte beim init auch hieran denken:

1766488542828.png
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: netzgestaltung
nikola auto funktioniert noch nicht (also das automatische Deployment)...

"nikola: runtimeerror: there is no current event loop in thread 'mainthread'"

Ich vermute entweder, es liegt ein Bug vor, oder Python darf im Container keinen zusätzlichen Prozess/Thread starten...

Ist aber auch nicht so schlimm, nikola serve tut es auch - wenn auch ohne auto deploy. Aber vielleicht hat jemand zu dem Fehler noch eine Idee... Im Netz finde ich dazu nichts, und die Dependencies sind alle installiert... Ich glaube wirklich, es liegt am Docker.
 
Hab's herausgefunden und es liegt nicht an mir.

asyncio.get_event_loop() ist im neueren Python veraltet, stadessen sollte dann new_event_loop verwendet werden: https://stackoverflow.com/a/67760625/16293187

Wenn ich aber selbst ändere (96 Vorkommnisse):

(Folgendes bitte nicht ausführen!!!)

Bash:
cd nikola-env
grep -rl "asyncio.get_event_loop()" . | xargs sed -i "s@asyncio.get_event_loop()@asyncio.new_event_loop()@g"

dann treten ganz andere Probleme auf... Deshalb kann ich daran erst einmal nichts ändern - und bleibe bei nikola serve.
 
Weiß jemand, wie man die chronologische Sortierung umkehren kann? Also, dass auf der index page nicht die neusten Postings oben sind, sondern die ältesten? Im Handbook (docs) habe ich dazu nix gefunden.

Am naheliegendsten wäre vielleicht die Konfigurationsoption https://getnikola.com/handbook.html#static-indexes , diese hatte aber in einem Test keinen Effekt.

Vielleicht verstehe ich die zwei Absätze aber auch nicht genau.
 
kali-hi schrieb:
wie man die chronologische Sortierung umkehren kann?
Gelöst! :)

Es geht über die Mako-Template-Syntax... die Funktion ist nur leider nirgends dokumentiert.

Zuerst erstellt euch ein Subtheme (ist nicht unbedingt nötig, aber finde ich übersichtlicher):

nikola subtheme -n my_custom_theme_1 -s slate -p bootstrap4

wobei -s slate auch geändert oder wegelassen werden kann (-s gibt den Flavor an).

Aktiviert das neue Theme mit THEME = "my_custom_theme_1" in conf.py.

Baut die ganze Seite vorsichtshalber einmal neu nikola build -a.

Jetzt zur eigentlichen Arbeit:

  • Kopiert das Mako index.tmpl mit nikola theme -c index.tmpl
  • Ändert in themes/my_custom_theme_1/templates/index.tmpl die Zeile 28 (% for post in posts:) in % for post in reversed(posts):
  • Dann noch einmal nikola build -a aufrufen
 
  • Gefällt mir
Reaktionen: netzgestaltung
Zurück
Oben