Forum: PC-Programmierung PHP, XML und XSL wie kann ich Nutzerdefiniertes Markup einbringen?


von Verwirrter Anfänger (Gast)


Lesenswert?

Hi,
ich bin gerade dabei eine Artikelsammelung zu programmieren. Hierbei 
gibt es verschiedene von den Nutzern geschriebene Texte, die dynamisch 
zu Handbüchern, Artikeln, Übersichten, etc. zusammengestellt werden 
können.
Die Ergebnisse sollen sowohl als Webseite, als auch als PDF und im XML 
Format ausgegeben werden können.
Die Transformation in PDF soll über xml mit xsl durch den Apache FOP 
erfolgen. Da dachte ich mir es macht Sinn, evtl. die Webseiten selbst 
auch schon mit XML und XSL zu erstellen.

Mein Problem liegt darin, wie ich dem Nutzer ermögliche in den Artikeln 
selbst gewisse Formatierungen vor zunehmen. Ich hab bis jetzt drei 
Ansätze:

- Wiki Markup
- BBCode
- HTML

schön wäre wenn ich das Markup möglichst leicht mit XSL in XSL-FO oder 
HTML transformieren könnte. Deshalb würde ich normalerweise HTML 
bevorzugen. Mein Problem ist aber nun, dass die ganzen XML entities im 
User input escaped werden bei der Transofmation des XMLs.

Soll ich mir hier nun einfach was zusammenhacken, was die zurück 
convertiert, oder gibt es da schon bessere Ansätze?

Ciao,
VA

von PHP <3 (Gast)


Lesenswert?

Wie wärs mit Markdown? Hat eine ganz nette PHP-Implementierung und 
konvertiert nach HTML.

von Pernt (Gast)


Lesenswert?

Hallo,

der Ansatz XML/XSL bedingt eine Trennung von Layout (XSL) und Inhalt 
(XML). Erlaubst du im Inhalt Formatierungsanweisungen ("Fett", 
"Rot"...), torpedierst du diesen Ansatz. Man soll deshalb den Inhalt nur 
semantisch Auszeichnen (deshalb auch Markup-Language), also im Sinne von 
"Überschrift", "Absatz" oder "Abbildung".

Die Menge der Auszeichnungselemente, und die Randbedingungen für deren 
Verwendung, werden in einer DTD oder einem Schema (.XSD) gespeichert. 
Für Dokumentationen, Bücher etc. gibt es seit vielen Jahren die 
DocBook-DTD, die auch für deine Zwecke ausreichen sollte.


Gruß!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.