Zeilennummerierung ohne Javascript

  • Hi@all!

    Ich prograqmmiere seit 1999 für das Web und bin ein erfahrener Programmierer. Für meine Projekte verwende ich nahezu ausschließlich Selbstgeskriptetes. Nun habe ich aber ein Problem, das ich alleine nicht lösen kann und das mich an den rand des Wahnsinns treibt. Ich versuche mich an einem Synthaxhiglighter ohne Javascript. Das eigentliche Skripten ist kein Ding, das habe ich erledigt. Woran ich scheitere ist, die Codeabschnitte so darzustellen, dass Zeilennummern zwar sichtbar sind, diese aber nicht mit ausgewählt werden, wenn man den Code markiert. Wie gesagt, soll das ohne Javascript funktionieren.

    Was am Nächsten an meine Bedürfnisse kommt, ist eine Ordered List. Die Nummern werden im Gegensatz zu einer Tabelle nicht mitmarkiert. Da stören mich allerdings die Punkte hinter den Zeilennummeren.

    Man kann die Nummerierung einer Ordered List zwar durch einen eigenen Counter ersetzen, dann allerdings sind die Nummern nicht mehr rechtsbündig.

    Was ich also suche, ist ein Weg, wie ich folgendes realisieren kann.

    1. Rechtsbündige Zeilennummerierung ohne Punkt.
    2. Der Text sollte ohne Zeilennummern zu markieren sein.
    3. Javascript sollte nicht verwendet werden.

    Für Hilfe wäre ich sehr dankbar. Vielleicht kennt jemand einen Weg, wie das zu realisieren ist?!

    Hier ein Beispiel, wie das aussehen soll:

    So sollte der Text zu markieren sein:

    Der frühe Wurm lebt sehr gefährlich!

  • Ich mache das in PHP. Ich suche also eine HTML/CSS-Lösung für die Nummerierung. Das geht auch aus dem Beitrag hervor.

    Der frühe Wurm lebt sehr gefährlich!

    • Offizieller Beitrag

    Nö, von PHP steht in #1 nichts! Hätte auch Perl, C/C++, Python, or something else sein können...
    Du wirst aber ohne JS ( wobei ich die Einstellung grundsätzlich gut finde! ) nicht viel weiter kommen, wie Du schon bist.

    Evtl. hilft Dir aber list-style-position, habe ich jetzt aber nicht getestet...

  • Aber es ist doch egal, welche Skriptsprache im Backend verwendet wird. Browser interpretieren nichts anderes als HTML und CSS. Javascript hatte ich bereits ausgeschlossen. Also ...

    Der frühe Wurm lebt sehr gefährlich!

    • Offizieller Beitrag

    Man kann die Ausgabe aber prima vorbereiten Server seitig. Und da gibt es unterschiedliche Möglichkeiten je nach eingesetzter Technologie.
    Ich bin davon ausgegangen, dass Dir das bewusst ist, weil Du selbst sagst, dass Du ein erfahrener Programmierer bist. Da HTML und CSS nichts mit Programmierung zu tun haben, habe ich angenommen, Du weißt, worauf ich hinaus wollte.

    Um es in Deinen Worten zu sagen: "Geht aus den Beiträgen hervor... Also..."
    Ich bin raus...

  • Ich habe nun doch noch selbst eine Lösung im Netz gefunden, wie ich eine Ordered List mit rechtsbündigen Zeilennummern versehen kann. W3C sei Dank!

    https://www.w3.org/Style/Examples/007/color-bullets.en.html

    Mein CSS sieht so aus:

    Funzt!

    Der frühe Wurm lebt sehr gefährlich!

  • Zu spät

  • doch haut schon hin solange es ZWEI Elemente sind
    das erste (hier <span>) ohne Content - nur mir dem
    :before { counter-increment: span;
    content:counter(span);  
    ...
    }
    "befüllt" wird .

    aber jeder Inhalt des zweiten Elements (hier <b>) egal was drin ist u. wie lang bekommt nur EINE einzige Zeilennummer
    das kann für eine Listing Anzeige nicht sinnvoll sein -
    - das geht natürlich auch mit
    <table> <tr> <td class="count"><td> <td>ListingZeile<td> </tr> </table>

    also muss doch per PHP oder so ein Ende jeder Zeile erkannt u. gesetzt werden
    nach irgendwelchen bestimmten Zeichen damit dann die zwei neuen Elemente angelegt werden
    für neue Zeilen Nummern-
    bei Seitenquelltext Anzeigen sieht man häufig nach </element> eine neue Zeile
    aber es gibt ja noch viele andere Zeilen die anders enden zb. ; oder } usw.

    wie das aussieht bei Hero würde mich Interessieren... :cool: jo
    Danke

    Gruß modem-kind


    6 Mal editiert, zuletzt von modem-kind (25. Januar 2017 um 12:00)


  • wie das aussieht bei Hero würde mich Interessieren... :cool: jo


    Ich verwende eine Ordered List. Den CSS-Code habe ich bereits gepostet. Der große Vorteil einer OL ist, dass die Zeilennummern nicht mit ausgewählt werden. Bei einer Tabelle wäre das anders.

    Die Alternative wären zwei getrennte Elemente. Also eines für Zeilennummern und ein weiteres Element für den Highlightcode. Das wäre aber nicht elegant. Es musste eine Möglichkeit geben, der OL den letzten Schliff zu geben. Die kam meiner Vorstellung ja bereits am Nächsten. Gefunden habe ich die Lösung am Ende selbst bei W3C. Nun haben die Code-Abschnitte rechtsbündige Zeilennummern ohne Punkt und werden nicht mit ausgewählt, weil die Nummerierung der OL nicht zum Content gehört.

    In ein paar Tagen geht meine Seite damit online. Bisher habe ich einen JS-Highlighter verwendet. Das war zwar gut, aber ich wollte davon weg. Eine Webseite sollte im Wesentlichen ohne JS funktionieren. Das Highlighting gehört auf meiner Seite einfach dazu. Programmiererisch kein Ding, aber beim Styling Tricky, wenn man anspruchsvoll ist.

    Der frühe Wurm lebt sehr gefährlich!

  • Habe mal mein Beispiel etwas geändert und bissel bunt gemacht(Highlighter).