Inclusives Design: Das „current page“-Problem
bearbeitet von
@Gunnar Bittersmann @Julius @Christian Kruse
Der Syntax-Highlighter für PHP (`~~~ php`) startet im PHP-Modus, während eine komplette PHP-Datei auf der Festplatte sozusagen immer im HTML-Modus startet (und mit `<?php` am Dateibeginn in den PHP-Modus umgeschaltet wird).
Das kann der Syntax-Highlighter aber nicht wirklich anders handhaben, weil sonst bei jedem kurzen Codeausschnitt…
~~~ php
for ($i = 1; $i <= 24; $i++) {
echo $i, "<br>\n";
}
~~~
…ein einleitendes `<?php` hinzugefügt werden müsste. Das ist nicht praktikabel.
Das Beispiel aus Gunnars Post könnte also um ein einleitendes `?>` ergänzt werden, um in den HTML-Modus zu schalten.
~~~ php
?>
<a
<?php if ($Menüpunkt != $aktuelleSeite): ?>
href="http://example.net/stairway/to/heaven"
<?php else: ?>
tabindex="0"
<?php endif; ?>
>
Stairway to heaven
</a>
~~~
Das ergibt inhaltlich aber natürlich wenig Sinn.
Alternativ könnte man höchstens im Syntax-Highlighter so eine Logik haben: „Wenn die Eingabe irgendwo nicht direkt am Anfang noch `<?php … ?>`-Sequenzen enthält, dann gehe davon aus, dass die Eingabe im HTML-Modus beginnt.“ Das scheint beispielsweise der Highlighter von vBulletin zu machen. Das ist oft „richtig genug“:

Es kann aber genauso danebenliegen:

(Beziehungsweise ist es letztlich nicht entscheidbar. Das `$x=` usw. könnte ja auch tatsächlich als HTML-Ausgabe gemeint sein.)
Mir ist der Ansatz des Highlighters hier im Forum, den Start-Modus nicht erraten zu wollen, deshalb grundsätzlich lieber.
Die sauberste Lösung wäre es wohl, einen zweiten Code-Tag für PHP-Highlighting hinzuzufügen, der im HTML-Modus beginnt, oder der `~~~ php`-Syntax einen Parameter hinzuzufügen. So im Sinne von: `~~~ php startinline=false`.
Kann auch gut sein, dass es so was auch hier im Forum bereits gibt.
Der Syntax-Highlighter für PHP (`~~~ php`) startet im PHP-Modus, während eine komplette PHP-Datei auf der Festplatte sozusagen immer im HTML-Modus startet (und mit `<?php` am Dateibeginn in den PHP-Modus umgeschaltet wird).
Das kann der Syntax-Highlighter aber nicht wirklich anders handhaben, weil sonst bei jedem kurzen Codeausschnitt…
~~~ php
for ($i = 1; $i <= 24; $i++) {
echo $i, "<br>\n";
}
~~~
…ein einleitendes `<?php` hinzugefügt werden müsste. Das ist nicht praktikabel.
Das Beispiel aus Gunnars Post könnte also um ein einleitendes `?>` ergänzt werden, um in den HTML-Modus zu schalten.
~~~ php
?>
<a
<?php if ($Menüpunkt != $aktuelleSeite): ?>
href="http://example.net/stairway/to/heaven"
<?php else: ?>
tabindex="0"
<?php endif; ?>
>
Stairway to heaven
</a>
~~~
Das ergibt inhaltlich aber natürlich wenig Sinn.
Alternativ könnte man höchstens im Syntax-Highlighter so eine Logik haben: „Wenn die Eingabe irgendwo nicht direkt am Anfang noch `<?php … ?>`-Sequenzen enthält, dann gehe davon aus, dass die Eingabe im HTML-Modus beginnt.“ Das scheint beispielsweise der Highlighter von vBulletin zu machen. Das ist oft „richtig genug“:

Es kann aber genauso danebenliegen:

(Beziehungsweise ist es letztlich nicht entscheidbar. Das `$x=` usw. könnte ja auch tatsächlich als HTML-Ausgabe gemeint sein.)
Mir ist der Ansatz des Highlighters hier im Forum, den Start-Modus nicht erraten zu wollen, deshalb grundsätzlich lieber.
Die sauberste Lösung wäre es wohl, einen zweiten Code-Tag für PHP-Highlighting hinzuzufügen, der im HTML-Modus beginnt, oder der `~~~ php`-Syntax einen Parameter hinzuzufügen. So im Sinne von: `~~~ php startinline=false`.
Kann auch gut sein, dass es so was auch hier im Forum bereits gibt.
Inclusives Design: Das „current page“-Problem
bearbeitet von
Der Syntax-Highlighter für PHP (`~~~ php`) startet im PHP-Modus, während eine komplette PHP-Datei auf der Festplatte sozusagen immer im HTML-Modus startet (und mit `<?php` am Dateibeginn in den PHP-Modus umgeschaltet wird).
Das kann der Syntax-Highlighter aber nicht wirklich anders handhaben, weil sonst bei jedem kurzen Codeausschnitt…
~~~ php
for ($i = 1; $i <= 24; $i++) {
echo $i, "<br>\n";
}
~~~
…ein einleitendes `<?php` hinzugefügt werden müsste. Das ist nicht praktikabel.
Das Beispiel aus Gunnars Post könnte also um ein einleitendes `?>` ergänzt werden, um in den HTML-Modus zu schalten.
~~~ php
?>
<a
<?php if ($Menüpunkt != $aktuelleSeite): ?>
href="http://example.net/stairway/to/heaven"
<?php else: ?>
tabindex="0"
<?php endif; ?>
>
Stairway to heaven
</a>
~~~
Das ergibt inhaltlich aber natürlich wenig Sinn.
Alternativ könnte man höchstens im Syntax-Highlighter so eine Logik haben: „Wenn die Eingabe irgendwo nicht direkt am Anfang noch `<?php … ?>`-Sequenzen enthält, dann gehe davon aus, dass die Eingabe im HTML-Modus beginnt.“ Das scheint beispielsweise der Highlighter von vBulletin zu machen. Das ist oft „richtig genug“:

Es kann aber genauso danebenliegen:

(Beziehungsweise ist es letztlich nicht entscheidbar. Das `$x=` usw. könnte ja auch tatsächlich als HTML-Ausgabe gemeint sein.)
Mir ist der Ansatz des Highlighters hier im Forum, den Start-Modus nicht erraten zu wollen, deshalb grundsätzlich lieber.
Die sauberste Lösung wäre es wohl, einen zweiten Code-Tag für PHP-Highlighting hinzuzufügen, der im HTML-Modus beginnt, oder der `~~~ php`-Syntax einen Parameter hinzuzufügen. So im Sinne von: `~~~ php startinline=false`.
Kann auch gut sein, dass es so was auch hier im Forum bereits gibt.