Skip to content

Latest commit

 

History

History
469 lines (350 loc) · 22.7 KB

CHANGE.md

File metadata and controls

469 lines (350 loc) · 22.7 KB

更新日志

v1.0.x

v1.0.0 beta

预览版:基本功能完成;

v1.0.0 releases

发布 v1.0.0 正式版。

主要更新:

  • 新建分支 mathjax-version,但不打算继续对此分支进行开发;

  • 移除 MathJax,改用 KaTeX #2,解析和预览响应速度大幅度提高 #3

    • 移除 mathjax 配置项;
    • 移除 mathjaxURL 属性;
    • 移除 setMathJaxConfig() 方法;
    • 移除 loadMathJax() 方法;
    • 移除MathJax的所有示例;
    • 新增 tex 配置项,表示是否开启支持科学公式 TeX ,基于 KaTeX;
    • 新增 katexURL 属性;
    • 新增 loadKaTeX 方法;
    • 新增 KaTeX 的示例;
  • setCodeEditor() 方法更名为 setCodeMirror()

  • 合并 CodeMirror 使用到的多个 JS 模块文件,大幅减少 HTTP 请求,加快下载速度;

    • 新增合并后的两个模块文件:./lib/codemirror/modes.min.js./lib/codemirror/addons.min.js
    • Gulpfile.js 新增合并 CodeMirror 模块文件的任务方法 codemirror-modecodemirror-addon
    • 另外在使用 Require.js 时,因为 CodeMirror 的严格模块依赖的限制,不能使用上述合并的模块文件,仍然采用动态加载多个模块文件;
  • 更新 README.md 等相关文档和示例;

  • 解决 Sea.js 环境下 Raphael.js 无法运行导致不支持流程图和时序图的问题,即必须先加载 Raphael.js ,后加载 Sea.js ;

v1.1.x

v1.1.0

主要更新:

  • 设计并更换了 Logo;
  • 新增添加图片、链接、锚点链接、代码块、预格式文本等操作弹出对话框层及示例;
  • 新增支持图片(跨域)上传;
  • 改用 <textarea> 来存放 Markdown 源文档;
  • 新增支持自定义工具栏;
  • 新增支持多语言;
  • 新增支持 Zepto.js;
  • 新增支持多个 Editor.md 并存和动态加载 Editor.md 及示例;
  • 新增支持智能识别和解析 HTML 标签及示例;
  • 新增多个外部操作方法接口及示例;
  • 修复了一些大大小小的 Bug;

