Home

Awesome

Heading Tool with anchor

Version of EditorJS that the plugin is compatible with

Provides Headings Blocks with the ability to set an anchor text for the Editor.js. Forked by Header Tool

Screenshot

header-with-anchor

Installation

Install via NPM

Get the package

npm i --save editorjs-header-with-anchor

Include module at your application

const Header = require('editorjs-header-with-anchor');

Download to your project's source dir

  1. Upload folder dist from repository
  2. Add dist/bundle.js file to your page.

Usage

Add a new Tool to the tools property of the Editor.js initial config.

var editor = EditorJS({
  ...

  tools: {
    ...
    header: Header,
  },

  ...
});

Available characters: all Latin letters, digitals, dash, and underscore.

In the cyrToLat branch, you can find additional functionality: Cyrillic characters are replaced by Latin letters, for example, ш to sch.

In the maxLength branch, you can find additional functionality: If you want to set the maximum length of the header text, you need to set the checkHeaderLength parameter to TRUE in the config.

In the cyrToLat_with_maxLength branch, you can find additional features from branches cyrToLat and maxLength at the same time.

P.S. The anchor value is displayed next to the header block only when there is text in the header block.

Shortcut

You can insert this Block by a useful shortcut. Set it up with the tools[].shortcut property of the Editor's initial config.

var editor = EditorJS({
  ...

  tools: {
    ...
    header: {
      class: Header,
      shortcut: 'CMD+SHIFT+H',
    },
  },

  ...
});

Config Params

All properties are optional.

FieldTypeDescription
placeholderstringheader's placeholder string
levelsnumber[]enabled heading levels
defaultLevelnumberdefault heading level
allowAnchorbooleanAnchor enabling (default: true)
anchorLengthnumberAnchor length (default: 50)
var editor = EditorJS({
  ...

  tools: {
    ...
    header: {
      class: Header,
      config: {
        placeholder: 'Enter a header',
        levels: [2, 3, 4],
        defaultLevel: 3,
        allowAnchor: true,
        anchorLength: 100,
      }
    }
  }

  ...
});

Output data

FieldTypeDescription
textstringheader's text
levelnumberlevel of header: 1 for H1, 2 for H2 ... 6 for H6
anchorstringanchor's text
{
  "type": "header",
  "data": {
    "text": "Why Telegram is the best messenger",
    "level": 2,
    "anchor": "Anchor"
  }
}