预览版:基本功能完成;
发布 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-mode
和codemirror-addon
;- 另外在使用 Require.js 时,因为 CodeMirror 的严格模块依赖的限制,不能使用上述合并的模块文件,仍然采用动态加载多个模块文件;
- 新增合并后的两个模块文件:
-
更新
README.md
等相关文档和示例; -
解决 Sea.js 环境下 Raphael.js 无法运行导致不支持流程图和时序图的问题,即必须先加载 Raphael.js ,后加载 Sea.js ;
主要更新:
- 设计并更换了 Logo;
- 新增添加图片、链接、锚点链接、代码块、预格式文本等操作弹出对话框层及示例;
- 新增支持图片(跨域)上传;
- 改用
<textarea>
来存放 Markdown 源文档; - 新增支持自定义工具栏;
- 新增支持多语言;
- 新增支持 Zepto.js;
- 新增支持多个 Editor.md 并存和动态加载 Editor.md 及示例;
- 新增支持智能识别和解析 HTML 标签及示例;
- 新增多个外部操作方法接口及示例;
- 修复了一些大大小小的 Bug;
具体更新如下:
-
更换 Logo,建立基础 VI;
- 创建了全系列 WebFont 字体
dist/fonts/editormd-logo.*
; - 新增样式类
editormd-logo
等;
- 创建了全系列 WebFont 字体
-
改用
<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
类型由数组更改为函数,返回一个图标按钮列表数组; - 新增配置项
toolbarHandlers
和toolbarIconsTexts
,分别用于自定义按钮操作处理和按钮内容文本; - 新增方法
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 下加载出错的问题;
- 新增两个静态成员属性
isIE
和isIE8
,用于判断 IE8; - 由于 IE8 不支持 FlowChart 和 SequenceDiagram,默认在 IE8 下不加载这两个组件,无论是否开启;
- 新增两个静态成员属性
-
新增 Zepto.js 的支持;
- 为了兼容 Zepto.js ,某些元素在操作处理上不再使用
outerWidth()
、outerHeight()
、hover()
、is()
等方法; - 为了避免修改 flowChart.js 和 sequence-diagram.js 的源码,所以想支持 flowChart 或 sequenceDiagram 得加上这一句:
var jQuery = Zepto;
;
- 为了兼容 Zepto.js ,某些元素在操作处理上不再使用
-
新增
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;
- 接受一个 pull 请求,修复了
getHTML ()
和getPreviewedHTML()
方法中的 3 处错误;
- 修复 Bug #17;
- 修改了
getToolbarHandles()
和setToolbarHandler()
方法;
- 修改了
- 从
editormd.scss
中分离出editormd.logo.scss
,并生成editormd.logo.css
,以便单独使用;- 同时修改了
Gulpfile.js
的相应任务;
- 同时修改了
-
修复 Bug #18;
- 修改了
showInfoDialog()
和createInfoDialog()
方法; - 新增
infoDialogPosition()
方法;
- 修改了
-
修复 Bug #20;
- 修改了引用的处理函数;
- 插入的 headers 的
#
号后面都加上了一个空格;
修复多处 Bug,具体如下:
-
修复 Bug #23,即 Headers 的 id 属性的重复及中文问题;
- 修改了
editormd.markedRenderer()
方法;
- 修改了
-
修复 Bug #24;
- 修改了
setMarkdown()
、clear()
和loadedDisplay()
方法的内部实现; - 新增了
katexRender()
、flowChartAndSequenceDiagramRender()
、previewCodeHighlight()
方法;
- 修改了
-
修复有些情况下无法保存 Markdown 源文档到 textarea 的问题;
- 修改了
setCodeMirror()
、recreateEditor()
等方法;
- 修改了
-
修改了以上 Bug 及部分相关示例文件;
修复多处 Bug,具体如下:
-
修复 Bug #25;
- 修改了
loadedDisplay()
方法,将settings.onload
移动了CodeMirror.on("change")
事件注册后再触发;
- 修改了
-
修复 Bug #26;
- 修改了
saveToTextareas()
方法; - 新增
state.loaded
和state.watching
两个属性;
- 修改了
-
修改了以上 Bug 相关示例文件;
改进功能,具体如下:
-
改进 #27;
- 新增配置项
matchWordHighlight
,可选值有:true, false, "onselected"
,默认值为true
,即开启自动匹配和标示相同单词;
- 新增配置项
-
改进 #28;
- 将
jquery.min.js
、font-awesome.min.css
、github-markdown.css
移除(这是一个疏忽,它们不是动态加载的依赖模块或者不需要的,避免不必要的硬盘空间占用);
- 将
-
修改了所有相关的示例文件;
-
修复无法解析 heading link 的 Bug #29;
- 修改了
editormd.markedRenderer()
方法的内部实现; - 新增了
editormd.trim()
,用于清除字符串两边的空格; - 修改了所有相关的示例文件和测试用例
marked-heading-link-test.html
;
- 修改了
-
修改了
README.md
,添加了Shields.io
图标;
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()
;
- 新增 3 个成员方法
-
新增 @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.emoji
、editormd.twemoji
、editormd.urls
和editormd.regex
;
- 支持 Github emoji
-
新增 HTML 实体字符插入、插入表格和使用帮助对话框;
- 修改了
createDialog()
等方法; - 新增
mask
成员属性和锁屏方法editormd.lockScreen()
、editormd.fn.lockScreen()
;
- 修改了
-
改进插入预格式文本和代码对话框;
- 将
<textarea>
改为CodeMirror
,输入更加方便和直观;
- 将
-
新增自定义键盘快捷键功能;
- 新增 2 个方法:
addKeyMap()
和removeKayMap()
;
- 新增 2 个方法:
-
改用
Prefixes.css
作CSS前缀预处理;- SCSS前缀预处理mixins改用 Prefixes.scss;
-
改进和增强工具栏自定义功能;
- 新增配置项
toolbarCustomIcons
,用于增加自定义工具栏的功能,可以直接插入 HTML 标签,不使用默认的元素创建图标; - 新增工具栏列表预设值属性
editormd.toolbarModes
; - 移除成员属性
toolbarIconHandlers
;
- 新增配置项
-
完善和新增事件处理方法;
- 新增事件回调注册方法
on()
; - 新增事件回调移除方法
off()
; - 新增事件回调处理配置项:
onresize
、onscroll
、onpreviewscroll
、onpreviewing
、onpreviewed
、onwatch
和onunwatch
;
- 新增事件回调注册方法
-
新增手动加载依赖模块方式,以便可同步使用成员方法;
- 新增属性
autoLoadModules
,默认值为true
;
- 新增属性
-
新增插件及扩展机制;
- 新增插件自定义机制,改变整体结构(包括文件结构),以便更加方便地实现插件扩展;
- 新增对象扩展方法
extends()
、set()
;
-
新增成员方法和属性:
- 新增两个方法:
setValue()
、getValue()
; - 新增
config()
方法,用于加载后重新配置; - 增加两个属性
cm
,是codeEditor
的简写,cmElement
是codeMirror
的别名;
- 新增两个方法:
-
成员方法的改进:
- 改进:
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
;
-
修改和新增以上改进等相关示例;
主要更新:
- 预设键盘快捷键处理(粗体等),插入 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/"
;
主要更新:
- 新增延迟解析机制,预览更即时;
- 新增跳转到指定行的功能和对话框;
- 新增 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 写法的不规范,精简了代码;
- 新增配置项
appendMarkdown
和appendMarkdown()
方法,用于(初始化前后)追加 Markdown 到 Textarea ; - 改进部分预设快捷键功能,包括 F9 (watch)、F10 (preview)、F11 (fullscreen)等;
- 修复自动高度模式下出现的几个问题;
- 全屏退出时高度不正确的问题:修改了
fullscreenExit()
方法的内部实现; - 当解析预览后的 HTML 内容高度高于 Markdown 源码编辑器高度时,无法正确预览的问题 #49;
- 全屏退出时高度不正确的问题:修改了
- 修改
onscroll
和onpreviewscroll
无法访问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]
; - 新增配置项
tocDropdown
和tocTitle
; - 新增方法
editormd.tocDropdownMenu()
; - 新增配置项
tocContainer
,值为 jQuery 选择器,默认为空;
- 新增 Markdown 扩展语法
- 修改了配置项
placeholder
的默认值; - 改进对 IE8 的兼容支持;
- 修复 Firefox 下因为
Object.watch()
而出现的问题; - 新增支持插入和解析(打印)分页符;
- 新增配置项
pageBreak
,默认值为true
; - 新增语法
[========]
,即括号内至少 8 个等号; - 新增插入分页符的工具栏图标和方法
pagebreak()
; - 新增插入分页符的快捷键
Shift + Alt + P
;
- 新增配置项
- 修复一些 Bug,包括 #51 等;
- 新增和修改以上更新的相关示例;
- 新增配置项
syncScrolling
,即是否开启同步滚动预览,默认值为false
; - 修复 Bug #64;
- 更新
editormd.katexURL
资源地址的默认值,即更新版本为0.3.0
; - 新增测试用例
tests/katex-tests.html
; - 修改示例文件
examples/katex.html
;
- 更新
- 修复 Bug #66;
- 修复编辑器工具栏按钮
:hover
CSS3 transition 无效的问题; - 修改了
README.md
;
- 改进:可配置是否自动聚焦编辑器 #74;
- 新增配置项
autoFocus
,默认值为true
;
- 新增配置项
- 修复 Bug #77;
- 改进:帮助对话框里的链接改为新窗口打开,避免直接跳转到链接,导致编辑内容丢失的问题 #79;
- 改进和完善编辑器配置项;
- 新增配置项
tabSize
、indentUnit
和lineWrapping
; - 新增配置项
autoCloseBrackets
和showTrailingSpace
; - 新增配置项
matchBrackets
、indentWithTabs
和styleSelectedText
;
- 新增配置项
- 改进:修改 CSS
font-family
,改进跨平台中英文字体显示; - 修改了
README.md
;