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
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();