具体更新如下:

  • 更换 Logo,建立基础 VI;

    • 创建了全系列 WebFont 字体 dist/fonts/editormd-logo.*
    • 新增样式类 editormd-logo 等;
  • 改用 <textarea> 来存放 Markdown 源文档;

    • 原先使用 <script type="text/markdown"></script> 来存放 Markdown 源文档;
    • 创建 Editor.md 只需要写一个 <div id="xxxx"></div> ,如果没有添加 class="editormd" 属性会自动添加,另外如果不存在 <textarea> 标签,则也会自动添加 <textarea>
  • 新增支持智能识别和解析 HTML 标签,增强了 Markdown 语法的扩展性,几乎无限,例如:插入视频等等;

    • 新增配置项 htmlDecode ,表示是否开启 HTML 标签识别和解析,但是为了安全性,默认不开启;
    • 新增识别和解析 HTML 标签的示例;
  • 新增插入链接、锚点链接、预格式文本和代码块的弹出对话框层;

    • 弹出层改为使用固定定位;
    • 新增动态创建对话框的方法 createDialog()
    • 新增静态属性 editormd.codeLanguages ,用于存放代码语言列表;
  • 开始支持图片上传;

    • 新增添加图片(上传)弹出对话框层;
    • 支持基于 iframe 的跨域上传,并添加相应的示例( PHP 版);
  • 开始支持自定义工具栏图标及操作处理;

    • 配置项 toolbarIcons 类型由数组更改为函数,返回一个图标按钮列表数组;
    • 新增配置项 toolbarHandlerstoolbarIconsTexts ,分别用于自定义按钮操作处理和按钮内容文本;
    • 新增方法 getToolbarHandles() ,用于可在外部使用默认的操作方法;
    • 新增成员属性 activeIcon ,可获取当前或上次点击的工具栏图标的 jQuery 实例对象;
  • 新增表单取值、自定义工具栏、图片上传、多个 Editor.md 并存和动态加载 Editor.md 等多个示例;

  • 新增插入锚点按钮和操作处理;

  • 新增预览 HTML 内容窗口的关闭按钮,之前只能按 ESC 才能退出 HTML 全窗口预览;

  • 新增多语言( l18n )及动态加载语言包支持;

    • 新增英语 en 和繁体中文 zh-tw 语言包模块;
    • 修改一些方法的内部实现以支持动态语言加载:
      • toolbarHandler() 更为 setToolbarHandler()
      • setToolbar() 方法包含 setToolbarHandler()
      • 新建 createInfoDialog() 方法;
      • 修改 showInfoDialog()hideInfoDialog() 方法的内部实现等;
  • 修改多次 Bug ,并优化触摸事件,改进对 iPad 的支持;

  • 工具栏新增清空按钮和清空方法 clear() ,解决工具栏文本会被选中出现蓝底的问题;

  • 配置项 tocStartLevel 的默认值由 2 改为 1,表示默认从 H1 开始生成 ToC;

  • 解决 IE8 下加载出错的问题;

    • 新增两个静态成员属性 isIEisIE8 ,用于判断 IE8;
    • 由于 IE8 不支持 FlowChart 和 SequenceDiagram,默认在 IE8 下不加载这两个组件,无论是否开启;
  • 新增 Zepto.js 的支持;

    • 为了兼容 Zepto.js ,某些元素在操作处理上不再使用 outerWidth()outerHeight()hover()is() 等方法;
    • 为了避免修改 flowChart.js 和 sequence-diagram.js 的源码,所以想支持 flowChart 或 sequenceDiagram 得加上这一句: var jQuery = Zepto;
  • 新增 editormd.$name 属性,修改 editormd.homePage 属性的新地址;

  • editormd.markdownToHTML() 新增方法返回一个 jQuery 实例对象;

    • 该实例对象定义了一个 getMarkdown()方法,用于获取 Markdown 源代码;
    • 该实例对象定义了一个 tocContainer 成员属性,即 ToC 列表的父层的 jQuery 实例对象;
  • 新增只读模式;

    • 新增配置项 readOnly ,默认值为 false ,即可编辑模式;
    • 其他相关改动;
  • 新增方法 focus()setCursor()getCursor()setSelection()getSelection()replaceSelection()insertValue() 方法,并增加对应的示例;

  • 新增配置项 saveHTMLToTextarea ,用于将解析后的 HTML 保存到 Textarea,以供提交到后台程序;

    • getHTML() 方法必须在 saveHTMLToTextarea == true 的情况下才能使用;
    • 新增 getHTML() 方法的别名 getTextareaSavedHTML() 方法;
    • 新增方法 getPreviewedHTML() ,用于获取预览窗口的 HTML ;
  • 修复了一些大大小小的 Bugs;

v1.1.1
  • 接受一个 pull 请求,修复了 getHTML ()getPreviewedHTML() 方法中的 3 处错误;
v1.1.2
v1.1.3
v1.1.4
  • 修复 Bug #17
    • 修改了 getToolbarHandles()setToolbarHandler() 方法;
  • editormd.scss 中分离出 editormd.logo.scss ,并生成 editormd.logo.css ,以便单独使用;
    • 同时修改了 Gulpfile.js 的相应任务;
v1.1.5
  • 修复 Bug #18

    • 修改了 showInfoDialog()createInfoDialog() 方法;
    • 新增 infoDialogPosition() 方法;
  • 修复 Bug #20

    • 修改了引用的处理函数;
    • 插入的 headers 的 # 号后面都加上了一个空格;
v1.1.6

修复多处 Bug,具体如下:

  • 修复 Bug #23,即 Headers 的 id 属性的重复及中文问题;

    • 修改了 editormd.markedRenderer() 方法;
  • 修复 Bug #24

    • 修改了 setMarkdown()clear()loadedDisplay() 方法的内部实现;
    • 新增了 katexRender()flowChartAndSequenceDiagramRender()previewCodeHighlight() 方法;
  • 修复有些情况下无法保存 Markdown 源文档到 textarea 的问题;

    • 修改了 setCodeMirror()recreateEditor() 等方法;
  • 修改了以上 Bug 及部分相关示例文件;

v1.1.7

修复多处 Bug,具体如下:

  • 修复 Bug #25

    • 修改了 loadedDisplay() 方法,将 settings.onload 移动了 CodeMirror.on("change") 事件注册后再触发;
  • 修复 Bug #26

    • 修改了 saveToTextareas() 方法;
    • 新增 state.loadedstate.watching 两个属性;
  • 修改了以上 Bug 相关示例文件;

v1.1.8

改进功能,具体如下:

  • 改进 #27

    • 新增配置项 matchWordHighlight ,可选值有: true, false, "onselected" ,默认值为 true ,即开启自动匹配和标示相同单词;
  • 改进 #28

    • jquery.min.jsfont-awesome.min.cssgithub-markdown.css 移除(这是一个疏忽,它们不是动态加载的依赖模块或者不需要的,避免不必要的硬盘空间占用);
  • 修改了所有相关的示例文件;

v1.1.9
  • 修复无法解析 heading link 的 Bug #29

    • 修改了 editormd.markedRenderer() 方法的内部实现;
    • 新增了 editormd.trim() ,用于清除字符串两边的空格;
    • 修改了所有相关的示例文件和测试用例 marked-heading-link-test.html
  • 修改了 README.md ,添加了 Shields.io 图标;

v1.2

v1.2.0

v1.2.0 主要更新:

  • 新增代码折叠、搜索替换、自定义样式主题和自定义快捷键等功能;
  • 新增 Emoji 表情、@Link 、GFM Task Lists 支持;
  • 新增表格插入、Emoji 表情插入、HTML 实体字符插入、使用帮助等对话框;
  • 新增插件扩展机制;
  • 新增手动加载依赖模块方式;
  • 改用 Prefixes.css 作 CSS 前缀预处理;
  • 改进和增强工具栏自定义功能,完善事件监听和处理方法;
  • 部分功能改进(更加方便的预格式文本/代码插入、自动闭合标签等)、新增多个方法、改进 Require.js 支持和修复多个 Bug 等等;

具体更新如下:

  • 新建 v1.1.x 分支;

    • v1.2 文件结构变动较大;
  • 新增代码折叠、自动闭合标签和搜索替换功能;

    • 搜索快捷键 Ctrl + F / Command + F
    • 替换快捷键 Ctrl + Shift + F / Command + Option + F
    • 折叠快捷键 Ctrl + Q / Command + Q
  • 新增自定义主题支持;

    • 新增 3 个成员方法 setTheme()setCodeMirrorOption()getCodeMirrorOption()
  • 新增 @Link 支持;

  • 新增 GFM Task Lists 支持;

  • 新增 Emoji 表情支持;

    • 支持 Github emoji :emoji-name: 、FontAwesome icons(:fa-xxx:)、Twitter emoji (twemoji) ( :tw-xxxx: )、Editor.md logo icons( :editormd-logo: )形式的 Emoji;
    • 新增属性 editormd.emojieditormd.twemojieditormd.urlseditormd.regex
  • 新增 HTML 实体字符插入、插入表格和使用帮助对话框;

    • 修改了 createDialog() 等方法;
    • 新增 mask 成员属性和锁屏方法 editormd.lockScreen()editormd.fn.lockScreen()
  • 改进插入预格式文本和代码对话框;

    • <textarea> 改为 CodeMirror ,输入更加方便和直观;
  • 新增自定义键盘快捷键功能;

    • 新增 2 个方法: addKeyMap()removeKayMap()
  • 改用 Prefixes.css 作CSS前缀预处理;

  • 改进和增强工具栏自定义功能;

    • 新增配置项 toolbarCustomIcons ,用于增加自定义工具栏的功能,可以直接插入 HTML 标签,不使用默认的元素创建图标;
    • 新增工具栏列表预设值属性 editormd.toolbarModes
    • 移除成员属性 toolbarIconHandlers
  • 完善和新增事件处理方法;

    • 新增事件回调注册方法 on()
    • 新增事件回调移除方法 off()
    • 新增事件回调处理配置项: onresizeonscrollonpreviewscrollonpreviewingonpreviewedonwatchonunwatch
  • 新增手动加载依赖模块方式,以便可同步使用成员方法;

    • 新增属性 autoLoadModules ,默认值为 true
  • 新增插件及扩展机制;

    • 新增插件自定义机制,改变整体结构(包括文件结构),以便更加方便地实现插件扩展;
    • 新增对象扩展方法 extends()set()
  • 新增成员方法和属性:

    • 新增两个方法: setValue()getValue()
    • 新增 config() 方法,用于加载后重新配置;
    • 增加两个属性 cm ,是 codeEditor 的简写, cmElementcodeMirror 的别名;
  • 成员方法的改进:

    • 改进: showToolbar()hideToolbar() 方法增加一个 callback 函数,用于直接回调操作;
    • 改进:修改了 previewCodeHighlight() 方法;
    • 更名: recreateEditor() 更名为 recreate()
    • 移除 setMarked() 方法;
  • 新增 HTML 标签解析过滤机制;

    • 通过设置 settings.htmlDecode = "style,script,iframe" 来实现过滤指定标签的解析;
  • 改进 Require.js 支持;

    • 修复 Require.js 下 CodeMirror 编辑器的代码无法高亮的问题;
    • 更新 underscore 版本至 1.8.2
    • 移除 editormd.requirejsInit()editormd.requireModules() 方法;
    • 新增 Require.js/AMD 专用版本文件 editormd.amd.js
    • 新建 Gulp 任务 amd
  • 修改和新增以上改进等相关示例;

