Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   CalitrixWiki Supportforum (https://boardunity.de/calitrixwiki-supportforum-f68.html)
-   -   Valides Xhtml (https://boardunity.de/valides-xhtml-t2991.html)

ees555 06.04.2005 00:55

Valides Xhtml
 
Hi!
Ich nutze das CalitrixWiki und bin echt begeistert! :D
Leider spuckt der Validator vom W3C (http://validator.w3.org/) noch einige errors aus. :eek:
Ich hab mir das mal angeguckt und festgestellt dass es im Grunde zwei Probleme sind:

1. <h1>, <ul> und <li> werden innerhalb von <p></p> benutzt.
das liegt an zeile 121 in der class_parser.php.

2. Sonderzeichen werden in URLs nicht encodiert. Z.b. das "&" in
"./cwiki.php?page=Wiki:Users&user=1". dieses müsste eigentlich als "&amp;" im Quellcode stehen.

Das zweite Probem ist nicht dramatisch und weit verbreitet, das erste stört mich schon mehr.
Wenn man in zeile 121 die <p>s durch <br />s ersetzt, geht es zwar, aber das layout (und struktur der seiten) leidet etwas.
Zeile 121:
PHP-Code:

$text "<p>\n".join("\n</p>\n<p>\n"$text)."\n</p>"

Und mit <br />s:
PHP-Code:

$text "<br />\n".join("<br />\n"$text).""

Wär schön, wenn man das irgendwie in den Griff bekommen könnte.
Es wird zwar in allen meinen Browsern richtig angezeigt, aber ein sauberer Code ist gerade bei einem Wiki sinnvoll.

exe 06.04.2005 01:48

Zum ersten Problem: Überschriften und Listen sind da nicht die einzigen. Auch Tabellen dürften in dem Zusammenhang Probleme machen. Man könnte sicherlich bei solchen Elementen prüfen ob sie innerhalb eines Absatzes stehen und gegebenenfalls den Absatz schliessen, das würde allerdings einigen Mehraufwand beim Parsen bedeuten. Ich muss mal schauen wie und ob sich das effizient machen lässt.

Zum zweiten Problem: das ist ein kleiner Bug in der Funktion die die URL generiert. Normalerweise werden & durch &amp; dargestellt, nur das erste & nicht ;) In der nächsten Version ists gefixt.

libs/class_core.php, in Zeile 502

Code:

$url    .= strpos($url, '?') !== false ? '&' : '?';
ersetzen durch

Code:

$url    .= strpos($url, '?') !== false ? $seperator : '?';
... sollte so funktionieren, falls du es selber schonmal fixen willst ;)

ees555 06.04.2005 01:58

wow. das nenn ich mal schnellen support :D
danke!

OrcaDesign 06.04.2005 17:57

Zu dem Problem beim Ersetzen von <p> durch <br />: ersetz mal probeweise die <p>s durch
Code:

<br />&nbsp;
Grund: ein <br /> beispielsweise am Ende eines Absatzes wird meist auch nicht dargestellt, weil eine Zeile ohne Zeichen halt weiter keine Höhe hat. Wohingegen auch ein nichtsichtbares Leerzeichen eine Zeichenhöhe besitzt. ;)

exe 06.04.2005 18:56

Man könnte, anstatt jeden Absatz in <p>...</p> zu setzen auch einfach zwei <br /> bei jeder leeren Zeile einsetzen. Das Ergebnis im Browser dürfte das gleiche sein, nur wäre es semantisch kein gutes XHTML mehr.

ees555 06.04.2005 23:08

dann bleibt wohl keine andere Alternative als den Parser dazu zu bringen vor einer Überschrift, Liste, Tabelle etc. den Absazu zu schließen und falls danach noch Text folgt (bei Überschriften wohl fast immer, bei Tabellen ja nicht unbedingt) einen neuen zu öffnen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25