2

我正在使用 WMD 编辑器。这个

它工作正常。但问题是,我想让它与编辑表单一起工作。

现在我得到的是 html 而不是 markdown 文本。我的代码就像在我的编辑页面中一样。

<div id="wmd-editor" class="wmd-panel">
    <div id="wmd-button-bar"></div>
            <textarea id="wmd-input"><?php echo $row['description']?></textarea>
    </div>
    <div id="wmd-preview" class="wmd-panel"></div>
    <div id="wmd-output" class="wmd-panel"></div>

不确定这里有什么问题。

4

1 回答 1

2

首先:存储库没有维护(显然已经超过 7 年没有更新)所以你应该考虑切换到一个活动的分支。WMD 已重命名为,Page Down但您可以使用许多替代编辑器。

正如timclutton评论的那样,您可能将 HTML 存储在您的数据库中。WMD 不支持从 HTML 到 Markdown 的转换。所以最好的解决方案是将内容存储为 Markdown。

为此,请更改您的创建页面。由于我没有代码,我只会给你一个例子来说明它的外观:

<form action="/create" method="POST">
    <div id="wmd-editor" class="wmd-panel">
        <div id="wmd-button-bar"></div>
            <textarea name="content" id="wmd-input"></textarea>
        </div>
    <div id="wmd-preview" class="wmd-panel"></div>
    <div id="wmd-output" class="wmd-panel"></div>
    <button type="submit">Send</button>
</form>

在服务器端,您现在可以将 的内容存储$_POST['content']在数据库中,然后按照您现在的操作方式将其输出到编辑页面。


最后是Page Down wiki的安全说明:

应该注意的是,就用户输入的输入而言,Markdown 并不安全。几乎任何东西在 Markdown 中都是有效的,尤其是像<script>doEvil();</script>. 这个 PageDown 存储库包括 Stack Exchange 用来清理用户输入的两个插件;请参阅下面对 Markdown.Sanitizer.js 的描述。

于 2016-05-31T08:50:23.310 回答