for-editor-herb
Markdown editor for React, support Tex rendering!
About Versions
About Version Number
x.x.x
---> Incompatible Update
. New Features(include Fixing Known Bugs)
. Fix Bugs
A branch of for-editor! Beacuse of long time without refreshing, without PR handler. Hug to Open Source! If you like this, please give a star to for-editor
Base on
0.3.5
What's New
- Toolbar button: quote/paragraph/table/inline code/collapse/katex/list
- Support to render
Tex
Block and InlineTex
sentences - Responsive Layout
- Support Preview Outline for jumping appointed anchor
- Generate TOC
- Support Simplified Chinese, Traditional Chinese, English, Japanese
- Support localization ( v2.3.3~ )
- Support GitHub Diff Syntax ( v1.5.0~ )
- Support to highlight the programming language which you want ( v2.0.0~ )
- Support to render
emoji
byemoji shortname
( v2.2.0~ ), visit joypixels for more information - Support markdown Expanded Syntax
- use
==Mark==
to highlight (mark) the inline text ( v2.3.0~ )
- use
Documents
Install
# npm npm install for-editor-herb -S# yarn yarn add for-editor-herb
Use
// require `highlight.js` packageconst Hljs = { super thisstate = value: '' } { // register languages in componentDidMount lifecycle Hljs Hljs Hljs Hljs Hljs Hljs Hljs } { this } { const value = thisstate // Support default language('en', 'zh-CN', 'zh-TW', 'jp') and localization const customLang: any = placeholder: "Begin editing..." undo: "Undo" redo: "Redo" h1: "Header 1" h2: "Header 2" h3: "Header 3" h4: "Header 4" h5: "Header 5" h6: "Header 6" img: "Image Link" para: "Paragraphy" italic: "Italic" bold: "Bold" bolditalic: "Bold Italic" delline: "Delete Line" underline: "Underline" keytext: "Keyboard Text" superscript: "Superscript" subscript: "Subscript" marktag: "Mark Tag" table: "Table" quote: "Quote" link: "Link" list: "List" orderlist: "Order List" disorderlist: "Disorder List" checklist: "Check List" inlinecode: "Inline Code" code: "Code" collapse: "Collapse" katex: "KaTeX" save: "Save" preview: "Preview" singleColumn: "Single Column" doubleColumn: "Double Columns" fullscreenOn: "FullScreen ON" fullscreenOff: "FullScreen OFF" addImgLink: "Add Image Link" addImg: "Upload Image" toc: "Generate TOC" } // Transfer function `Hljs.highlightAuto` to the Editor return <Editor value=value onChange= this highlight=HljshighlightAuto /> } ReactDOM
Api
props
name | type | default | description |
---|---|---|---|
value | String | - | value |
language | String / IWords | en | Default Language(zh-CN: Simplified Chinese, en: English, zh-TW: Traditional Chinese, jp: Japanese), support localization by following the interface IWords |
placeholder | String | Begin editing... | The default prompt text when the textarea is empty |
lineNum | Boolean | true | Show lineNum |
style | Object | - | editor styles |
height | String | 600px | editor height |
preview | Boolean | false | preview switch |
expand | Boolean | false | fullscreen switch |
subfield | Boolean | false | true: Double columns - Edit preview same screen(notice: preview: true), Single Columns - otherwise not |
toolbar | Object | As in the following example | toolbars |
outline | Boolean | true | Display outline list for markdown |
highlight | Function | Hljs.highlightAuto | Hljs (highlight.js)'s function --- highlightAuto |
anchor | Boolean | true | Control if the anchor is displayed at the preview |
/* The default toolbar properties are all true, You can customize the object to cover them. eg: { h1: true, code: true, preview: true, } At this point, the toolbar only displays the three function keys. notice: Toolbar will be hidden when empty object. */ toolbar: h1: true h2: true h3: true h4: true h5: true h6: true img: true list: true para: paragraph: true // control the whole part if you don't want to display 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 preview: true expand: true undo: true redo: true save: true subfield: true toc: true // generate TOC
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
events
name | params | default | description |
---|---|---|---|
onChange | String: value | - | Edit area change callback event |
onSave | String: value | - | Ctrl+s and click save button callback event |
addImg | File: file | - | upload image callback event |
upload image
{ super thisstate = value: '' this$vm = React } { this } { this$vmcurrent console } { const value = thisstate return <Editor ref=this$vm value=value addImg= this onChange= this /> }
hot key
name | description |
---|---|
tab | two space |
ctrl+s | save |
ctrl+z | undo |
ctrl+y | redo |
Update
Licence
for-editor is MIT Licence.