• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

for-editor-herb: 支持Tex的React Markdown编辑器组件 Markdown editor for React dev ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

for-editor-herb

开源软件地址:

https://gitee.com/HerbertHe/for-editor-herb

开源软件介绍:

for-editor-herb

versiondownloadcnpmVersioncnpmDownload

React的markdown编辑器组件,支持Tex渲染

版本说明

版本号说明

x.x.x --> 不兼容更新 . 新特性更新(含已知bug修复) . bug修复

基于for-editor的分支,因为原作者太久没有更新了,PR也没有处理,有些小伙伴看修改文档觉得没有很方便,索性就开了这个项目。拥抱开源,如果你喜欢,请给个star给原项目

基于0.3.5开始构建

更多的特性

  • 工具栏按钮 quote/paragraph/table/inline code/collapse/katex/list
  • 支持渲染Tex块和行内Tex语句
  • 响应式布局
  • 支持预览大纲跳转锚点
  • 生成大纲插入
  • 支持简体中文、英文、繁体中文、日文
  • 支持编辑器本土化( v2.3.3~ )
  • 支持GitHub Diff语法 ( v1.5.0~ )
  • 支持自定义高亮代码语言类型 ( v2.0.0~ )
  • 支持emoji shortname 渲染emoji ( v2.2.0~ ), 更多详情访问 joypixels
  • 支持扩展语法
    • 支持==Mark==语法高亮行内文本

文档

安装

# npmnpm install for-editor-herb -S# yarnyarn add for-editor-herb

使用

import React, { Component } from 'react'import ReactDOM from 'react-dom'import Editor from 'for-editor-herb'// 引入代码高亮包const Hljs = require('highlight.js')class App extends Component {  constructor() {    super()    this.state = {      value: ''    }  }  componentDidMount() {    // 在componentDidMount生命周期注册你想高亮的语言    Hljs.registerLanguage('css', require('highlight.js/lib/languages/css'))    Hljs.registerLanguage('json', require('highlight.js/lib/languages/json'))    Hljs.registerLanguage('less', require('highlight.js/lib/languages/less'))    Hljs.registerLanguage('scss', require('highlight.js/lib/languages/scss'))    Hljs.registerLanguage('javascript', require('highlight.js/lib/languages/javascript'))    Hljs.registerLanguage('typescript', require('highlight.js/lib/languages/typescript'))    Hljs.registerLanguage('go', require('highlight.js/lib/languages/go'))  }  handleChange(value) {    this.setState({      value    })  }  render() {    const { value } = this.state    // 支持默认语言('en', 'zh-CN', 'zh-TW', 'jp'), 也支持本土化    const customLang: any = {      placeholder: '开始编辑...',      undo: '上一步',      redo: '下一步',      h1: '一级标题',      h2: '二级标题',      h3: '三级标题',      h4: '四级标题',      h5: '五级标题',      h6: '六级标题',      para: '段落',      italic: '斜体',      bold: '粗体',      bolditalic: '斜粗体',      delline: '删除线',      underline: '下划线',      keytext: '键盘文本',      superscript: '上标',      subscript: '下标',      marktag: '高亮标签',      table: '表格',      quote: '引用',      img: '添加图片链接',      link: '链接',      list: '列表',      orderlist: '有序列表',      disorderlist: '无序列表',      checklist: '勾选框列表',      inlinecode: '行内代码',      code: '代码块',      collapse: '折叠块',      katex: 'KaTeX',      save: '保存',      preview: '预览',      singleColumn: '单栏',      doubleColumn: '双栏',      fullscreenOn: '全屏编辑',      fullscreenOff: '退出全屏',      addImgLink: '添加图片链接',      addImg: '上传图片',      toc: '生成大纲'    }    // 传递Hljs.highlightAuto函数    return       <Editor        language={customLang}        value={value}        onChange={() => this.handleChange()}        highlight={Hljs.highlightAuto}      />      }}ReactDOM.render(<App />, document.getElementById('root'))

API

属性

nametypedefaultdescription
valueString-输入框内容
placeholderString开始编辑...占位文本
lineNumBooleantrue是否显示行号
styleObject-编辑器样式
heightString600px编辑器高度
previewBooleanfalse预览模式
expandBooleanfalse全屏模式
subfieldBooleanfalse双栏模式(预览模式激活下有效)
languageString / IWordsen默认语言(支持 zh-CN:中文简体, en:英文, zh-TW: 繁体中文, jp: 日语),支持按照IWords这个interface本土化
toolbarObject如下自定义工具栏
outlineBooleantrue显示Markdown的大纲
highlightFunctionHljs.highlightAutoHljs(highlight.js) 的 highlightAuto函数
anchorBooleantrue是否在预览的标题显示锚点
/*默认工具栏按钮全部开启, 传入自定义对象  例如: {    h1: true, // h1    code: true, // 代码块    preview: true, // 预览  }  此时, 仅仅显示此三个功能键  注:传入空对象则不显示工具栏*/toolbar: {    h1: true,    h2: true,    h3: true,    h4: true,    h5: true,    h6: true,    img: true,    list: true,    para: {      paragraph: true,        // 控制整个部分是否显示      italic: true,      bold: true,      bolditalic: true,      delline: true,      underline: true,      keytext: true,      superscript: true,      subscript: true,      marktag: true    },    table: true,      // 表格    quote: true,      // 引用    link: true,       // 链接    inlinecode: true,  // 行内代码    code: true,       // 代码块    collapse: true,   // 折叠    katex: true,      // katex    preview: true,    // 预览    expand: true,     // 全屏    undo: true,    redo: true,    save: true,    subfield: true,   // 单双栏切换    toc: true         // 生成大纲插入}

Localization

IWords

interface IWords {  placeholder: string  h1: string  h2: string  h3: string  h4: string  h5: string  h6: string  undo: string  redo: string  list: string  orderlist: string  disorderlist: string  checklist: string  para: string  italic: string  bold: string  bolditalic: string  delline: string  underline: string  keytext: string  superscript: string  subscript: string  marktag: string  quote: string  table: string  img: string  link: string  inlinecode: string  code: string  collapse: string  katex: string  save: string  preview: string  singleColumn: string  doubleColumn: string  fullscreenOn: string  fullscreenOff: string  addImgLink: string  addImg: string  toc: string}

事件

nameparamsdefaultdescription
onChangeString: value-内容改变的回调
onSaveString: value-保存时回调
addImgFile: file-添加图片时回调

图片上传

class App extends Component {  constructor() {    super()    this.state = {      value: ''    }    this.$vm = React.createRef()  }  handleChange(value) {    this.setState({      value    })  }  addImg($file) {    this.$vm.current.$img2Url($file.name, 'file_url')    console.log($file)  }  render() {    const { value } = this.state    return (      <Editor        ref={this.$vm}        value={value}        addImg={($file) => this.addImg($file)}        onChange={(value) => this.handleChange(value)}      />    )  }}

快捷键

namedescription
tab两空格缩进
ctrl+s保存
ctrl+z上一步
ctrl+y下一步

更新日志

License

for-editor-herb is MIT License


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
NekoMusic: nekomusic另一个库,之前库有Bug不能用发布时间:2022-03-25
下一篇:
iChat: 聊天机器人开源项目发布时间:2022-03-25
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap