【问题标题】:WMD editor not working in edit form大规模杀伤性武器编辑器无法以编辑形式工作
【发布时间】:2016-09-21 06:45:58
【问题描述】:

我正在使用 WMD 编辑器。 This一个。

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

现在我得到的是 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>

不知道这里出了什么问题。

【问题讨论】:

  • “现在我得到的是 html 而不是 markdown 文本”。如果您将 HTML 保存到 $row['description'],那么这就是将显示的内容。 WMD 不会将 HTML 转换为 Markdown。您需要将 Markdown 存储在数据库中并将其输出到编辑器。

标签: php wmd-editor


【解决方案1】:

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

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

为此,请更改您的 create 页面。因为我没有代码,所以我只是给你一个例子来说明它的外观:

<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'] 的内容存储在您的数据库中,然后按照您现在的操作方式将其输出到edit 页面。


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

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

【讨论】:

  • 实际上我在数据库中存储了与您上面描述的相同的东西。但是当我回到编辑页面时,我可以看到 html 与我们在预览中看到的不一样。
  • 所以你在存储 Markdown?正如我所说,最好的选择可能是使用更新且仍在维护的 WMD 版本(或现在称为 PageDown)
  • 是的,我正在存储 Makdown。如果我想在简单页面上显示它,它工作正常。但无法在编辑页面上正常工作。因为在编辑页面上,我正在 wmd 编辑器上加载该文本。你可以生活堆栈溢出的例子。尝试编辑您的问题。您将在 wmd-editor 上看到正确的文本。不是 html,而在我的情况下有 html
  • 可能只是您的 PHP 语句中缺少 ;
  • 我就是这样使用的。没有得到你的最后评论。缺什么。
猜你喜欢
  • 2011-02-16
  • 2010-11-10
  • 2011-07-28
  • 1970-01-01
  • 2010-12-10
  • 2010-11-18
  • 2010-12-30
  • 2023-03-19
  • 2010-12-04
相关资源
最近更新 更多