我是这个领域的新手。 我需要将MarkDown放在我的网站上。
我正在使用此:https://github.com/NextStepWebs/simplemde-markdown-editor
MarkDown出现并运行CLIENT SIDE,使用PREVIEW我看到HTML格式化。
问题在于我将文本发送到数据库,并在获取并在我的页面中打印之后。
数据库在SQL中,type是VARCHAR。
HTML未格式化。
信息:
我认为在服务器端需要一些东西,但我在github上找不到任何东西。
答案 0 :(得分:2)
您似乎在客户端上有一个工作预览,它接受Markdown文本并成功将其转换为HTML并在预览中显示。但是,现在您要将文本存储在数据库中。
如果您希望稍后再回来编辑文本,那么您将始终希望将文档存储为Markdown文本。这意味着每次请求/显示页面时,文本也需要从Markdown转换为HTML。但是,当从数据库中检索文档并在将其提供给客户端之前,您需要通过Markdown解析器运行文档以将其转换为HTML。我的PHP有点生疏,但是类似下面的更改会让你开始朝着正确的方向前进:
if(mysql_num_rows($sql) > 0){
$i=0;
while($row = mysql_fetch_assoc($sql)) {
$i++;
echo ' <div class="comment">'.Markdown::defaultTransform($row ['contenuto']).'</div> ext ext ext '
}
请注意,从数据库获取的内容在打印之前会通过Markdown parser传递。您需要正确安装PHP Markdown库才能使用。当然,每次请求页面时都会解析Markdown。
另一种解决方案可能是使用JavaScript Markdown解析器(可能与预览工具使用的解析器相同),每次请求页面时,它都会将Markdown转换为HTML。但是,这将假设每个请求仅请求部分文档(可能具有AJAX请求)而不是加载整个新页面(否则JavaScript库将如何用于处理文档)。这可能会也可能不会起作用,这取决于您当前的设置,通常不是首选方案。另一个答案提供了这种潜在的解决方案。
第三个(可能更具吸引力)选项,可以消除在每个请求上将Markdown转换为HTML的需要,将原始Markdown文本和转换后的HTML文本存储为数据库表中的两个单独列。这样,当您想要“编辑”文档时,检索Markdown文档并进行更改。保存这些更改后,将Markdown和呈现的HTML保存到各自的数据库列。但是,当您想要显示文档(大多数情况下可能会发生)时,请从数据库的呈现列(HTML)中检索文档。例如:
$HTMLpost = Markdown::defaultTransform($post);
答案 1 :(得分:0)
simplemde-markdown-editor使用Marked将Markdown转换为HTML进行预览。
因此,您只需要遵循标记自述文件中的代码:https://github.com/chjj/marked#browser
<?php
if (mysql_num_rows($sql) > 0) {
$i = 0;
while ($row = mysql_fetch_assoc($sql)) {
$i++;
$comment = $row['contenuto'];
echo "<div id='comment$i' class='comment'></div>
<script>
document.getElementById('comment$i').innerHTML = marked('$comment');
</script>";
}
}