Wie kann ich führende und nachfolgende Zeilenumbrüche innerhalb eines HTML- "code" -Blocks mit css, javascript oder jquery ignorieren?

8

In meinem HTML-Quellcode habe ich einen Codeblock wie den folgenden (ich verwende showdown und highlight.js auf dieser Seite):

%Vor%

Mein Problem ist, dass der erste Zeilenumbruch Teil des "Code" -Blocks bleibt. Wahrscheinlich liegt es am umschließenden "pre" -Block, aber ich brauche das da highlight.js es erwartet (auch scheinbar der HTML5-Standard empfiehlt es ). Der Code wird so dargestellt (beachten Sie den Zeilenumbruch):

Also meine Frage ist, mit css, javascript oder jquery, wie kann ich führende oder nachfolgende Zeilenumbrüche aus "Code" -Blöcken wie diesem entfernen?

    
Boinst 18.02.2013, 23:03
quelle

6 Antworten

9

Sie könnten diesen Hack verwenden:

%Vor%     
jonasnas 19.02.2013, 01:59
quelle
2

So funktioniert pre standardmäßig: Zeilenumbrüche und Leerzeichen werden berücksichtigt. Wenn Sie nicht möchten, dass der Zeilenumbruch wiedergegeben wird, müssen Sie ihn entfernen. Entweder entfernen Sie es direkt aus der Quelle oder kommentieren es aus, wenn es Ihnen wichtig ist, wie die Quelle aussieht.

Ссылка

%Vor%     
cimmanon 19.02.2013 01:06
quelle
2

Hier ist ein anderer Ansatz, der Javascript verwendet, das auch das Problem löst:

%Vor%

Jemand anders hat das gepostet und dann ihre Antwort gelöscht, aber ich dachte, es wäre es wert, aufbewahrt zu werden.

    
Boinst 20.02.2013 22:31
quelle
1

Demo: Ссылка .

Getestet mit Chrome und FF auf dem PC. Es funktioniert nicht in IE 9, wenn das Plugin auf ein code -Element angewendet wird (es scheint gut zu funktionieren, wenn es auf ein pre -Element angewendet wird). Ich kann keine geeignete Problemumgehung finden, aber zögern Sie nicht, zu kommentieren / zu aktualisieren.

Dies ist eine modifizierte Version von eine weitere Antwort . Dieses Plugin versucht, zusätzliche Einrückungen zu entfernen, die durch den natürlichen Fluss des Dokuments verursacht werden. Ich habe es so modifiziert, dass es schlauer ist, führende Whitespaces zu führen.

Wenn es richtig funktioniert, sollten Sie etwas sehen wie:

Verwendung

$("code").prettyPre(); // any selector here

HTML mit führenden Leerzeichen und zusätzlicher Einrückung

%Vor%

Plugin

%Vor%     
Tim Medora 18.02.2013 23:21
quelle
1

Ich entferne sie einfach manuell, bevor der Textmarker startet.

%Vor%
    
John Haugeland 12.07.2016 22:03
quelle
0

Diese Funktionen verwenden eine Klasse (die zu pre hinzugefügt wurde), um führende und nachfolgende Leerzeichen zu entfernen

%Vor%

Fügen Sie einfach die Klasse indent-X hinzu, wobei X die Menge an Leerzeichen ist, die Sie in pre entfernen möchten.

JSFiddle

%Vor% %Vor% %Vor%
    
Tim 11.06.2016 16:04
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ tag123perl ___ Perl ist eine prozedurale, allgemeine Programmiersprache für allgemeine Zwecke, die für ihre native Unterstützung von regulären Ausdrücken und String-Parsing-Funktionen bekannt ist. Bitte verwenden Sie diesen Tag für Fragen zu Perl im Allgemeinen. Für Dinge, die mit der neuen (aber verwandten) Sprache "Perl 6" zu tun haben, verwenden Sie bitte das perl6-Tag. Verwenden Sie für reguläre Ausdrücke nach Perl-Art in anderen Sprachen das Regex-Tag oder, falls sie auf der PCRE-Bibliothek basieren, das PCRE-Tag. ___ answer15053905 ___

Es verhindert Konflikte mit in Perl geschriebenen Programmen.

Sagen wir zum Beispiel, ich habe ein Programm für Perl 5.6 geschrieben, das eine Subroutine namens %code% definiert hat.

%Vor%

Das funktioniert einwandfrei (Ausgabe 1 ) und funktioniert immer noch in Perls, die das %code% -Feature enthalten.

Nun aktivieren wir das native %code% und sehen was passiert:

%Vor%

Jetzt fällt es um mit * Verwendung des nicht initialisierten Wertes $ _ in zB at - Zeile 5. *

Sie müssen %code% oder %code% eingeben, damit die neuen Funktionen sicher geladen werden können, d. h. wenn der Autor weiß, dass er sie verwenden möchte.

    
___ answer15053928 ___

Perl versucht, die Rückwärtskompatibilität beizubehalten. Es ist durchaus möglich, dass existierende Skripte Unterroutinen mit dem Namen %code% haben. Es gibt eine beträchtliche Diskussion darüber, ob eine zukünftige Version von Perl diese Bemühungen stoppen und seine Interna rationalisieren sollte. Siehe zum Beispiel Benennungs- und Nummerierungsperl .

    
___ qstntxt ___

Ich habe 5.14.2 in meinem Computer installiert, aber wenn ich versuche, eine Druckanweisung mit %code% Schlüsselwort auszuführen, gibt es einen Fehler.

Ich gehe mit dem use-Schlüsselwort, um das Programm ohne Fehler laufen zu lassen.

%Vor%

5.14.2 ist spätestens im Vergleich zu 5.010, also sollten alle diese Funktionen standardmäßig aktiviert sein, oder? Was ist dann der Punkt bei der Angabe der Version mit %code% keyword?

    
___