Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
notion-viewer-client
Advanced tools
Readme
Since notion api doesn't support CORS and don't recommend making API calls from a webpage (see here), you may need to install laravel-notion-viewer composer package in order to get notion blocks from Notion Api.
But you can also use your own server to get the blocks from Notion Api and pass the blocks to the Renderer
class in
your client.
Install via npm
npm install notion-viewer-client
NotionViewer.render(id: string, element: HTMLElement, endPoint?: string)
Using axios
, XHR request will be sent to endPoint
to get the blocks from Notion Api and then render the blocks
in element
.
By default, the endPoint
is /laravel-notion-viewer/data/{id}
which is a route offered
by laravel-notion-viewer.
You can specify your own endpoint to get the blocks from your own server.
import NotionViewer from 'notion-viewer-client';
let notionPageId = 'this-is-a-notion-page-id'; // If you don't know how to get id, see https://github.com/w99910/laravel-notion-viewer/README.md#how-to-get-notion-page-id
document.addEventListener('DOMContentLoaded', async () => {
await NotionViewer.render(notionPageId, document.querySelector('#index'))
});
By specifying the endPoint
:
await NotionViewer.render(notionPageId, document.querySelector('#index'), 'your-end-point')
You can also parse blocks on your own using Renderer
class.
import Renderer from "notion-viewer-client/Renderer";
Renderer.renderPage(page, blocks, element)
import Renderer from "notion-viewer-client/Renderer";
let output = Renderer.parseBlocks(blocks)
console.log(output);
import Renderer from "notion-viewer-client/Renderer";
let output = Renderer.parseRichText(richText);
console.log(output);
import Renderer from "notion-viewer-client/Renderer";
let renderer = Renderer.getRenderer(block);
import Renderer from "notion-viewer-client/Renderer";
Renderer.onBeforeRender((renderer) => {
console.log('Called before render');
})
import Renderer from "notion-viewer-client/Renderer";
Renderer.onAfterRender((renderer) => {
console.log('Called after render');
})
The following are the block types supported by this package for now:
import Renderable from 'notion-viewer-client/interfaces/Renderable';
class YourCustomRenderer implements Renderable {
render(block: Block, level?: number, containerElement?: HTMLElement): string {
// Your code here
}
type() {
return 'your_block_type';
}
// optional event hooks
beforeRender(containerElement?: HTMLElement) {
};
afterRender(containerElement?: HTMLElement) {
};
}
import Renderer from "notion-viewer-client/Renderer";
Renderer.addRenderer(new YourCustomRenderer())
import Renderer from "notion-viewer-client/Renderer";
Renderer.removeRenderer('block_type')
import Renderer from "notion-viewer-client/Renderer";
// Replacing renderers with your custom renders
Renderer.setRenderers([
new YourCustomRenderer(),
new YourAnotherCustomRenderer()
])
// Removing all renderers
Renderer.setRenderers([]);
If you want to support me, buy me a coffee via Binance.
FAQs
A simple and easy to use package for rendering notion pages in your application.
The npm package notion-viewer-client receives a total of 0 weekly downloads. As such, notion-viewer-client popularity was classified as not popular.
We found that notion-viewer-client demonstrated a healthy version release cadence and project activity because the last version was released less than 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
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.