Come sfuggire a <e> all'interno dei tag <pre>


88

Sto cercando di scrivere un post sul blog che includa un segmento di codice all'interno di un <pre>tag. Il segmento di codice include un tipo generico e utilizza <>per definire quel tipo. Questo è l'aspetto del segmento:

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

L'HTML risultante rimuove il <>e finisce in questo modo:

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

Come faccio a sfuggire a in <>modo che vengano visualizzati nell'HTML?


3
&lt;e&gt;
Alan Dong

Potresti semplicemente usare un formattatore online: freeformatter.com/html-escape.html
kaore

Risposte:


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

17
Mi dispiace che non ci sia ancora una tecnologia introdotta per questo.
Sathish Kumar kk

Naturalmente, anche la e commerciale è qualcosa che deve essere citato nello stesso contesto delle parentesi angolari, quindi non sono così sicuro di quanto sia utile usare '&' se '<' e '>' necessitano di entità html.
Astara

21
<pre>&gt;</pre>

viene visualizzato come:

>

Quindi tu vuoi:

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

che risulta come:

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




2

Ciò che ha detto rp , è sufficiente sostituire i simboli maggiore di (>) e minore di (<) con la loro entità HTML equivalente. Ecco un esempio:

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

Dovrebbe apparire come (questa volta usando esattamente lo stesso senza gli spazi anteposti per il markdown):

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

-1

Probabilmente è qualcosa di specifico per il software del tuo blog, ma potresti provare le seguenti stringhe (rimuovi il carattere di sottolineatura): & _lt; & _gt;


-4

Un modo migliore per farlo è non doversi preoccupare affatto dei codici dei caratteri. Metti tutto il tuo codice all'interno dei <pre>tag con quanto segue

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

Avrai bisogno di jQuery abilitato affinché funzioni, comunque.


1
Non è meglio. Dovresti quindi eseguire l'escape dei tuoi contenuti per JavaScript. In alcuni casi, è ancora possibile uscire da JavaScript. Ad esempio, e se il contenuto fosse contenuto </pre>?
Brad
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.