ArticWriter is a ⚡ powerful block-based article editor with an integrated HTML renderer. Write your content with flexible blocks, customize your tools, and render clean HTML — all from a single package.
Flag Section Title as Table of Content option (Spacial)Checkout Demo of articwriter
Editor and Renderer side by side:

Using npm:
# using npm
npm install articwriter
# using yarn
yarn add articwriter
articwriter/
├── editor # The full-featured editor
└── renderer # HTML renderer for the written content
editor → Used to create and manage blocksrenderer → Used to render the saved content📌 The root package does not export anything directly.
import Editor from "articwriter/editor";
const [Component, save] = Editor({
config: {
uploadImage: async (file) => {
return `file_url.png`;
},
},
});
return (
<>
<Component />
<button
onClick={async () => {
const data = await save();
console.log(data);
}}
>
Save
</button>
</>
);
import Renderer from "articwriter/renderer";
const [Component] = Renderer({
// config
});
return <Component blocks={blocks} />;
| Prop | Type | Description |
|---|---|---|
| blocks | List |
Initial blocks data to load in the editor |
| defaultBlock | string |
Default block type (e.g. "paragraph") |
| plugins | List |
Editor plugin which follows the Plugin Rules |
| config | UserConfig |
Config options (see below) |
UserConfig:| Key | Type | Description |
|---|---|---|
| uploadImage | (file: File) => Promise<string> |
Async function to upload images, returning image URL |
| enableTableOfContents | boolean |
Turns on Flag section title as Table of Content |
| blocks | { [type]: { inlineToolbar?: boolean, defaultTag?: string } } |
Add Block based Configurations |
| Prop | Type | Description |
|---|---|---|
| plugins | List |
Renderer plugin which follows the Plugin Rules |
| config | UserConfig |
Config options (see below) |
UserConfig:| Key | Type | Description |
|---|---|---|
| blockName | { className?: string; style?: React.CSSProperties } |
Styles for each block type. Use lowercase names (e.g. paragraph) |
| Block Name | Usage Name (lowercase) |
|---|---|
| Paragraph | paragraph |
| Heading | heading |
| List | list |
| Table | table |
| Divider | divider |
| Code | code |
| Quote | quote |
| Image | image |
| HTMLPreview | html-preview |
MIT License @TheProjectsX