Skip to content

allanShady/vue-notion

Repository files navigation

vue-notion

An unofficial Notion renderer

Package version Compressed size MIT license Follow on Twitter


A Vue renderer for Notion pages. Use Notion as CMS for your blog, documentation or personal site.

vue-notion was ported to Vue from react-notion (developed by Splitbee 🐝 – a fast, reliable, free, and modern analytics for any team)

This package doesn't handle the communication with the API. Check out notion-api-worker from Splitbee for an easy solution.

Created by Jannik Siebert

Features

🎯 Accurate – Results are almost identical

🎨 Custom Styles – Styles are easily adaptable. Optional styles included

🌎 SSR / Static Generation Support – Functions to work with Nuxt and other frameworks

Install

npm install vue-notion

How To

Demo

Check out the demo ✨

Docs

The full NotionRenderer API specification is available at docs/API.md.

Minimal Example

We can store the API response in a .json file and import it.

<template> <NotionRenderer :blockMap="blockMap" /> </template> <script> import { NotionRenderer } from "vue-notion"; import response from "./load-page-chunk-response.json"; // https://www.notion.so/api/v3/loadPageChunk const blockMap = response.recordMap.block;  export default {  components: {  NotionRenderer,  },  data() {  return { blockMap };  }, }; </script>

A working example using Nuxt can be found inside the example directory.

Roadmap

Add issues, request features and upvote block types that you want to see next!

Sites using vue-notion

List of pages that are using this library.

  • StorePreviewer
  • ...if you're using vue-notion, we'd be happy to feature you here

Supported Blocks

Most common block types are supported. We happily accept pull requests to add support for the missing blocks.

Block Type Supported Notes
Text ✅ Yes
Heading ✅ Yes
Image ✅ Yes
Image Caption ✅ Yes
Bulleted List ✅ Yes
Numbered List ✅ Yes
Quote ✅ Yes
Callout ✅ Yes
Column ✅ Yes
iframe ✅ Yes
Video ✅ Yes Only embedded videos
Divider ✅ Yes
Link ✅ Yes
Code ✅ Partially Highlighting coming soon
Web Bookmark ✅ Soon
Toggle List ✅ Yes
Page Links ✅ Yes
Header ✅ Yes Enable with fullPage
Databases ❌ Not planned
Checkbox ❌ Not planned
Table Of Contents ❌ Not planned

Please, feel free to open an issue if you notice any missing blocks or anything wrong with existing blocks.

Credits

About

A fast Vue renderer for Notion pages

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Vue 51.6%
  • CSS 24.3%
  • JavaScript 23.7%
  • Shell 0.4%