v1.3

v1.3.0

主要更新:

  • 预设键盘快捷键处理(粗体等),插入 Markdown 更加方便;
  • 更新 CodeMirror 版本为 5.0
  • 更新 Marked 版本为 0.3.3
  • 新增自动高度和工具栏固定定位功能;
  • 改进表格插入对话框;
  • 工具栏新增三个按钮,分别是将所选文本首字母转成大写、转成小写、转成大写;
  • 修改使用帮助文档;
  • 修复多个 Bug;

具体更新如下:

  • 新增常用键盘快捷键预设处理;

    • 新增属性 editormd.keyMaps ,预设一些常用操作,例如插入粗体等;
    • 新增成员方法 registerKeyMaps()
    • 退出HTML全屏预览快捷键更改为 Shift + ESC
    • 新增配置项 disabledKeyMaps ,用于屏蔽一些快捷键操作;
  • 更新 CodeMirror 版本为 5.0

    • 修改无法输入 / 的问题;
  • 更新 Marked 版本为 0.3.3

  • 新增自动高度和工具栏固定定位(滚动条拖动时)模式;

    • 新增配置项 settings.autoHeight
    • 新增配置项 settings.toolbarAutoFixed
    • 新增方法 setToolbarAutoFixed(true|false)
  • 新增邮箱地址自动添加链接功能;

    • 新增配置项 emailLink ,默认为 true ;
  • 改进表格插入对话框;

  • 工具栏新增三个按钮,分别是将所选文本首字母转成大写、转成小写、转成大写;

    • 新增方法 editormd.ucwords() ,别名 editormd.wordsFirstUpperCase()
    • 新增方法 editormd.ucfirst() ,别名 editormd.firstUpperCase()
    • 新增两个成员方法 getSelections()getSelections()
  • 修复 Font awesome 图标 emoji 部分无法解析的 Bug,#39

  • 改进 @link 功能 #40

    • 新增配置项 atLink ,默认为 true ;
  • 修复无法输入 / 的问题 #42

  • 修改使用帮助说明的错误 #43

  • 新增配置项 pluginPath,默认为空时,等于 settings.path + "../plugins/"

v1.4

v1.4.0

主要更新:

  • 新增延迟解析机制,预览更即时;
  • 新增跳转到指定行的功能和对话框;
  • 新增 ToC 下拉菜单、自定义 ToC 容器的功能;
  • 新增跳转到行、搜索的工具栏按钮;
  • 新增支持插入和解析(打印)分页符;
  • 改进快捷键功能和自动高度模式等;
  • 改进:将锚点链接改名为引用链接;
  • 改进编辑器重建和重配置功能;
  • 修复多个 Bug;

