0.2.3-alpha.4 • Published 16 days ago

@matters/matters-editor v0.2.3-alpha.4

Weekly downloads
72
License
MIT
Repository
github
Last release
16 days ago

Matters Editor

Installation

npm i @matters/matters-editor

Development

# dev
npm run dev

# build
npm run build

# test
npm run test

Editor

The editor core, built with TipTap & ProseMirror, using by thematters/matters-web.

import {
  EditorContent,
  useArticleEdtor,
  useCommentEditor,
} from '@matters/matters-editor'

const Editor = () => {
  const editor = useArticleEdtor({
    editable: true,
    placeholder: 'Write your article here...',
    content: '', // initial content
    onUpdate: async ({ editor, transaction }) => {
      const content = editor.getHTML()
      // update({ content })
    },
    // mentionSuggestion, // if you want to enable mention extension
    // extensions: [...], // provides your custom extensions
  })

  return <EditorContent editor={editor} />
}

Transformers

Transformers (using by thematters/matters-server) export below functions:

  • md2html: Convert Markdown to HTML
  • html2md: Convert HTML to Markdown
  • sanitizeHTML: Sanitize HTML
  • normalizeArticleHTML: Normalize article HTML
  • normalizeCommentHTML: Normalize comment HTML
import {
  md2html,
  html2md,
  sanitizeHTML,
  normalizeArticleHTML,
  normalizeCommentHTML,
} from '@matters/matters-editor'

const html = md2html('**hello, world**')
const markdown = html2md(html)

const sanitizedHTML = sanitizeHTML('<script>alert("hello, world")</script>')
const articleHTML = normalizeArticleHTML('<p>hello, world</p>')
const comemntHTML = normalizeCommentHTML('<p>hello, world</p>')

Formats

Below formats are supported to convert between Markdown and HTML:

  • Headings (<h1> to <h6>) <-> # to ######;
  • Bold (<bold>) <-> **;
  • Italic (<em>) <-> _;
  • Strikethrough (<s>) <-> ~~;
  • Underline (<u>) -> **;
  • Code (<code>) <-> `code`;
  • Code Block (<pre>) <-> ```;
  • Blockquote (<blockquote>) <-> >;
  • Line Breaks (<br>) <-> \;
  • Horizontal Line (<hr>) <-> ---;
  • Ordered List (<li>) <-> 1. ABC \n 2. ABC \n 3. ABC;
  • Unordered List (<ul>) <-> * ABC \n * ABC \n * ABC;
  • Link (<a>) <-> [example.com](https://example.com);
  • Image (<img>) <-> ![alt text](https://example.com/a.jpg "title");
  • Figure (<figure>) <-> Raw <figure>;

Examples

Try HTML <=> Markdowns converters in CLI:

  1. Put original HTML file into ./examples/original
  2. Run npm run build:examples
  3. Markdown and HTML (from Markdown) are outputted to ./examples/markdown and .examples/html

Build demo:

npm run demo:transformers

Or try live demo: https://thematters.github.io/matters-editor/transfomers

Benchmark

npm run benchmark

Results are outputted to ./benchmark/results

0.2.3-alpha.4

16 days ago

0.2.3-alpha.3

2 months ago

0.2.3-alpha.2

2 months ago

0.2.3-alpha.1

2 months ago

0.2.3-alpha.0

2 months ago

0.2.2-alpha.1

8 months ago

0.2.1-alpha.0

10 months ago

0.2.1-alpha.1

10 months ago

0.2.1

8 months ago

0.2.2

8 months ago

0.2.0-alpha.56

10 months ago

0.2.0

10 months ago

0.2.0-alpha.49

11 months ago

0.2.0-alpha.48

11 months ago

0.2.0-alpha.47

11 months ago

0.2.0-alpha.46

12 months ago

0.2.0-alpha.45

12 months ago

0.2.0-alpha.44

12 months ago

0.2.0-alpha.43

12 months ago

0.2.0-alpha.42

12 months ago

0.2.0-alpha.41

12 months ago

0.2.0-alpha.40

12 months ago

0.2.0-alpha.55

11 months ago

0.2.0-alpha.54

11 months ago

0.2.0-alpha.53

11 months ago

0.2.0-alpha.52

11 months ago

0.2.0-alpha.51

11 months ago

0.2.0-alpha.50

11 months ago

0.1.29-alpha.0

12 months ago

0.1.28

12 months ago

0.2.0-alpha.39

12 months ago

0.2.0-alpha.38

12 months ago

0.2.0-alpha.37

12 months ago

0.2.0-alpha.36

12 months ago

0.2.0-alpha.35

12 months ago

0.2.0-alpha.34

12 months ago

0.2.0-alpha.33

1 year ago

0.2.0-alpha.32

1 year ago

0.2.0-alpha.19

1 year ago

0.2.0-alpha.18

1 year ago

0.2.0-alpha.17

1 year ago

0.2.0-alpha.16

1 year ago

0.2.0-alpha.15

1 year ago

0.2.0-alpha.14

1 year ago

0.2.0-alpha.12

1 year ago

0.2.0-alpha.11

1 year ago

0.2.0-alpha.10

1 year ago

0.2.0-alpha.29

1 year ago

0.2.0-alpha.28

1 year ago

0.2.0-alpha.27

1 year ago

0.2.0-alpha.26

1 year ago

0.2.0-alpha.25

1 year ago

0.2.0-alpha.24

1 year ago

0.2.0-alpha.23

1 year ago

0.2.0-alpha.22

1 year ago

0.2.0-alpha.8

1 year ago

0.2.0-alpha.21

1 year ago

0.2.0-alpha.7

1 year ago

0.2.0-alpha.20

1 year ago

0.2.0-alpha.9

1 year ago

0.2.0-alpha.2

1 year ago

0.2.0-alpha.1

1 year ago

0.2.0-alpha.4

1 year ago

0.2.0-alpha.3

1 year ago

0.2.0-alpha.6

1 year ago

0.2.0-alpha.5

1 year ago

0.2.0-alpha.31

1 year ago

0.2.0-alpha.30

1 year ago

0.1.27-alpha.0

1 year ago

0.1.27-alpha.3

1 year ago

0.1.27-alpha.1

1 year ago

0.1.27-alpha.2

1 year ago

0.1.25

2 years ago

0.1.26

2 years ago

0.1.23

3 years ago

0.1.24

3 years ago

0.1.22

3 years ago

0.1.21

3 years ago

0.1.20

3 years ago

0.1.19

3 years ago

0.1.18

3 years ago

0.1.17

3 years ago

0.1.16

4 years ago

0.1.15

4 years ago

0.1.14

4 years ago

0.1.13

4 years ago

0.1.12

4 years ago

0.1.11

4 years ago

0.1.10

4 years ago

0.1.9

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago