🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

notion-blocks-to-markdown

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

notion-blocks-to-markdown

> Converts Notion `BlockObjectResponse[]` or `RichTextItemResponse[]` to markdown.

0.8.0
latest
70

Supply Chain Security

100

Vulnerability

89

Quality

77

Maintenance

100

License

Version published
Weekly downloads
5
-28.57%
Maintainers
1
Weekly downloads
 
Created

notion-blocks-to-markdown

Converts Notion BlockObjectResponse[] or RichTextItemResponse[] to markdown.

In contrast to notion-to-md, this package does not automatically fetch unresolved children. Fetcing blocks from Notion is left to the user, and if some blocks have unresolved contents, a message will be displayed instead.

Usage

import { Client as NotionClient } from "@notionhq/client";
import {
  notionBlocksToMarkdown,
  notionRichTextItemsToMarkdown,
} from "notion-blocks-to-markdown";

const notionClient = new NotionClient({
  auth: process.env.NOTION_API_KEY,
});

const response = await notionClient.blocks.children.list({
  block_id: args.block_id,
});

const markdown = notionBlocksToMarkdown(blocks, {
  headingStartingLevel: 2,
  cleanOutput: true,
  noHtml: false,
});

const markdown = notionRichTextItemsToMarkdown(blocks[0].heading_1.rich_text, {
  noHtml: false,
});

Supported block types

Here is a list of the supported block types at this point, feel free to open a PR if you'd like to expand this list.

Block typeSupport
heading_1
heading_2
heading_3
paragraph
bulleted_list_item
numbered_list_item
table_row
quote
to_do
toggle
equation
code
callout
divider
breadcrumb
table_of_contents
image✅ Only if image.type === "external"
video✅ Only if video.type === "external"

... there are a lot more types, but not all of them makes sense to convert to markdown.

Colors

Coloring the text in notion will result in a <span className="blue" />. So you'll have to write some CSS in order to get the colors you want. If you don't want this, you can use the noHtml: true option.

Notes

Fetching the BlockObjectResponse[] is left to the user of this package. If a BlockObjectResponse with has_children === true, a simple string...

"Block has unresolved children"

...will show up in markdown. You can hide these warnings using the cleanOutput: true option.

FAQs

Package last updated on 08 Apr 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts