Jak uciec <i> wewnątrz tagów <pre>


89

Próbuję napisać post na blogu, który zawiera segment kodu wewnątrz <pre>tagu. Segment kodu zawiera typ ogólny i używa <>do zdefiniowania tego typu. Tak wygląda segment:

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

Wynikowy kod HTML usuwa <>i kończy się następująco:

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

Jak uciec przed tym, <>aby pojawiały się w kodzie HTML?


3
&lt;oraz&gt;
Alan Dong

Możesz po prostu użyć programu formatującego online: freeformatter.com/html-escape.html
kaore

Odpowiedzi:


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

17
Czuję się źle, że nie ma jeszcze technologii do tego.
Sathish Kumar kk

Oczywiście znak ampersand jest również czymś, co należy cytować w tym samym kontekście, co nawiasy kątowe, więc nie jestem pewien, jak przydatne jest użycie znaków „&”, jeśli „<” i „>” wymagają jednostek html.
Astara

21
<pre>&gt;</pre>

renderuje się jako:

>

Więc chcesz:

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

co wygląda następująco:

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




2

Co powiedział rp , po prostu zamień symbole większe niż (>) i mniejsze niż (<) na ich odpowiedniki encji html. Oto przykład:

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

Powinno to wyglądać następująco (tym razem używając dokładnie tego samego bez spacji poprzedzających przecenę):

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

-1

Prawdopodobnie jest to coś specyficznego dla oprogramowania Twojego bloga, ale możesz chcieć wypróbować następujące ciągi (usunąć znak podkreślenia): & _lt; & _gt;


-4

Lepszym sposobem jest nie martwienie się w ogóle o kody znaków. Po prostu zawiń cały kod wewnątrz <pre>tagów za pomocą następującego

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

Musisz mieć włączoną obsługę jQuery, aby działała.


1
To nie jest lepsze. Będziesz wtedy musiał uciec od treści dla JavaScript. W niektórych przypadkach nadal można wyrwać się z JavaScript. Na przykład, co by było, gdyby treść była </pre>w nim?
Brad
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.