So entkommen Sie <und> innerhalb von <pre> -Tags


88

Ich versuche, einen Blog-Beitrag zu schreiben, der ein Codesegment in einem <pre>Tag enthält. Das Codesegment enthält einen generischen Typ und wird <>zum Definieren dieses Typs verwendet. So sieht das Segment aus:

<pre>
    PrimeCalc calc = new PrimeCalc();
    Func<int, int> del = calc.GetNextPrime;
</pre>

Der resultierende HTML-Code entfernt das <>und endet wie folgt:

PrimeCalc calc = new PrimeCalc();
Func del = calc.GetNextPrime;

Wie entkomme ich dem, <>damit sie im HTML angezeigt werden?


3
&lt;und&gt;
Alan Dong

Sie könnten nur einen Online - Formatierer verwenden: freeformatter.com/html-escape.html
kaore

Antworten:


111
<pre>
    PrimeCalc calc = new PrimeCalc();
    Func&lt;int, int&gt; del = calc.GetNextPrime;
</pre>

17
Ich fühle mich schlecht, dass dafür noch keine Technologie eingeführt wurde.
Sathish Kumar kk

Natürlich muss das kaufmännische Und auch im selben Kontext wie eckige Klammern angegeben werden. Daher bin ich mir nicht sicher, wie nützlich es ist, '&' zu verwenden, wenn '<' und '>' HTML-Entitäten benötigen.
Astara

21
<pre>&gt;</pre>

rendert als:

>

Also du möchtest:

<pre>
    PrimeCalc calc = new PrimeCalc();
    Func&lt;int, int&gt; del = calc.GetNextPrime;
</pre>

was sich herausstellt wie:

    PrimeCalc calc = new PrimeCalc ();
    Func <int, int> del = calc.GetNextPrime;




2

Was rp gesagt hat , ersetzen Sie einfach die Symbole größer als (>) und kleiner als (<) durch ihre HTML-Entitätsäquivalente. Hier ist ein Beispiel:

<pre>
    PrimeCalc calc = new PrimeCalc();
    Func&lt;int, int&gt; del = calc.GetNextPrime;
</pre>

Dies sollte folgendermaßen aussehen (diesmal mit genau demselben ohne die vorangestellten Leerzeichen für das Markdown):

    PrimeCalc calc = new PrimeCalc ();
    Func <int, int> del = calc.GetNextPrime;

-1

Es ist wahrscheinlich etwas Spezielles für Ihre Blog-Software, aber Sie möchten möglicherweise die folgenden Zeichenfolgen ausprobieren (entfernen Sie den Unterstrich): & _lt; & _gt;


-4

Ein besserer Weg ist es, sich überhaupt keine Gedanken über die Zeichencodes machen zu müssen. Wickeln Sie einfach Ihren gesamten Code wie <pre>folgt in die Tags ein

<pre>
${fn:escapeXml('
  <!-- all your code -->
')};
</pre>

Sie müssen jQuery aktiviert haben, damit es funktioniert.


1
Das ist nicht besser. Sie müssten dann Ihren Inhalt für JavaScript maskieren. In einigen Fällen ist es immer noch möglich, aus dem JavaScript auszubrechen. Was wäre zum Beispiel, wenn der Inhalt </pre>darin enthalten wäre?
Brad
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.