Editor.md - Markdown 编辑器 功能增强

LiarOnce 4月前 2144

目前是没有问题的了,当然后台功能并没有很全面


注:高亮使用 Prism.js (没有附带在插件里)


用法

  1. 下载最新版本并解压,将文件夹更名为 gmchina-xiuno-editormd 后在后台启动插件
  2. 修改当前使用的主题的 post.htm 文件,在 id 和 name 为 message 的代码中加入两段 Hook:
<!--{hook post_editor_before.htm}-->
<!--{hook post_editor_after.htm}-->

范例:

<div class="form-group">
    <!--{hook post_editor_before.htm}-->
    <textarea class="form-control" placeholder="<?php echo lang('message');?>" name="message" id="message"><?php echo $form_message;?></textarea>    
    <!--{hook post_editor_after.htm}-->
</div>
  1. Enjoy!~~~
注意:需禁用所有已经开启的其他编辑器(如百度编辑器)

关于上传

由于本地上传接口没按照标准来写(不知道怎么使用附件相关函数),所以位置为 upload/images,所以没有 images 文件夹的需手动在 upload 下创建并修改插件目录下的 upload/local/upload.php如有标准方案可贡献代码。

关于多个 Parsedown 版本

Parsedown 版本Parsedown Extra 版本
1.5.40.7.0
1.7.10.7.1
1.8.0-beta50.8.0-beta1

每个 Parsedown 版本均对应一个 Parsedown Extra 版本。

1.5.4 用于 PHP 5.2 环境,原因是 Parsedown 从 1.6.0 开始不再对 PHP 5.2 提供支持,强行使用 1.6.0 以上版本会导致 500 错误。

1.7.1 为目前最新的正式版本。

1.8.0-beta5 为目前最新的 beta 版本

如需使用不同版本请修改 model_post_format_end.php 前两行,默认使用 1.7.1。

TODO List

  •  Editor.md 提供的所有功能
  •  Markdown 语法发帖
  •  上传图片(保存到本地)
  •  标准的语法高亮(<pre><code class="language-(lang)"></code></pre>)(支持 Prism.js 高亮)
  •  Parsedown Extra 扩展 Markdown 更多功能(具体查看 PHP Markdown Extra(HTML 插入并不能用,原因同已知问题第一条)
  • 未实现:

  •    
  •    
  •  不需要手动在主题加入 Hook
  •  设置界面
  •  重写图片本地上传图片接口(插件内为 Editor.md 提供的范例)
  •  更多云存储的选择
  •  加入设置页面提供设置项
  •  发布兼容 HTML

安全性问题

目前输出已使用 HTML Purifier 过滤,输出内容已经是安全的内容了。

2018-12-29:预览部分的 XSS 问题已经解决

已知问题

  1. 无法使用 Markdown 的引用块 (>),原因是 XiunoBBS 对特殊字符(&"<>)进行转义导致语法被转义(XiunoBBS 的锅)

    虽然可以通过直接调用 message (非 message_fmt)达到修复效果,但这样会导致 XSS 攻击,为了安全就只能这样咯

  2. 本地上传图片接口存储位置不规范(暂时)

  3. 使用快捷回复若有使用换行会插入 <br> 标签,在之后的编辑时会被转义 (&lt;br&gt;)(已修复,我的锅)

使用了

  • XiunoPHP
  • Editor.md
  • Parsedown (含 Parsedown Extra)
  • HTML Purifier
  • JS-XSS

协议

MIT License


已开源,GitHub地址:https://github.com/GamemakerChina/gmchina_xiuno_editormd

下载地址:下载

最后于 3月前 被LiarOnce编辑 ,原因:
最新回复 (50)
  • 一二三 4月前
    引用 2
    太强大了,不要给马化腾知道了,他们目前不能文字编辑,不然他们也会仿照咱们的
  • George 4月前
    引用 3
    这个要有代码基础才能上手吧
  • qiukong 4月前
    引用 4
    用上了,感谢楼主!
  • LiarOnce 4月前
    引用 5
    qiukong 用上了,感谢楼主!
    别随随便便就用上了啊,安全性问题还需要注意的
  • axiuno 4月前
    引用 6
    nice
  • 阿郎 4月前
    引用 7
    好东西 晚上试试 谢谢楼主
  • lweein 4月前
    引用 9
    一直在等待有人可以基于editor.md 来进行编辑器的优化。已经Star
  • LiarOnce 4月前
    引用 10
    预览部分的 XSS 问题已经解决
  • 落雪飞花 4月前
    引用 11
    给你打打气.加油!
  • 引用 12
    踩了一天的坑  才发现你已经踩过了  哎  不过我用了七牛云上传
  • LiarOnce 4月前
    引用 13
    Admin_1539948114 踩了一天的坑  才发现你已经踩过了  哎  不过我用了七牛云上传

    可以自己写上传接口,不过我写不来(连本地上传的接口都不是很规范

  • 引用 14
    LiarOnce Admin_1539948114 踩了一天的坑 &nbsp;才发现你已经踩过了 &nbsp;哎 &nbsp;不过我用了七牛云上传 可以自 ...
    https://bbs.xiuno.com/thread-150040.htm   你可以看一下我的  你的那个上传也可以再修改一下  可以用hook
  • LiarOnce 3月前
    引用 15
    Admin_1539948114 https://bbs.xiuno.com/thread-150040.htm 你可以看一下我的 你的那个上传也可以再修改一下 可以用hook

    弄上去了,现在同时支持本地和七牛了

  • LiarOnce 3月前
    引用 16

    插件已上架插件中心,不过为什么我加群没反应

  • 515138 3月前
    引用 17
    不错,感谢分享!
  • LiarOnce 3月前
    引用 18
    功能更新了一下,重新审核了
  • LiarOnce 3月前
    引用 19

    emmmmmm,插件中心迟迟没通过,GitHub 版先给移动端适配(精简按钮)了

  •  _1549375439 3月前
    引用 20
    能否适配一个百度编辑器
  • LiarOnce 3月前
    引用 21
     _1549375439 能否适配一个百度编辑器
    百度的话自己弄吧,我是刚从百度编辑器的坑里跳出来的
  • 落雪飞花 3月前
    引用 22

    我也感觉那个百度编辑器不好用下面这个感觉挺好,下面这个还可以但是功能还不全可以考虑下

  • LiarOnce 3月前
    引用 23
    落雪飞花 我也感觉那个百度编辑器不好用下面这个感觉挺好,下面这个还可以但是功能还不全可以考虑下
    我这已经能稳定使用 Editor.md 了,我觉得没必要换
  • 落雪飞花 3月前
    引用 24
    LiarOnce 我这已经能稳定使用 Editor.md 了,我觉得没必要换
    确实,开发插件感觉好耗时间我看你这个编辑器修修改改都快三个月的坚持不容易
  • lweein 3月前
    引用 25
    现在直接安装就可以使用了么。还需要处理hook么。此时此刻看不到插件,是因为在审核中?
  • LiarOnce 3月前
    引用 26
    lweein 现在直接安装就可以使用了么。还需要处理hook么。此时此刻看不到插件,是因为在审核中?

    改主题已经没法避免了

    不过我觉得审核没通过,可能是这一行代码的原因

    因为为了兼容 HTML 就得冒一些风险,不过用 HTML Purifier 以后基本上是安全的内容了:
    https://github.com/GamemakerChina/gmchina_xiuno_editormd/blob/master/hook/model_post_format_end.php#L18

    仓库里的新版本现在也利用了一下数据库做缓存功能,降低了服务器压力


    还有插件中心总是三天两头炸,上传插件都难

    最后于 3月前 被LiarOnce编辑 ,原因:
  • ❤️ 3月前
    引用 27
    为啥我的引用不了,修改post.htm之后依旧不行,发帖界面看不到编辑器。。异常纠结
  • LiarOnce 3月前
    引用 28
    ❤️ 为啥我的引用不了,修改post.htm之后依旧不行,发帖界面看不到编辑器。。异常纠结

    如果可以的话能不能在GitHub发布一个issue,然后提供具体的错误(如F12的输出信息和修改的部分代码)?

  • ❤️ 3月前
    引用 29
    LiarOnce ❤️ 为啥我的引用不了,修改post.htm之后依旧不行,发帖界面看不到编辑器。。异常纠结 如果可以的话能不能在GitHub发布一个issue,然后提供具体的错 ...
    哈,没听太懂,就是按照上边写的,添加了两个hook,但是编辑的时候没有启动编辑器。
    论坛上的另一个就能用
  • ❤️ 3月前
    引用 30

  • LiarOnce 3月前
    引用 31
    ❤️

    这个还是没办法知道错误在哪


    你试试清除缓存,如果把百度编辑器开了就禁用百度编辑器

    最后于 3月前 被LiarOnce编辑 ,原因:
  • 3月前
    引用 32
        ❤️

    几乎所有意料之外的错误都可以通过尝试关闭其他同类型插件解决..

    或者一些主题插件..

  • ❤️ 3月前
    引用 33
    LiarOnce ❤️ 这个还是没办法知道错误在哪你试试清除缓存,如果把百度编辑器开了就禁用百度编辑器
    都试了,还是不行,真是奇了怪了
  • ❤️ 3月前
    引用 34
    &nbsp; &nbsp; ❤️几乎所有意料之外的错误都可以通过尝试关闭其他同类型插件解决..或者一些主题插件..
    这个木有其他类型的,就一个这个插件
  • LiarOnce 3月前
    引用 35
    ❤️ 都试了,还是不行,真是奇了怪了
    就这一点信息我也确定不来,有网站吗?
  •  _1549375439 3月前
    引用 36




    手机这个得处理一下

  • LiarOnce 3月前
    引用 37
     _1549375439 手机这个得处理一下
    这处之后会重新适配
  •  _1549375439 3月前
    引用 38




    点击本地上传图片,出现这个,然后怎么处理?

  • LiarOnce 3月前
    引用 39
     _1549375439 点击本地上传图片,出现这个,然后怎么处理?

    可能是本地上传接口的问题,因为接口我自己实在写不好。。。。。。

    所以是有的网站能用有的网站不能用的尴尬情况。。。。。。

    不过七牛就没有问题。

  •  _1549375439 3月前
    引用 40
    LiarOnce  _1549375439 点击本地上传图片,出现这个,然后怎么处理? 可能是本地上传接口的问题,因为接口我自己实在写不好。。。。。。所以是有的网站能用有的网站不 ...





    设置好了,选择七牛上传图片,点击本地上传图片就提示object

  • ❤️ 3月前
    引用 41
    LiarOnce 就这一点信息我也确定不来,有网站吗?
    你加我qq:34656034
    麻烦您了
  • LiarOnce 3月前
    引用 42
     _1549375439 设置好了,选择七牛上传图片,点击本地上传图片就提示object
    奇怪了,我自己的并没有这样的问题
  •  _1549375439 3月前
    引用 43
    LiarOnce 奇怪了,我自己的并没有这样的问题
    难道是我设置错了
  • LiarOnce 3月前
    引用 44
     _1549375439 难道是我设置错了
    设置里的东西不能全是空的,没有必要的话也不要开跨域
  •  _1549375439 3月前
    引用 45
    LiarOnce 设置里的东西不能全是空的,没有必要的话也不要开跨域
    样式没填,其他的都设置好了,跨域是关闭状态
  • LiarOnce 3月前
    引用 46
     _1549375439 样式没填,其他的都设置好了,跨域是关闭状态
    有没有已经使用了的网站
  •  _1549375439 3月前
    引用 47
    LiarOnce 有没有已经使用了的网站
    都在测试中呢
  • LiarOnce 3月前
    引用 48
     _1549375439 都在测试中呢
    那我也很难确定是什么情况,有线上环境的话最好
  • ❤️ 3月前
    引用 49
    代码高亮的风格怎样更改呢?
    麻烦您了
  • 我使用的是太白简约主题huux_theme_simple,没有你说的那个文件,要怎么修改代码?
  • LiarOnce 2月前
    引用 51
    Anseong_1545032839 我使用的是太白简约主题huux_theme_simple,没有你说的那个文件,要怎么修改代码?
    这种主题的话就直接修改 view/htm/post.htm
返回
发新帖