@creaditor/text-api
v1.0.8
Published
text-api is a simple text editor API built for Developers.
Downloads
12
Maintainers
Readme
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();