Package Exports
Readme
Markdown Rendering Simplified
Table of Contents
Features
- Takes the complexity of Remark and makes it easy to use.
- Up and Rendering in seconds with a simple API.
- Generates a Table of Contents for your markdown files (remark-toc).
- Slug generation for your markdown files (rehype-slug).
- Code Highlighting (rehype-highlight).
- Markdown to HTML (rehype-stringify).
- Github Flavor Markdown (remark-gfm).
- Emoji Support (remark-emoji).
- Generation of Keywords, Descriptions, and Translations using AI.
Getting Started
1. Install Writr
> npm install writr
2. Render from Markdown
import { Writr } from 'writr';
const writr = new Writr();
const markdown = `# Hello World ::-):\n\n This is a test.`;
const html = await writr.render(markdown); // <h1>Hello World 🙂</h1><p>This is a test.</p>
Its just that simple. Want to add some options? No problem.
import { Writr } from 'writr';
const writr = new Writr();
const markdown = `# Hello World ::-):\n\n This is a test.`;
const options = {
emoji: false
}
const html = await writr.render(markdown, options); // <h1>Hello World ::-):</h1><p>This is a test.</p>
Want to render to a translation? No problem.
import { Writr } from 'writr';
const writr = new Writr({ openai: 'your-api-key'});
const markdown = `# Hello World ::-):\n\n This is a test.`;
const langCode = 'es';
const html = await writr.renderTranslation(markdown, langCode, options); // <h1>Hola Mundo 🙂</h1><p>Esta es una prueba.</p>
How about generating keywords and descriptions for your front matter?
import { Writr } from 'writr';
const writr = new Writr({ openai: 'your-api-key'});
const markdown = `# Hello World ::-):\n\n This is a test.`;
const keywords = await writr.keywords(markdown); // ['Hello World', 'Test']
const description = await writr.description(markdown); // 'Hello World Test'
API
new Writr(options?: WritrOptions)
interface WritrOptions {
openai?: string; // openai api key (default: undefined)
emoji?: boolean; // emoji support (default: true)
toc?: boolean; // table of contents generation (default: true)
slug?: boolean; // slug generation (default: true)
highlight?: boolean; // code highlighting (default: true)
gfm?: boolean; // github flavor markdown (default: true)
}
You can access the WritrOptions
from the instance of Writr.
import { Writr, WritrOptions } from 'writr';
.options
Accessing the default options for this instance of Writr.
.render(markdown: string, options?: RenderOptions): Promise<string>
Rendering markdown to HTML. the options are based on RenderOptions. Which you can access from the Writr instance.
import { Writr, RenderOptions } from 'writr';
## `RenderOptions`
```js
interface RenderOptions {
emoji?: boolean; // emoji support
toc?: boolean; // table of contents generation
slug?: boolean; // slug generation
highlight?: boolean; // code highlighting
gfm?: boolean; // github flavor markdown
}
.renderTranslation(markdown: string, langCode: string, options?: RenderOptions): Promise<string>
Rendering markdown to HTML. the options are based on RenderOptions. Which you can access from the Writr instance.
.keywords(markdown: string): Promise<string[]>
AI Generation of Keywords that can be used for SEO on your HTML.
.description(markdown: string): Promise<string>
AI Generation of a Description that can be used for SEO on your HTML.
Code of Conduct and Contributing
Code of Conduct and Contributing guidelines.
License
MIT © Jared Wray