Labs Migration - jneubert/doc GitHub Wiki

Vorbereitung

auf der Live-Instanz (auf QS-Instanz ergeben sich zu viele Unterschiede)

  • Fusszeilen mit rdf/nt/ttl-Links raus
  • "Log in or register ..." auf den Seiten raus
  • Suche raus

DONE

einmalige Generierung mit httrack

httrack --can-go-down zbw.eu/labs/

gibt es Optimierungpotential bei den Parametern?

DONE

alte Seiten (bis Ende 2023)

  • Verzeichnisstruktur wie durch httrack erstellt bleibt komplett erhalten.
  • in /labs/.htaccess wird für nicht gefundene Seiten unter blog nach en/blog redirected
  • in /.htaccess werden eine generelle Redirect-Regeln erstellt, die von {slug} auf {slug}.html redirected (weil es Links ohne .html gibt)

neue Seiten

für neue Inhalte werden nicht mehr verwendet

  • sprachspezifiche Verzeichnisse (en)
  • drupalspezifische Verzeichnisse (misc, modules, sites)
  • das RDFa Markup (bleibt aber in alten Seiten stehen) und die Links auf die RDF-Versionen

aktive Verzeichnisstruktur

{neues Verzeichnis}/

  • bin/ # Scripts
  • labs/ # Wurzelverzeichnis des Webauftritts
    • .htaccess # Redirects von {slug} auf {slug}.html (insbesondere für alte Seiten)
    • index.html
    • index.md # optional, für Ergänzung neuer Beiträge
    • blog/ # ausschließlich für neue Beiträge
      • {slug}/
        • index.md
        • index.html
    • en/ # old content - don't touch!
    • project/ # (TODO - falls weiter Ergänzungen möglich sein sollen)
    • tag/ # (TODO - falls weiter Ergänzungen möglich sein sollen)
    • images/ # "neue" Images - ggf. symlinks auf bereits irgendwo gespeicherte, die in neuen Seiten verwendet werden
    • styles/ # (TODO - ggf. eine css-Datei für neue Seiteninhalte erstellen)
  • templates/ # Pandoc Templates

Workflow

  1. Text des reinen Blogbeitrags (ohne Seitenrahmen) wird in Markdown als index.md geschrieben und korrigiert
  2. Aus dem Titel wird (z.B. per slugify) ein Slug generiert, unter blog/{slug} ein Verzeichnis angelegt und index.md dort gespeichert.
  3. Durch Pandoc (Aufruf als bin/mk_page.sh {slug}) wird daraus per Template (mit dem Seitenrahmen in HTML) eine HTML-Seite blog/{slug}/index.html generiert.
  4. Als persistenter Link kann die URL ohne /index.html kommuniziert werden.
  5. (optional, noch nicht getestet) es gibt eine /labs/index.md (zunächst als Kopie der HTML-Version!), in die händisch der verlinkte Titel und der Anreiser-Text des neuen Beitrags (in Markdown) eingesetzt werden. Pandoc lässt das HTML-Markup unberührt und konvertiert nur den Markdown-Anteil.
  6. (todo) make-File zur Neugenerierung aller HTML-Seiten (wenn sich z.B. im Seitenrahmen-Template was geändert hat).

Eine Konvertierung alter Seiten in Markdown wird händisch sehr aufwendig, weil viele Drupal-HTML-Strukturen nicht erkannt werden (z.B. Tabellen).