Як уникнути тегів <і> всередині тегів <pre>


89

Я намагаюся написати допис у блозі, який включає сегмент коду всередині <pre>тегу. Сегмент коду включає загальний тип і використовується <>для визначення цього типу. Ось як виглядає сегмент:

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

Отриманий HTML видаляє <>і закінчується так:

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

Як мені уникнути, <>щоб вони відображалися в HTML?


3
&lt;та&gt;
Алан Донг,

Ви можете просто використовувати онлайн форматіровщік: freeformatter.com/html-escape.html
kaore

Відповіді:


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

17
Мені погано, що досі не існує технології для цього.
Sathish Kumar kk

Звичайно, амперсанд - це також те, що потрібно цитувати в тому ж контексті, що і кутові дужки, тому я не настільки впевнений, наскільки корисно використовувати '&', якщо '<' та '>' потребують html-сутностей.
Астара

21
<pre>&gt;</pre>

надає як:

>

Отже, ви хочете:

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

що виходить так:

    PrimeCalc calc = новий PrimeCalc ();
    Func <int, int> del = calc.GetNextPrime;

14

Використовуйте &lt;та, &gt;щоб робити <і >всередині html.




2

Що сказав rp , просто замініть символи більше (>) і менше (<) на їх еквівалент сутності html. Ось приклад:

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

Це повинно виглядати як (цього разу використовуючи абсолютно те саме, без попередньо доданих пробілів для націнки):

    PrimeCalc calc = новий PrimeCalc ();
    Func <int, int> del = calc.GetNextPrime;

-1

Можливо, це щось специфічне для програмного забезпечення вашого блогу, але, можливо, ви захочете спробувати такі рядки (видалити символ підкреслення): & _lt; & _gt;


-4

Кращий спосіб - це зовсім не турбуватися про коди символів. Просто оберніть весь свій код всередині <pre>тегів наступним чином

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

Вам потрібно мати увімкнений jQuery, щоб він працював.


1
Це не краще. Тоді вам потрібно буде уникнути вашого вмісту для JavaScript. У деяких випадках все ще можливо вирватися з JavaScript. Наприклад, що, якби вміст був </pre>у ньому?
Бред
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.