
Security News
Open Source CAI Framework Handles Pen Testing Tasks up to 3,600× Faster Than Humans
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
notion-block-renderer
Advanced tools
v2.0.x ~:
isNextJS
of main props was removed.
v2.3.x ~: Added new block type
table_of_contents
.
This package is suitable for use with Reactjs or Nextjs. Notion blocks are rendered into React components. That component has a CSS class name corresponding to the block type.
I'm a programmer (@takumafujimoto). I first created this feature for myself. Later, I thought it would be useful for everyone, so I made it public.
This package compatible to the 2022-02-22
and 2022-06-28
version of Notion API.
Notion API version: https://developers.notion.com/reference/changes-by-version
npm install notion-block-renderer
or
yarn add notion-block-renderer
import NotionBlocks from "notion-block-renderer";
const Sample = ({ blocks }) => {
return (
<div>
<NotionBlocks
blocks={blocks}
/>
</div>
);
}
You have to pass blocks
.
blocks
is result of a response object as follows:
const { results: blocks } = await notion.blocks.children.list({ block_id: id });
For more detail, see the Notion docs.
https://developers.notion.com/reference/get-block-children
Block Type |
---|
paragraph |
heading_1 |
heading_2 |
heading_3 |
bulleted_list_item |
numbered_list_item |
quote |
callout |
code |
image |
video |
table_of_contents |
By default, code blocks are unstyled. The option isCodeHighlighter
can be used to easily set the style.
This package defaults to react-syntax-highlighter when isCodeHighlighter
is true
. Use.
const Sample = ({ blocks }) => {
return (
<div>
<NotionBlocks
blocks={blocks}
isCodeHighlighter={true}
/>
</div>
);
}
You can also set custom style CSS for the syntaxHighlighterCSS
option.
You can choose to provide
Only Highlight.js of
react-syntax-highlighter
(not Prism.js) is supported at this time. So please use to import from"react-syntax-highlighter/dist/cjs/styles/hljs"
. See: https://react-syntax-highlighter.github.io/react-syntax-highlighter/demo/
First you need to install react-syntax-highlighter
.
https://www.npmjs.com/package/react-syntax-highlighter
Then import styles to use.
import {
monokaiSublime,
irBlack,
tomorrowNightBright,
monokai,
} from "react-syntax-highlighter/dist/cjs/styles/hljs";
const Sample = ({ blocks }) => {
return (
<div>
<NotionBlocks
blocks={blocks}
isCodeHighlighter={true}
syntaxHighlighterCSS={monokaiSublime}
/>
</div>
);
}
syntaxHighlighterCSS
has the following type.
{
[key: string]: React.CSSProperties;
}
Unstyled:
Styled:
https://github.com/takux/notion-block-renderer/tree/main/example/styles/tailwindcss-sample.css
The NotionBlocks
component has several props.
Prop name | Description | Default value | Example values |
---|---|---|---|
blocks | Notion api blocks. See Notion docs. | (None) | --- |
prefix | Add prefix to className of each html component. | "nbr" | --- |
blockPrefix | Add prefix to className of each block html component. | "block" | --- |
blocksPrefix | Add prefix to className of blocks html component. | "blocks" | --- |
isCodeHighlighter | Code block's style. If true, code blocks are styled by CSS. | false | true |
syntaxHighlighterCSS | If isCodeHighlighter is true, you can change style to your own CSS. Using react-syntax-highlighter's styled CSS is easy way. | tomorrowNightBright | monokaiSublime |
The props type for blocks
is as follows. This is just a reference code. See currect type: types.ts.
type BlocksProps = {
blocks: BlockType[];
prefix?: string;
blockPrefix?: string;
blocksPrefix?: string;
isCodeHighlighter?: boolean;
syntaxHighlighterCSS?: {
[key: string]: React.CSSProperties;
};
};
The
BlockType
is our original declarative type. The best way may refer to @notionhq/client's type. Replacing code would be taking time. So please contribute if you can.
FAQs
Notion Block to React Components.
The npm package notion-block-renderer receives a total of 155 weekly downloads. As such, notion-block-renderer popularity was classified as not popular.
We found that notion-block-renderer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.