Претификация кода Google с помощью Markdown не работает

преттификация кода Google работает нормально, но когда я использую контент Markdown и показываю контент из база данных, prettify работает неправильно ссылка на текущий результат

Вот что я делаю:

  • Получение контента с

    <textarea name="article_content" id="wmd-input" class="wmd-panel"></textarea>

  • Затем сохраните вывод после (я использую PDO)

    Markdown($_POST['article_content'])

Но в результате часть, которую я написал в разделе кода, работает нормально, если я не использую Markdown, но когда я получаю содержимое из текстовой области и использую Markdown, это не работает.


person user007    schedule 24.11.2012    source источник
comment
любая помощь/совет будут оценены   -  person user007    schedule 24.11.2012


Ответы (2)


Посмотрите на html-код, вы пропустили class="prettyprint" в теге pre.

<pre><code>try {
    $db-&gt;beginTransaction();

    $db-&gt;exec("SOME QUERY");

    $stmt = $db-&gt;prepare("SOME OTHER QUERY?");
    $stmt-&gt;execute(array($value));

    $stmt = $db-&gt;prepare("YET ANOTHER QUERY??");
    $stmt-&gt;execute(array($value2, $value3));

    $db-&gt;commit();
} catch(PDOException $ex) {
    //Something went wrong rollback!
    $db-&gt;rollBack();
    echo $ex-&gt;getMessage();
}
</code></pre>      

должно быть

<pre class="prettyprint"><code>try {
    $db-&gt;beginTransaction();

    $db-&gt;exec("SOME QUERY");

    $stmt = $db-&gt;prepare("SOME OTHER QUERY?");
    $stmt-&gt;execute(array($value));

    $stmt = $db-&gt;prepare("YET ANOTHER QUERY??");
    $stmt-&gt;execute(array($value2, $value3));

    $db-&gt;commit();
} catch(PDOException $ex) {
    //Something went wrong rollback!
    $db-&gt;rollBack();
    echo $ex-&gt;getMessage();
}
</code></pre>      

Чтобы решить проблему автоматического создания <pre>, вы можете попробовать следующее:

$newcontent = str_replace('<pre>', '<pre class="prettyprint">', $_POST['article_content']);
person HenchHacker    schedule 24.11.2012
comment
люблю тебя, приятель, это работает, но где мне нужно добавить это в wmd js, так как он автоматически добавляет <pre><code> - person user007; 24.11.2012
comment
Добавить класс с помощью javascript после добавления тегов? Вы всегда можете добавить тег-оболочку и поместить в него класс (но не уверен, что милая печать была сделана на pre.prettyprint или .prettyprint, поэтому вам придется попробовать и посмотреть). - person HenchHacker; 24.11.2012
comment
не могли бы вы добавить это $cont = $_POST['article_content']; $newcontent= (str_replace( '<pre>', '<pre class="prettyprint">',$cont)); в ответ, чтобы я мог принять ваш ответ - person user007; 24.11.2012

Для автоматически сгенерированного <pre> вы также можете использовать:

$('pre').addClass('prettyprint');
person suhailvs    schedule 09.10.2013