GithubHelp home page GithubHelp logo

wusuov / gmchina_xiuno_editormd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gamemakerchina/gmchina_xiuno_editormd

0.0 1.0 0.0 2.08 MB

Editor.md for Xiuno BBS 4.0+

License: MIT License

JavaScript 13.02% HTML 1.42% PHP 85.55% CSS 0.02%

gmchina_xiuno_editormd's Introduction

gmchina_xiuno_editormd

Editor.md for Xiuno BBS 4.0+

在 Xiuno BBS 中使用 Editor.md 创建帖子。

用法

1.5 开始无需加入 Hook,以下作为兼容性方案保留

  1. 下载最新版本并解压,将文件夹更名为 gmchina_xiuno_editormd 后在后台启动插件
  2. 修改当前使用的主题的 post.htm 文件,在 id 和 name 为 message 的代码中加入两段 Hook ( #3 ):
<!--{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.4 0.7.0
1.7.1 0.7.1
1.8.0-beta5 0.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
  • 不需要手动在主题加入 Hook
  • 设置界面
  • 重写图片本地上传图片接口(目前的接口已经足够使用)
  • 更多云存储的选择
  • 发布兼容 HTML

图片存储支持

存储 支持情况 备注
本地 支持
七牛 支持 xxiaopang
又拍 不支持
阿里云 OSS 不支持
腾讯云 COS 不支持
SM.MS 不支持
GitHub 不支持
微博图床 不支持

安全性问题

由于 Editor.md 已经很长时间没有更新,其预览模式可以引发 XSS 攻击!

虽然已经通过内置的过滤设置过滤掉了大部分危险标签,但依然可以输入不安全内容,如[xss](javascript:alert%281%29)

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

2018-12-29:已使用 JS-XSS 过滤了预览模式的 XSS ,现可安全使用

Parsedown 则是从 1.7.0 开始加入了 Safe Mode 模式可以自动对输出进行净化,推荐使用 1.7.1 并将网站 PHP 版本更换为 5.3 及以上(推荐 PHP5.6 和 PHP7)

已知问题

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

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

1.2 版本开始,输出修改为 message (即用户输入的原始数据),这样会解决大量渲染问题,同时也兼容了 HTML,尽管 XSS 问题已经由 HTML Purifier 和 JS-XSS 过滤后基本消失,但依然请谨慎使用。

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

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

使用了

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

协议

MIT License

gmchina_xiuno_editormd's People

Contributors

liaronce avatar orziz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.