无法使用StackExchange的PageDown将Markdown转换为HTML

5

我有一种将直接标记代码(由PageDown编辑器生成)存储到数据库的方法。在另一页上,我从数据库中获取标记,并通过markdown转换器运行它,但我似乎无法获得任何输出。这是我的脚本:

<script type="text/javascript" src="include/Markdown.Converter.js"></script>
<script type="text/javascript" src="include/Markdown.Sanitizer.js"></script>
<script type="text/javascript" src="include/Markdown.Editor.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        var converter = Markdown.Converter();
        $("#description-content").text(converter.makeHTML("<?php echo $description ?>"));
    });
</script>

PHP正在从数据库中输出纯粹的Markdown文本。当我访问页面时,没有任何内容显示在div中。我做错了什么?

编辑:我没有看到任何回显的文本,如果我只是在.text()中添加纯文本,我可以看到它。


$description 包含什么内容?你有收到任何 JavaScript 错误吗? - jprofitt
我对PHP不是很了解,但我相信你不能在JavaScript中使用PHP,因为PHP是服务器端的,无法在用户浏览器中运行。 - Andres Ilich
@AndresIlich,由于我正在服务器端使用PHP进行回显,当$description的内容到达浏览器时,它会被放置在jQuery中。 - user623990
JavaScript错误怎么样?你在echo的文本中有没有遇到任何问题? - jprofitt
1
来到这里是出于不同的原因...尽管这已经是三年后了,我还是想评论一下这个问题。如果你能够看到使用正常文本时的结果,但在使用 PHP echo 时却无法看到结果,那么问题就出在 echo 上。也许是复制粘贴失败了,但你漏掉了在 $description 后面加上 ;,这肯定会停止 echo 的输出。 - Oberst
显示剩余3条评论
3个回答

4

Markdown.Converter 是一个构造函数;您需要使用它来创建一个 Markdown 转换器实例。

var converter = new Markdown.Converter();

1

虽然回答晚了,但希望能对新访客有所帮助

如果你从数据库中获取结果并通过PHP进行输出,我建议使用https://michelf.ca/projects/php-markdown/classic/

下载该文件后,可以将其用于将Markdown文本转换为HTML。

<?php 

$query_post = mysqli_query($con,"SELECT * FROM `posts` ...//your query
$row_post = mysqli_fetch_assoc($query_post);

$content = $row_post['Body'];
include("path-to/PHP-Markdown-Extra-1.2.8/markdown.php");
$text = <<<EOD

$content

EOD;
echo Markdown($text);
?>

这将显示类似于我在此处的回答,或者在stackoverflow上的任何其他答案或问题的结果。
祝好!

0

或许你可以尝试使用Showdown代替PageDown,看看是否会有不同的结果,作为一次测试:https://github.com/coreyti/showdown/blob/master/src/showdown.js Showdown是另一个Markdown js实现。

你的代码似乎没有什么问题,我所能想到的唯一的边缘情况可能是$description中未转义的引号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接