具体更新:

  • 新增延迟解析预览的机制,解决输入太多太快出现的 “延迟卡顿” 问题;
    • 新增配置项 delay ,默认值为 300
    • 修复当输入速度太快时,解析Flowchart会抛出错误的问题;
  • 修改 iPad 等移动终端的浏览器无法上传图片的问题 #48
  • 修复单独引用 editormd.preview.css 时无法显示 Font Awesome 和 Editor.md logo 字体的问题;
  • 更新和修改 Gulp 构建;
    • 修改了 Gulpfile.js ,并且 gulp-ruby-sass 升级到最新版本 1.0.0-alpha.3 ;
    • 编辑 SCSS 时,不再生成 CSS 的 Source map 文件;
  • 执行 jshint 和更正一些 JS 写法的不规范,精简了代码;
  • 新增配置项 appendMarkdownappendMarkdown() 方法,用于(初始化前后)追加 Markdown 到 Textarea ;
  • 改进部分预设快捷键功能,包括 F9 (watch)、F10 (preview)、F11 (fullscreen)等;
  • 修复自动高度模式下出现的几个问题;
    • 全屏退出时高度不正确的问题:修改了 fullscreenExit() 方法的内部实现;
    • 当解析预览后的 HTML 内容高度高于 Markdown 源码编辑器高度时,无法正确预览的问题 #49
  • 修改 onscrollonpreviewscroll 无法访问 this 的问题;
  • 修改 init() 方法,可以只设置一个参数;
  • 新增插入 TeX (KaTeX) 公式的快捷键 Ctrl + Shift + K 和插入方法 tex()
  • 将锚点链接改为引用链接,引用的链接改为插入到页尾;
    • 工具栏的名称 anchor 改为 reference-link
    • 工具栏的名称 htmlEntities 改名为 html-entities
  • 改进编辑器重建和重配置功能;
    • 修改了 loadedDisplay() 方法;
    • 修改了 config()recreate() 方法;
  • 新增跳转到指定行的功能;
    • 新增方法 gotoLine()
    • 新增跳转到行对话框插件 goto-line-dialog
    • 新增快捷键 Ctrl + Alt + G
    • 改进 executePlugin() 方法;
    • 修改了 help-dialog/help.md
  • 新增搜索工具栏按钮;
    • 新增方法 search()searchReplace()searchReplaceAll()
    • 原全屏预览 HTML 按钮的图标改为 fa-desktop
    • 改为默认开启搜索替换功能;
  • 更换了关于 Editor.md 的标语( slogan );
  • 标题按钮 h 改为大写的 H
  • saveToTextareas() 方法更名为 save()
  • 新增 ToC 下拉菜单、自定义 ToC 容器的功能;
    • 新增 Markdown 扩展语法 [TOCM] ,自动生成 ToC 下拉菜单;
    • 新增配置项 tocm ,默认为 true,即可以使用 [TOCM]
    • 新增配置项 tocDropdowntocTitle
    • 新增方法 editormd.tocDropdownMenu()
    • 新增配置项 tocContainer ,值为 jQuery 选择器,默认为空;
  • 修改了配置项 placeholder 的默认值;
  • 改进对 IE8 的兼容支持;
  • 修复 Firefox 下因为 Object.watch() 而出现的问题;
  • 新增支持插入和解析(打印)分页符;
    • 新增配置项 pageBreak ,默认值为 true
    • 新增语法 [========] ,即括号内至少 8 个等号;
    • 新增插入分页符的工具栏图标和方法 pagebreak()
    • 新增插入分页符的快捷键 Shift + Alt + P
  • 修复一些 Bug,包括 #51 等;
  • 新增和修改以上更新的相关示例;

v1.4.1

  • 新增配置项 syncScrolling,即是否开启同步滚动预览,默认值为 false
  • 修复 Bug #64
    • 更新 editormd.katexURL 资源地址的默认值,即更新版本为 0.3.0
    • 新增测试用例tests/katex-tests.html
    • 修改示例文件examples/katex.html
  • 修复 Bug #66
  • 修复编辑器工具栏按钮 :hover CSS3 transition 无效的问题;
  • 修改了 README.md

v1.4.2

  • 改进和增强自定义工具栏功能,支持图标按钮右对齐 #69
  • 改进和增强 HTML 标签的解析过滤功能,支持过滤指定的属性等 #70
  • 删除分支 mathjax-versionv1.1.9

v1.4.3

  • 改进:可配置是否自动聚焦编辑器 #74
    • 新增配置项 autoFocus,默认值为 true;
  • 修复 Bug #77
  • 改进:帮助对话框里的链接改为新窗口打开,避免直接跳转到链接,导致编辑内容丢失的问题 #79
  • 改进和完善编辑器配置项;
    • 新增配置项 tabSizeindentUnitlineWrapping
    • 新增配置项 autoCloseBracketsshowTrailingSpace
    • 新增配置项 matchBracketsindentWithTabsstyleSelectedText
  • 改进:修改 CSS font-family,改进跨平台中英文字体显示;
  • 修改了 README.md

v1.4.4

  • 修复 Bug #81,即不支持 :+1: 的问题;
  • 修复 Bug #85,即图片上传返回结果不支持 Content-Type=application/json 的问题;
  • 修复图片上传无法显示 loading 的问题;

v1.4.5

  • 规范项目的中英文混排;
  • 新增配置项 name,用于指定 Markdown textarea 的 name="xxxx" 属性;
  • 修复 Bug,即无法正确解析公式的 <> 的问题 #87;
  • 修复 Bug,即 getHTML() 无效的问题 #95;
  • 修复 Bug,即火狐上传图片后无法返回值的问题 #96;
    • 修改了图片上传插件;
    • 修改 PHP 上传类及示例;
  • 方法更名:extends() 更名为 extend(),以兼容 IE8;
  • 修复 IE8 下 Emoji 正则表达式字符集越界的问题;
  • 更新了 README.mdCHANGE.md 等相关文档文件;