picture 0

Android-Markdown-Editor

墨璃编辑器(ame) — Android Markdown 编辑器,基于b3log/vditor
github: https://github.com/csfwff/Android-Markdown-Editor

更新记录

  • 2020/3/12
    1. 升级vditor到2.2.19
    2. 增加wysiwyg模式
    3. 将getHTML和html2md改为同步
    4. insertValue增加是否渲染参数

背景

我就是闲的,感觉得整点东西,又不知道整啥,就整了个这个,然后结合之前做富文本是遇到的坑,稍微做了点修改

方法说明

由于基于 vditor,因此支持 vditor 的大部分方法

说明
getValue(ValueCallback callback) 获取编辑器内容
getHTML(ValueCallback callback) 获取预览区内容。
insertValue(String value, boolean render) 在焦点处插入内容,是否进行markdown渲染
focus() 聚焦到编辑器
blur() 让编辑器失焦
disabled() 禁用编辑器
enable() 解除编辑器禁用
setSelection(int start,int end) 选中从 start 开始到 end 结束的字符串,不支持 wysiwyg 模式
getSelection(ValueCallback callback) 获取选中的字符串
setValue(String value) 设置编辑器内容
getCursorPosition(ValueCallback callback) 获取焦点位置,{top: number, left: number}
deleteValue() 删除选中内容
updateValue(String value) 更新选中内容
clearCache() 清除缓存
disabledCache() 禁用缓存
enableCache() 启用缓存
html2md(value: string,ValueCallback callback) HTML 转 md。
tip(String text,int time) 消息提示。time 为 0 将一直显示
setPreviewMode(PreviewMode previewMode) 设置预览模式。PreviewMode.both, PreviewMode.editor, PreviewMode.preview
setMode(Mode mode) 设置markdown模式或wysiwyg模式

注:

  1. getHTML返回的string会将<转义成\u003C,自行查找替换即可
  2. setPreviewMode仅在markdown模式下有效
  3. wysiwyg下模式下insertValue渲染的时候会有部分标记未能联系上下文,未能正确渲染,可以采用插入的时候不渲染,换行后删除,即可正确渲染,参考这里

此外,为了方便自定义,砍掉了默认的工具栏,只提供方法,按钮怎么摆就是你的事了
另外以下方法仅支持markdown模式,wysiwyg模式下请使用insertValue

说明
undo() 撤销
redo() 重做
setBold() 加粗
setH1() 一级标题
setH2() 二级标题
setH3() 三级标题
setH4() 四级标题
setH5() 五级标题
setH6() 六级标题
setItalic() 斜体
setStrike() 删除线
setLine() 分割线
setQuote() 引用
setList() 无序列表
setOrdered() 有序列表
setCheck() 任务列表
setCode() 代码块
setInlineCode() 行内代码
setLink() 超链接
setTable() 表格

食用方法

XML

1
2
3
4
5
<com.xiamo.ame.AMEditor
android:id="@+id/ameditor"
android:layout_width="match_parent"
android:layout_height="200dp"
/>

Java

1
2
3
4
5
AMEditor amEditor = (AMEditor)findViewById(R.id.ameditor);

amEditor.focus();
amEditor.setPreviewMode(AMEditor.PreviewMode.preview);
...

鸣谢

  • Vditor: 浏览器端的 Markdown 编辑器

其他说明

稍微魔改下Vditor,改动可以看这里