@creaditor/text-api

1.0.8 • Public • Published

TextAPI

TextAPI.js is A completely customizable for building rich text editors in the browser.

Keep the following in mind

  • TextAPI.js is an abstraction, please know that there is no UI.
  • Undo/Redo will come in the future

DEMO

try me

API Overview

Install

npm i @creaditor/text-api --save

Include the module in your application

import TextAPI from "@creaditor/text-api";

TextAPI provides two working modes

Mode Description
Toggle Style elements with on/off functionality, like bold,underline,italic
Extend Only extends the currect style, font-size, color, backgorund

Basic Usage

Toggle

import TextAPI from '@creaditor/text-api';
const textAPI = new TextAPI("editor-id");
1cont MODES = textAPI.MODES;

const underline =()=> textAPI.execCmd('text-decoration', 'underline', Modes.Toggle);
const bold =()=> textAPI.execCmd('font-weight', 'bold', MODES.Toggle);

Extend

import TextAPI from '@creaditor/text-api';
const textAPI = new TextAPI("editor-id");
cont MODES = textAPI.MODES;

const changeColor =(color)=> textAPI.execCmd('color', color, MODES.Extend);
const changeSize =(size)=> textAPI.execCmd('font-size', size, MODES.Extend);

With Options

The textAlign, padding, margin, line-height and more property sets the horizontal alignment of text in a block level element. It must be used on a block level element (p, div, etc.)

import TextAPI from "@creaditor/text-api";
const textAPI = new TextAPI("editor-id");
const MODES = textAPI.MODES;

const changeAlign = (align) =>
  textAPI.execCmd("text-align", align, MODES.Extend, {
    target: "block",
  });

Inspector

import TextAPI from "@creaditor/text-api";
const textAPI = new TextAPI("editor-id");

textAPI.on("inspect", (collectedStyles) => {
  // do something with the styles..
});

Format Block

Adds an HTML block-level element around the line containing the current selection.

Tags

Tag Name
H1
H2
H3
H4
H5
H6
P
PRE
ADDRESS

How to use

import TextAPI from "@creaditor/text-api";
const textAPI = new TextAPI("editor-id");

const toggleClass = (tagName) => textAPI.formatBlock(tagName);

Style with Tags (toggle mode)

Tag Name
B
STRONG
MARK
EM
I
S
STRIKE
DEL
U
SUB
SUP
SMALL
SUB

How to use

import TextAPI from "@creaditor/text-api";
const textAPI = new TextAPI("editor-id");

textAPI.toggleWith("strong");

Css Class API

The Css Class API lets you create a Css class with your pre-made rules. You can pass this class to a TextAPI object and use it as a markup just like underline or bold.

How to use

import TextAPI from "@creaditor/text-api";
const textAPI = new TextAPI("editor-id");

const toggleClass = (name) => textAPI.toggleClass(name);

Links

How to use

import TextAPI from '@creaditor/text-api';
const textAPI = new TextAPI("editor-id");

const createLink = () => textAPI.link({
href:'textAPI.com',
protocol:'https'
target:'_blank'
});

Links Inspector

import TextAPI from "@creaditor/text-api";
const textAPI = new TextAPI("editor-id");

textAPI.on("inspectLink", (props) => {
  // {href,protocl,target,element}
});

Save Function

import TextAPI from "@creaditor/text-api";
const textAPI = new TextAPI("editor-id");

const contentAsJson = textAPI.save();

Load Function

import TextAPI from "@creaditor/text-api";
const textAPI = new TextAPI("editor-id");

textAPI.load(contentAsJson);

Destroy

Will remove all TextAPI functionality.

import TextAPI from "@creaditor/text-api";
const textAPI = new TextAPI("editor-id");

textAPI.destroy();

text-api

Package Sidebar

Install

npm i @creaditor/text-api

Weekly Downloads

1

Version

1.0.8

License

MIT

Unpacked Size

614 kB

Total Files

9

Last publish

Collaborators

  • creaditor