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
Author: ram@zedat.fu-ber
Date: Fri, 09 May 2025 07:19
Date: Fri, 09 May 2025 07:19
38 lines
1910 bytes
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