Como escapar <e> dentro das tags <pre>


88

Estou tentando escrever uma postagem de blog que inclui um segmento de código dentro de uma <pre>tag. O segmento de código inclui um tipo genérico e usa <>para definir esse tipo. Esta é a aparência do segmento:

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

O HTML resultante remove oe <>termina assim:

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

Como faço para escapar do <>para que apareçam no HTML?


3
&lt;e&gt;
Alan Dong

Você poderia simplesmente usar um formatador online: freeformatter.com/html-escape.html
kaore

Respostas:


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

17
Me sinto mal que ainda não haja nenhuma tecnologia introduzida para isso.
Sathish Kumar kk

Obviamente, o E comercial também é algo que precisa ser citado no mesmo contexto dos colchetes angulares, portanto, não tenho certeza de quão útil é usar '&' se '<' e '>' precisam de entidades html.
Astara

21
<pre>&gt;</pre>

renderiza como:

>

Então você quer:

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

o que resulta como:

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




2

O que rp disse , basta substituir os símbolos maior que (>) e menor que (<) por seus equivalentes de entidade html. Aqui está um exemplo:

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

Deve aparecer como (desta vez usando exatamente o mesmo, sem os espaços prefixados para marcação):

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

-1

Provavelmente é algo específico para o software do seu blog, mas você pode querer experimentar as seguintes strings (remova o caractere de sublinhado): & _lt; & _gt;


-4

A melhor maneira de fazer é não se preocupar com os códigos dos caracteres. Basta envolver todo o seu código dentro das <pre>tags com o seguinte

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

Você precisa ter o jQuery habilitado para que funcione.


1
Isso não é melhor. Você precisaria então escapar do seu conteúdo para JavaScript. Em alguns casos, ainda é possível sair do JavaScript. Por exemplo, e se o conteúdo contivesse </pre>?
Brad
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.