🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comm.infosystems.www.authoring.misc
1 messages
1 total messages Started by ram@zedat.fu-ber Fri, 09 May 2025 07:19
Darstellung von ML/0 mit Objekten
#174562
Author: ram@zedat.fu-ber
Date: Fri, 09 May 2025 07:19
38 lines
1910 bytes
  Im Speicher des Programms zur ML/0-Wandlung wird eine ML/0-Quelle
  durch miteinander verbundene Objekte dargestellt. Dabei gibt es
  praktisch für jeden Typ von Inhalten einer ML/0-Quelle eine Klasse.
  Beispielsweise gibt es eine Klasse für mit "em" betonten Text,
  oder eine Klasse für h1-Überschriften. Zu jeder dieser Klassen
  kann es dann mehrere Objekte geben, die konkrete Teile der ML/0-
  Quelle darstellen. So wird eine Überschrift, die einen betonten
  Text enthält, im Speicher durch ein Überschriftenobjekt, das ein
  Betonungsobjekt enthält, dargestellt.

  Es wäre ziemlich mühevoll und eintönig diese ganzen Klassen nun
  manuell anzulegen. Stattdessen enthält das Programm eine Tabelle
  mit den möglichen Typen von ML/0-Auszeichnungen und damit von
  Objekten. Diese Tabelle enthält die meiste Information zu diesen
  Typen, und aus ihr werden die benötigten Klasse im Abschnitt 3 des
  Programm erzeugt:

for name, props in element_properties.items():
    cls = \
    type(name.capitalize(), (Element,), {'element_properties': props})
    globals_dict[name.capitalize()] = cls

  . Dies ist der Quelltext für die Klassen zur Objektdarstellung
  einer ML/0-Quelle. Er erzeugt beispielsweise zu einem Elementtyp
  wie "em" aus der Tabelle eine Klasse "Em" für Objekte zur Darstel-
  lung von em-Stücken aus der ML/0-Quelle.

  In vielen Fällen sollte man weitere Typen zu ML/0 und zum Wandler
  hinzufügen können, indem man die Tabelle der Typen um eine Eintrag
  erweitert, mit dem man auch die HTML-Darstellung festlegen kann.

  Alle Elemente teilen die Basisklasse "Element" miteinander. Diese
  enthält im wesentlich nur eine Method namens "accept", die andere
  Klassen beim Durchlaufen des Objektmodells unterstützt.

  (Die genaue Formulierung dieses Teils des Programms wird dann später
  in der vollständigen Wiedergabe des Quelltextes zu lesen sein.)

Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads