The headless rich text editor framework for web artisans.
Go to file
Philipp Kühn 24428681bf rename class
2018-08-23 23:09:45 +02:00
build remove tiptap-models 2018-08-23 22:44:47 +02:00
examples rename default route 2018-08-23 23:05:53 +02:00
packages rename class 2018-08-23 23:09:45 +02:00
.eslintrc.js initial commit 2018-08-20 23:02:21 +02:00
.gitignore remove docs from gitignore 2018-08-23 11:36:14 +02:00
CONTRIBUTING.md Create CONTRIBUTING.md 2018-08-21 10:12:56 +02:00
lerna.json use independent mode of lerna 2018-08-23 17:24:40 +02:00
LICENSE.md Rename LICENSE to LICENSE.md 2018-08-21 10:14:37 +02:00
package.json add lerna 2018-08-23 13:38:01 +02:00
README.md add some information about extensions to readme 2018-08-23 23:02:28 +02:00
yarn.lock add lerna 2018-08-23 13:38:01 +02:00

tiptap

A rich-text editor for Vue.js

Downloads Version License

Installation

npm install tiptap

Basic Setup

<template>
  <editor>
    <!-- Add HTML to the scoped slot called "content" -->
    <div slot="content" slot-scope="props">
      <p>Hi, I'm just a boring paragraph</p>
    </div>
  </editor>
</template>

<script>
// Import the editor
import { Editor } from 'tiptap'

export default {
  components: {
    Editor,
  },
}
</script>

Editor Properties

Property Type Default Description
editable Boolean true When set to false the editor is read-only.
doc Object null The editor state object used by Prosemirror. You can also pass HTML to the content slot. When used both, the content slot will be ignored.
extensions Array [] A list of extensions used, by the editor. This can be Nodes, Marks or Plugins.
@update Function undefined This will return the current state of Prosemirror on every change.

Extensions

By default the editor will only support some boring paragraphs. Other nodes and marks are available as extensions. There is a package called tiptap-extensions with the most basic nodes, marks and plugins.

Available Extensions

<template>
  <editor :extensions="extensions">
    <div slot="content" slot-scope="props">
      <h1>Yay Headlines!</h1>
      <p>All these <strong>cool tags</strong> are working now.</p>
    </div>
  </editor>
</template>

<script>
// Import the editor
import { Editor } from 'tiptap'
import {
  Blockquote,
  BulletList,
  CodeBlock,
  HardBreak,
  Heading,
  ListItem,
  OrderedList,
  TodoItem,
  TodoList,
  Bold,
  Code,
  Italic,
  Link,
} from 'tiptap-extensions'

export default {
  components: {
    Editor,
  },
  data() {
    return {
      extensions: [
        new Blockquote(),
        new BulletList(),
        new CodeBlock(),
        new HardBreak(),
        new Heading(),
        new ListItem(),
        new OrderedList(),
        new TodoItem(),
        new TodoList(),
        new Bold(),
        new Code(),
        new Italic(),
        new Link(),
      ],
    }
  },
}
</script>

Create Custom Extensions

Soon … Until then you can take a look at the embed example.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.