├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .vscode └── extensions.json ├── LICENSE ├── README.md ├── assets └── vue3-notion.png ├── demo ├── nuxt │ ├── app.vue │ ├── composables │ │ └── useProps.ts │ ├── nuxt.config.ts │ ├── package.json │ ├── pages │ │ ├── index.vue │ │ └── page │ │ │ └── [id].vue │ ├── pnpm-lock.yaml │ ├── public │ │ └── logo.png │ ├── server │ │ └── api │ │ │ └── page │ │ │ └── [pageId].ts │ └── tsconfig.json └── vue │ ├── .gitignore │ ├── .vscode │ └── extensions.json │ ├── README.md │ ├── index.html │ ├── package.json │ ├── pnpm-lock.yaml │ ├── public │ └── favicon.ico │ ├── src │ ├── App.vue │ ├── assets │ │ └── logo.png │ ├── components │ │ └── HelloWorld.vue │ ├── main.ts │ ├── router │ │ └── index.ts │ └── view │ │ ├── Index.vue │ │ └── Page.vue │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── env.d.ts ├── nuxt ├── index.ts └── plugin.ts ├── package.json ├── playground ├── App.vue ├── assets │ └── logo.png ├── index.html ├── main.ts ├── public │ └── favicon.ico ├── router │ └── index.ts ├── tsconfig.json ├── view │ ├── Index.vue │ └── Page.vue └── vite.config.ts ├── pnpm-lock.yaml ├── scripts └── postpublish.sh ├── src ├── blocks │ ├── bookmark.vue │ ├── callout.vue │ ├── code.vue │ ├── column.vue │ ├── decorator.vue │ ├── equation.vue │ ├── header.vue │ ├── helpers │ │ ├── asset.vue │ │ ├── column-spacer.vue │ │ ├── default-page-icon.vue │ │ ├── figure.vue │ │ ├── google-drive.vue │ │ ├── header-renderer.vue │ │ ├── image.vue │ │ ├── katex.vue │ │ ├── nested-list.vue │ │ ├── page-header.vue │ │ ├── page-icon.vue │ │ ├── prism.ts │ │ ├── prism.vue │ │ ├── table-of-contents-item.vue │ │ ├── text-renderer.vue │ │ └── tweet.ts │ ├── list.vue │ ├── page.vue │ ├── quote.vue │ ├── sync-block.vue │ ├── sync-pointer-block.vue │ ├── table-of-contents.vue │ ├── table-row.vue │ ├── table.vue │ ├── text.vue │ ├── todo.vue │ ├── toggle.vue │ └── tweet.vue ├── components │ ├── block.vue │ ├── index.ts │ └── notion-renderer.vue ├── index.ts ├── lib │ ├── api.ts │ ├── blockable.ts │ ├── composables.ts │ ├── constant.ts │ ├── props.ts │ ├── types.ts │ └── utils.ts └── style.css ├── tsconfig.json └── vite.config.ts /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.log 6 | *.local 7 | .nuxt 8 | .output 9 | .env 10 | .log 11 | .vercel 12 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 zernonia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | vue3-notion 3 |

An unofficial Notion renderer (Vue 3) version

4 |
5 | 6 |

7 | Features 8 | · 9 | Install 10 | · 11 | Examples 12 | · 13 | Credits 14 |

15 | 16 |

17 | 18 | Package version 19 | 20 | 21 | MIT license 22 | 23 | 24 | Follow on Twitter 25 | 26 |

27 | 28 | --- 29 | 30 | A **Vue 3** renderer for Notion pages (ported from [vue-notion](https://github.com/janniks/vue-notion)). Special thanks to [Jannik Siebert](https://twitter.com/jnnksbrt) & all the `vue-notion` contributors that made the `vue-notion` possible! 31 | 32 | Use **Notion as CMS** for your blog, documentation or personal site. 33 | Also check out [react-notion](https://github.com/splitbee/react-notion) (developed by [Splitbee 🐝](https://splitbee.io/) – a fast, reliable, free, and modern analytics for any team) 34 | 35 | This package doesn't handle the communication with the API (I planned to add this!). Check out [notion-api-worker](https://github.com/splitbee/notion-api-worker) from [Splitbee](https://splitbee.io/) for an easy solution. 36 | 37 | Created by Zernonia 38 | 39 | ## Features 40 | 41 | 🌎 **SSR / Static Generation Support** – Functions to work with [**Nuxt3**](https://v3.nuxtjs.org/) and other frameworks 42 | 43 | 🎯 **Accurate** – Results are _almost_ identical 44 | 45 | 🎨 **Custom Styles** – Styles are easily adaptable. Optional styles included 46 | 47 | 🔮 **Syntax-Highlighting** – Beautiful themeable code highlighting using Prism.js 48 | 49 | ## Install 50 | 51 | ### Vue 3 52 | 53 | ```bash 54 | npm install vue3-notion 55 | # yarn add vue3-notion 56 | ``` 57 | 58 | ### Nuxt3 Module 59 | 60 | Install as a dev-dependency and add `"vue3-notion/nuxt"` to the `buildModules` array in `nuxt.config.js`. 61 | 62 | ```bash 63 | npm install vue3-notion --save-dev 64 | ``` 65 | 66 | ```ts 67 | // nuxt.config.ts 68 | import { defineNuxtConfig } from "nuxt3" 69 | 70 | export default defineNuxtConfig({ 71 | //... 72 | modules: [ 73 | ["vue3-notion/nuxt", { css: true }], // css is not imported by default. Set `true` to import css 74 | ], 75 | }) 76 | ``` 77 | 78 | ## Examples 79 | 80 | These examples use a simple wrapper around the [`notion-api-worker`](https://github.com/splitbee/notion-api-worker) to access the Notion page data. 81 | It is also possible to store a page received from the Notion API in `.json` and use it without the `async/await` part. 82 | 83 | > Use the `getPageBlocks` and `getPageTable` methods with caution! 84 | > They are based on the private Notion API. 85 | > We can NOT guarantee that it will stay stable. 86 | > The private API is warpped by [notion-api-worker](https://github.com/splitbee/notion-api-worker). 87 | 88 | ### Basic Example for **Vue 3** 89 | 90 | This example is a part of [`demo/`](https://github.com/zeronnia/vue3-notion/demo/) and is hosted at [vue3-notion.vercel.app](https://vue3-notion.vercel.app). 91 | 92 | ```vue 93 | 107 | 108 | 111 | 112 | 117 | ``` 118 | 119 | ### Basic Example for **Nuxt3** 120 | 121 | This example is a part of [`demo/`](https://github.com/zeronnia/vue3-notion/demo/) and is hosted at [vue3-notion.vercel.app](https://vue3-notion.vercel.app). 122 | 123 | ```vue 124 | 128 | 129 | 132 | ``` 133 | 134 | ## Supported Blocks 135 | 136 | Most common block types are supported. We happily accept pull requests to add support for the missing blocks. 137 | 138 | | Block Type | Supported | Notes | 139 | | ----------------- | ---------- | ---------------------- | 140 | | Text | ✅ Yes | | 141 | | Heading | ✅ Yes | | 142 | | Image | ✅ Yes | | 143 | | Image Caption | ✅ Yes | | 144 | | Bulleted List | ✅ Yes | | 145 | | Numbered List | ✅ Yes | | 146 | | Quote | ✅ Yes | | 147 | | Callout | ✅ Yes | | 148 | | Column | ✅ Yes | | 149 | | iframe | ✅ Yes | | 150 | | Video | ✅ Yes | Only embedded videos | 151 | | Divider | ✅ Yes | | 152 | | Link | ✅ Yes | | 153 | | Code | ✅ Yes | | 154 | | Web Bookmark | ✅ Yes | | 155 | | Toggle List | ✅ Yes | | 156 | | Page Links | ✅ Yes | | 157 | | Cover | ✅ Yes | Enable with `fullPage` | 158 | | Equations | ✅ Yes | | 159 | | Checkbox | ✅ Yes | | 160 | | Simple Tables | ✅ Yes | | 161 | | Table Of Contents | ✅ Yes | | 162 | | Databases | ☑️ Planned | | 163 | 164 | Please, feel free to [open an issue](https://github.com/zernonia/vue3-notion/issues/new) if you notice any important blocks missing or anything wrong with existing blocks. 165 | 166 | # 🌎 Local Development 167 | 168 | ## Prerequisites 169 | 170 | Yarn 171 | 172 | - ```sh 173 | npm install --global yarn 174 | ``` 175 | 176 | ## Development 177 | 178 | 1. Clone the repo 179 | ```sh 180 | git clone https://github.com/zernonia/vue3-notion.git 181 | ``` 182 | 2. Install NPM packages 183 | ```sh 184 | yarn 185 | ``` 186 | 3. Run Development instance 187 | ```sh 188 | yarn dev 189 | ``` 190 | 191 | ## Credits 192 | 193 | - [Jannik Siebert](https://twitter.com/jnnksbrt) – vue-notion Code 194 | - [All vue-notion contributors!](https://github.com/janniks/vue-notion/graphs/contributors) 195 | 196 | ## License ⚖️ 197 | 198 | MIT © [zernonia](https://twitter.com/zernonia) 199 | -------------------------------------------------------------------------------- /assets/vue3-notion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zernonia/vue3-notion/69a3e61f7339f5ac644153289110803b5706c43f/assets/vue3-notion.png -------------------------------------------------------------------------------- /demo/nuxt/app.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 30 | -------------------------------------------------------------------------------- /demo/nuxt/composables/useProps.ts: -------------------------------------------------------------------------------- 1 | export const useProps = () => { 2 | const mapPageUrl = (pageId: String) => { 3 | return `/page/${pageId}` 4 | } 5 | 6 | const pageLinkOptions = computed(() => ({ 7 | component: defineNuxtLink({}), 8 | href: "to", 9 | })) 10 | 11 | return { 12 | mapPageUrl, 13 | pageLinkOptions, 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /demo/nuxt/nuxt.config.ts: -------------------------------------------------------------------------------- 1 | export default defineNuxtConfig({ 2 | app: { 3 | head: { 4 | title: "Nuxt3 Notion", 5 | meta: [{ charset: "utf-8" }, { name: "viewport", content: "width=device-width, initial-scale=1" }], 6 | link: [{ rel: "icon", type: "image/png", href: "/logo.png" }], 7 | }, 8 | }, 9 | modules: ["@nuxt/devtools", ["vue3-notion/nuxt", { css: true }]], 10 | routeRules:{ 11 | '**': { isr: 120 } // every 2 * 60 seconds 12 | } 13 | }); 14 | -------------------------------------------------------------------------------- /demo/nuxt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nuxt3-notion", 3 | "version": "0.0.1", 4 | "type": "module", 5 | "description": "Nuxt 3 Notion Renderer.", 6 | "license": "MIT", 7 | "scripts": { 8 | "dev": "nuxt dev", 9 | "build": "nuxt build", 10 | "preview": "nuxt preview", 11 | "start": "node .output/server/index.mjs" 12 | }, 13 | "dependencies": { 14 | "notion-client": "^6.15.6", 15 | "nuxt": "^3.13.2", 16 | "vue3-notion": "^0.1.46" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /demo/nuxt/pages/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /demo/nuxt/pages/page/[id].vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 16 | -------------------------------------------------------------------------------- /demo/nuxt/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zernonia/vue3-notion/69a3e61f7339f5ac644153289110803b5706c43f/demo/nuxt/public/logo.png -------------------------------------------------------------------------------- /demo/nuxt/server/api/page/[pageId].ts: -------------------------------------------------------------------------------- 1 | import { NotionAPI } from "notion-client"; 2 | 3 | export default defineEventHandler(async (event) => { 4 | const pageId = event.context.params.pageId; 5 | 6 | const api = new NotionAPI(); 7 | const page = await api.getPage(pageId.toString()); 8 | 9 | return page; 10 | }); 11 | -------------------------------------------------------------------------------- /demo/nuxt/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.nuxt/tsconfig.json", 3 | "compilerOptions": { 4 | "target": "esnext", 5 | "module": "esnext", 6 | "moduleResolution": "node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "lib": ["esnext", "dom"], 14 | "types": ["@nuxt/types"] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /demo/vue/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /demo/vue/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["johnsoncodehk.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /demo/vue/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + Typescript + Vite 2 | 3 | This template should help get you started developing with Vue 3 and Typescript in Vite. The template uses Vue 3 ` 12 | 13 | 14 | -------------------------------------------------------------------------------- /demo/vue/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue", 3 | "private": true, 4 | "version": "0.0.0", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "dependencies": { 11 | "vue": "^3.2.25", 12 | "vue-router": "^4.0.14", 13 | "vue3-notion": "^0.1.46" 14 | }, 15 | "devDependencies": { 16 | "@vitejs/plugin-vue": "^2.2.0", 17 | "typescript": "^4.5.4", 18 | "vite": "^2.8.6", 19 | "vue-tsc": "^0.29.8" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /demo/vue/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | vue: 12 | specifier: ^3.2.25 13 | version: 3.5.12(typescript@4.9.5) 14 | vue-router: 15 | specifier: ^4.0.14 16 | version: 4.4.5(vue@3.5.12(typescript@4.9.5)) 17 | vue3-notion: 18 | specifier: ^0.1.46 19 | version: 0.1.46(katex@0.15.6)(prismjs@1.29.0)(vue@3.5.12(typescript@4.9.5)) 20 | devDependencies: 21 | '@vitejs/plugin-vue': 22 | specifier: ^2.2.0 23 | version: 2.3.4(vite@2.9.18)(vue@3.5.12(typescript@4.9.5)) 24 | typescript: 25 | specifier: ^4.5.4 26 | version: 4.9.5 27 | vite: 28 | specifier: ^2.8.6 29 | version: 2.9.18 30 | vue-tsc: 31 | specifier: ^0.29.8 32 | version: 0.29.8(typescript@4.9.5) 33 | 34 | packages: 35 | 36 | '@babel/helper-string-parser@7.25.9': 37 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 38 | engines: {node: '>=6.9.0'} 39 | 40 | '@babel/helper-validator-identifier@7.25.9': 41 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 42 | engines: {node: '>=6.9.0'} 43 | 44 | '@babel/parser@7.26.2': 45 | resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} 46 | engines: {node: '>=6.0.0'} 47 | hasBin: true 48 | 49 | '@babel/types@7.26.0': 50 | resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} 51 | engines: {node: '>=6.9.0'} 52 | 53 | '@emmetio/abbreviation@2.3.3': 54 | resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} 55 | 56 | '@emmetio/css-abbreviation@2.1.8': 57 | resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} 58 | 59 | '@emmetio/scanner@1.0.4': 60 | resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} 61 | 62 | '@esbuild/linux-loong64@0.14.54': 63 | resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} 64 | engines: {node: '>=12'} 65 | cpu: [loong64] 66 | os: [linux] 67 | 68 | '@jridgewell/sourcemap-codec@1.5.0': 69 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 70 | 71 | '@vitejs/plugin-vue@2.3.4': 72 | resolution: {integrity: sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==} 73 | engines: {node: '>=12.0.0'} 74 | peerDependencies: 75 | vite: ^2.5.10 76 | vue: ^3.2.25 77 | 78 | '@volar/code-gen@0.29.8': 79 | resolution: {integrity: sha512-eohLLUqPChHRPDFT5gXn4V6pr/CeTri7Ou5GI26lUvBRRAbP8p+oYfQRcbMPGeKmVkYjfVj0chsxQGx6T8PQ4Q==} 80 | 81 | '@volar/html2pug@0.29.8': 82 | resolution: {integrity: sha512-bhSNXg8A2aD3w0B+CwmHjqCAaKtj5rORbE5C/q/UdGqptJbC6STCmi30KuRTdfPhR++Xb18Hauf3s/WCmtNAPA==} 83 | deprecated: 'WARNING: This project has been renamed to @johnsoncodehk/html2pug. Install using @johnsoncodehk/html2pug instead.' 84 | 85 | '@volar/shared@0.29.8': 86 | resolution: {integrity: sha512-Y1NN6irkIukD+T0wf4p/dHWYL90sacN2e2lYoDXxRlvoYxwANnHgw0J0Rcp+yw58ElWRScdG7/YntEIuZWeJsw==} 87 | 88 | '@volar/source-map@0.29.8': 89 | resolution: {integrity: sha512-7w+UoYtnc6UQu30CgMVvx0YN4dzDgP4TIsSmUaW62AGmxU9Lxwp3Kkn/4N8efi91z8ma5Z78v/HddyJPwAC3LA==} 90 | 91 | '@volar/transforms@0.29.8': 92 | resolution: {integrity: sha512-o2hRa8CoDwYTO1Mu5KA47+1elUnYUjDaVhCvbyKlRfd8qpHea2llotArq7B6OORSL2M9DVs1IRJ5NGURBFeZ3Q==} 93 | 94 | '@volar/vue-code-gen@0.29.8': 95 | resolution: {integrity: sha512-E1e7P2oktNC/DzgDBditfla4s8+HlUlluZ+BtcLvEdbkl3QEjujkB0x1wxguWzXmpWgLIDPtrS3Jzll5cCOkTg==} 96 | 97 | '@vscode/emmet-helper@2.9.3': 98 | resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} 99 | 100 | '@vue/compiler-core@3.5.12': 101 | resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} 102 | 103 | '@vue/compiler-dom@3.5.12': 104 | resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} 105 | 106 | '@vue/compiler-sfc@3.5.12': 107 | resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} 108 | 109 | '@vue/compiler-ssr@3.5.12': 110 | resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} 111 | 112 | '@vue/devtools-api@6.6.4': 113 | resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} 114 | 115 | '@vue/reactivity@3.5.12': 116 | resolution: {integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==} 117 | 118 | '@vue/runtime-core@3.5.12': 119 | resolution: {integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==} 120 | 121 | '@vue/runtime-dom@3.5.12': 122 | resolution: {integrity: sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==} 123 | 124 | '@vue/server-renderer@3.5.12': 125 | resolution: {integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==} 126 | peerDependencies: 127 | vue: 3.5.12 128 | 129 | '@vue/shared@3.5.12': 130 | resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} 131 | 132 | acorn@7.4.1: 133 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 134 | engines: {node: '>=0.4.0'} 135 | hasBin: true 136 | 137 | asap@2.0.6: 138 | resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} 139 | 140 | assert-never@1.3.0: 141 | resolution: {integrity: sha512-9Z3vxQ+berkL/JJo0dK+EY3Lp0s3NtSnP3VCLsh5HDcZPrh0M+KQRK5sWhUeyPPH+/RCxZqOxLMR+YC6vlviEQ==} 142 | 143 | babel-walk@3.0.0-canary-5: 144 | resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} 145 | engines: {node: '>= 10.0.0'} 146 | 147 | call-bind@1.0.7: 148 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 149 | engines: {node: '>= 0.4'} 150 | 151 | character-parser@2.2.0: 152 | resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} 153 | 154 | commander@8.3.0: 155 | resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} 156 | engines: {node: '>= 12'} 157 | 158 | constantinople@4.0.1: 159 | resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} 160 | 161 | csstype@3.1.3: 162 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 163 | 164 | define-data-property@1.1.4: 165 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 166 | engines: {node: '>= 0.4'} 167 | 168 | doctypes@1.1.0: 169 | resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==} 170 | 171 | dom-serializer@1.4.1: 172 | resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} 173 | 174 | domelementtype@2.3.0: 175 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 176 | 177 | domhandler@4.3.1: 178 | resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} 179 | engines: {node: '>= 4'} 180 | 181 | domutils@2.8.0: 182 | resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} 183 | 184 | emmet@2.4.11: 185 | resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} 186 | 187 | entities@2.2.0: 188 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} 189 | 190 | entities@3.0.1: 191 | resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} 192 | engines: {node: '>=0.12'} 193 | 194 | entities@4.5.0: 195 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 196 | engines: {node: '>=0.12'} 197 | 198 | es-define-property@1.0.0: 199 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 200 | engines: {node: '>= 0.4'} 201 | 202 | es-errors@1.3.0: 203 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 204 | engines: {node: '>= 0.4'} 205 | 206 | esbuild-android-64@0.14.54: 207 | resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} 208 | engines: {node: '>=12'} 209 | cpu: [x64] 210 | os: [android] 211 | 212 | esbuild-android-arm64@0.14.54: 213 | resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} 214 | engines: {node: '>=12'} 215 | cpu: [arm64] 216 | os: [android] 217 | 218 | esbuild-darwin-64@0.14.54: 219 | resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} 220 | engines: {node: '>=12'} 221 | cpu: [x64] 222 | os: [darwin] 223 | 224 | esbuild-darwin-arm64@0.14.54: 225 | resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} 226 | engines: {node: '>=12'} 227 | cpu: [arm64] 228 | os: [darwin] 229 | 230 | esbuild-freebsd-64@0.14.54: 231 | resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} 232 | engines: {node: '>=12'} 233 | cpu: [x64] 234 | os: [freebsd] 235 | 236 | esbuild-freebsd-arm64@0.14.54: 237 | resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} 238 | engines: {node: '>=12'} 239 | cpu: [arm64] 240 | os: [freebsd] 241 | 242 | esbuild-linux-32@0.14.54: 243 | resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} 244 | engines: {node: '>=12'} 245 | cpu: [ia32] 246 | os: [linux] 247 | 248 | esbuild-linux-64@0.14.54: 249 | resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} 250 | engines: {node: '>=12'} 251 | cpu: [x64] 252 | os: [linux] 253 | 254 | esbuild-linux-arm64@0.14.54: 255 | resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} 256 | engines: {node: '>=12'} 257 | cpu: [arm64] 258 | os: [linux] 259 | 260 | esbuild-linux-arm@0.14.54: 261 | resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} 262 | engines: {node: '>=12'} 263 | cpu: [arm] 264 | os: [linux] 265 | 266 | esbuild-linux-mips64le@0.14.54: 267 | resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} 268 | engines: {node: '>=12'} 269 | cpu: [mips64el] 270 | os: [linux] 271 | 272 | esbuild-linux-ppc64le@0.14.54: 273 | resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} 274 | engines: {node: '>=12'} 275 | cpu: [ppc64] 276 | os: [linux] 277 | 278 | esbuild-linux-riscv64@0.14.54: 279 | resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} 280 | engines: {node: '>=12'} 281 | cpu: [riscv64] 282 | os: [linux] 283 | 284 | esbuild-linux-s390x@0.14.54: 285 | resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} 286 | engines: {node: '>=12'} 287 | cpu: [s390x] 288 | os: [linux] 289 | 290 | esbuild-netbsd-64@0.14.54: 291 | resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} 292 | engines: {node: '>=12'} 293 | cpu: [x64] 294 | os: [netbsd] 295 | 296 | esbuild-openbsd-64@0.14.54: 297 | resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} 298 | engines: {node: '>=12'} 299 | cpu: [x64] 300 | os: [openbsd] 301 | 302 | esbuild-sunos-64@0.14.54: 303 | resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} 304 | engines: {node: '>=12'} 305 | cpu: [x64] 306 | os: [sunos] 307 | 308 | esbuild-windows-32@0.14.54: 309 | resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} 310 | engines: {node: '>=12'} 311 | cpu: [ia32] 312 | os: [win32] 313 | 314 | esbuild-windows-64@0.14.54: 315 | resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} 316 | engines: {node: '>=12'} 317 | cpu: [x64] 318 | os: [win32] 319 | 320 | esbuild-windows-arm64@0.14.54: 321 | resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} 322 | engines: {node: '>=12'} 323 | cpu: [arm64] 324 | os: [win32] 325 | 326 | esbuild@0.14.54: 327 | resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} 328 | engines: {node: '>=12'} 329 | hasBin: true 330 | 331 | estree-walker@2.0.2: 332 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 333 | 334 | fsevents@2.3.3: 335 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 336 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 337 | os: [darwin] 338 | 339 | function-bind@1.1.2: 340 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 341 | 342 | get-intrinsic@1.2.4: 343 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 344 | engines: {node: '>= 0.4'} 345 | 346 | gopd@1.0.1: 347 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 348 | 349 | has-property-descriptors@1.0.2: 350 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 351 | 352 | has-proto@1.0.3: 353 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 354 | engines: {node: '>= 0.4'} 355 | 356 | has-symbols@1.0.3: 357 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 358 | engines: {node: '>= 0.4'} 359 | 360 | has-tostringtag@1.0.2: 361 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 362 | engines: {node: '>= 0.4'} 363 | 364 | hasown@2.0.2: 365 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 366 | engines: {node: '>= 0.4'} 367 | 368 | htmlparser2@7.2.0: 369 | resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==} 370 | 371 | is-core-module@2.15.1: 372 | resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} 373 | engines: {node: '>= 0.4'} 374 | 375 | is-expression@4.0.0: 376 | resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==} 377 | 378 | is-promise@2.2.2: 379 | resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} 380 | 381 | is-regex@1.1.4: 382 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 383 | engines: {node: '>= 0.4'} 384 | 385 | js-stringify@1.0.2: 386 | resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} 387 | 388 | jsonc-parser@2.3.1: 389 | resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} 390 | 391 | jsonc-parser@3.3.1: 392 | resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} 393 | 394 | jstransformer@1.0.0: 395 | resolution: {integrity: sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=} 396 | 397 | katex@0.15.6: 398 | resolution: {integrity: sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==} 399 | hasBin: true 400 | 401 | magic-string@0.30.12: 402 | resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} 403 | 404 | nanoid@3.3.7: 405 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 406 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 407 | hasBin: true 408 | 409 | object-assign@4.1.1: 410 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 411 | engines: {node: '>=0.10.0'} 412 | 413 | path-parse@1.0.7: 414 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 415 | 416 | picocolors@1.1.1: 417 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 418 | 419 | postcss@8.4.47: 420 | resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} 421 | engines: {node: ^10 || ^12 || >=14} 422 | 423 | prismjs@1.29.0: 424 | resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} 425 | engines: {node: '>=6'} 426 | 427 | promise@7.3.1: 428 | resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} 429 | 430 | pug-attrs@3.0.0: 431 | resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==} 432 | 433 | pug-code-gen@3.0.3: 434 | resolution: {integrity: sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==} 435 | 436 | pug-error@2.1.0: 437 | resolution: {integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==} 438 | 439 | pug-filters@4.0.0: 440 | resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==} 441 | 442 | pug-lexer@5.0.1: 443 | resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==} 444 | 445 | pug-linker@4.0.0: 446 | resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==} 447 | 448 | pug-load@3.0.0: 449 | resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==} 450 | 451 | pug-parser@6.0.0: 452 | resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==} 453 | 454 | pug-runtime@3.0.1: 455 | resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==} 456 | 457 | pug-strip-comments@2.0.0: 458 | resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==} 459 | 460 | pug-walk@2.0.0: 461 | resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==} 462 | 463 | pug@3.0.3: 464 | resolution: {integrity: sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==} 465 | 466 | request-light@0.5.8: 467 | resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} 468 | 469 | resolve@1.22.8: 470 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 471 | hasBin: true 472 | 473 | rollup@2.77.3: 474 | resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} 475 | engines: {node: '>=10.0.0'} 476 | hasBin: true 477 | 478 | semver@7.6.3: 479 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 480 | engines: {node: '>=10'} 481 | hasBin: true 482 | 483 | set-function-length@1.2.2: 484 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 485 | engines: {node: '>= 0.4'} 486 | 487 | source-map-js@1.2.1: 488 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 489 | engines: {node: '>=0.10.0'} 490 | 491 | supports-preserve-symlinks-flag@1.0.0: 492 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 493 | engines: {node: '>= 0.4'} 494 | 495 | token-stream@1.0.0: 496 | resolution: {integrity: sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=} 497 | 498 | typescript@4.9.5: 499 | resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} 500 | engines: {node: '>=4.2.0'} 501 | hasBin: true 502 | 503 | upath@2.0.1: 504 | resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} 505 | engines: {node: '>=4'} 506 | 507 | vite@2.9.18: 508 | resolution: {integrity: sha512-sAOqI5wNM9QvSEE70W3UGMdT8cyEn0+PmJMTFvTB8wB0YbYUWw3gUbY62AOyrXosGieF2htmeLATvNxpv/zNyQ==} 509 | engines: {node: '>=12.2.0'} 510 | hasBin: true 511 | peerDependencies: 512 | less: '*' 513 | sass: '*' 514 | stylus: '*' 515 | peerDependenciesMeta: 516 | less: 517 | optional: true 518 | sass: 519 | optional: true 520 | stylus: 521 | optional: true 522 | 523 | void-elements@3.1.0: 524 | resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} 525 | engines: {node: '>=0.10.0'} 526 | 527 | vscode-css-languageservice@5.4.2: 528 | resolution: {integrity: sha512-DT7+7vfdT2HDNjDoXWtYJ0lVDdeDEdbMNdK4PKqUl2MS8g7PWt7J5G9B6k9lYox8nOfhCEjLnoNC3UKHHCR1lg==} 529 | 530 | vscode-html-languageservice@4.2.5: 531 | resolution: {integrity: sha512-dbr10KHabB9EaK8lI0XZW7SqOsTfrNyT3Nuj0GoPi4LjGKUmMiLtsqzfedIzRTzqY+w0FiLdh0/kQrnQ0tLxrw==} 532 | 533 | vscode-json-languageservice@4.2.1: 534 | resolution: {integrity: sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==} 535 | 536 | vscode-jsonrpc@8.1.0: 537 | resolution: {integrity: sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==} 538 | engines: {node: '>=14.0.0'} 539 | 540 | vscode-jsonrpc@8.2.1: 541 | resolution: {integrity: sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ==} 542 | engines: {node: '>=14.0.0'} 543 | 544 | vscode-languageserver-protocol@3.17.3: 545 | resolution: {integrity: sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==} 546 | 547 | vscode-languageserver-textdocument@1.0.12: 548 | resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} 549 | 550 | vscode-languageserver-types@3.17.3: 551 | resolution: {integrity: sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==} 552 | 553 | vscode-languageserver-types@3.17.5: 554 | resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} 555 | 556 | vscode-languageserver@8.1.0: 557 | resolution: {integrity: sha512-eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw==} 558 | hasBin: true 559 | 560 | vscode-nls@5.2.0: 561 | resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} 562 | 563 | vscode-pug-languageservice@0.29.8: 564 | resolution: {integrity: sha512-QHYAzDSJLg7GOLxCZ12qsM0dAM0dPeMSS1t4kKfzLsfpErmZpFzkAIXbidVrNMdMffGZMtTuIlcpEyWHbx96Iw==} 565 | deprecated: 'WARNING: This project has been renamed to @volar/pug-language-service. Install using @volar/pug-language-service instead.' 566 | 567 | vscode-typescript-languageservice@0.29.8: 568 | resolution: {integrity: sha512-eecDqHk4WjEvy6VHQ6teHczppQ9yJO2wExCy7yu7WiFj35qbw0h4G6Erv46MvP3ClL8FggFzD7s1qM6vdqJUfw==} 569 | deprecated: 'WARNING: This project has been renamed to @volar/typescript-language-service. Install using @volar/typescript-language-service instead.' 570 | 571 | vscode-uri@2.1.2: 572 | resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} 573 | 574 | vscode-uri@3.0.8: 575 | resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} 576 | 577 | vscode-vue-languageservice@0.29.8: 578 | resolution: {integrity: sha512-qSJdvW5ttyGUB/8uWDKgo8vnIoFnXYlBP4Z/cn54btsRn6ZMw7IJGJU1381e7p/yGvMTLeGbugD53SghbnSa6g==} 579 | deprecated: 'WARNING: This project has been renamed to @volar/vue-language-service. Install using @volar/vue-language-service instead.' 580 | 581 | vue-router@4.4.5: 582 | resolution: {integrity: sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==} 583 | peerDependencies: 584 | vue: ^3.2.0 585 | 586 | vue-tsc@0.29.8: 587 | resolution: {integrity: sha512-pT0wLRjvRuSmB+J4WJT6uuV9mO0KtSSXEAtaVXZQzyk5+DJdbLIQTbRce/TXSkfqt1l1WogO78RjtOJFiMCgfQ==} 588 | hasBin: true 589 | peerDependencies: 590 | typescript: '*' 591 | 592 | vue3-notion@0.1.46: 593 | resolution: {integrity: sha512-Y+d/rjZtTfMcpy0IVtsIXKw+0gXXZSBjrlfgqGGccDi8MTMOcxAaXlo1tiTRuJHEjSZpTmdHtuC+Ve5ZZdkPng==} 594 | peerDependencies: 595 | katex: ^0.15.1 596 | prismjs: ^1.25.0 597 | vue: ^3.2.20 598 | 599 | vue@3.5.12: 600 | resolution: {integrity: sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==} 601 | peerDependencies: 602 | typescript: '*' 603 | peerDependenciesMeta: 604 | typescript: 605 | optional: true 606 | 607 | with@7.0.2: 608 | resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} 609 | engines: {node: '>= 10.0.0'} 610 | 611 | snapshots: 612 | 613 | '@babel/helper-string-parser@7.25.9': {} 614 | 615 | '@babel/helper-validator-identifier@7.25.9': {} 616 | 617 | '@babel/parser@7.26.2': 618 | dependencies: 619 | '@babel/types': 7.26.0 620 | 621 | '@babel/types@7.26.0': 622 | dependencies: 623 | '@babel/helper-string-parser': 7.25.9 624 | '@babel/helper-validator-identifier': 7.25.9 625 | 626 | '@emmetio/abbreviation@2.3.3': 627 | dependencies: 628 | '@emmetio/scanner': 1.0.4 629 | 630 | '@emmetio/css-abbreviation@2.1.8': 631 | dependencies: 632 | '@emmetio/scanner': 1.0.4 633 | 634 | '@emmetio/scanner@1.0.4': {} 635 | 636 | '@esbuild/linux-loong64@0.14.54': 637 | optional: true 638 | 639 | '@jridgewell/sourcemap-codec@1.5.0': {} 640 | 641 | '@vitejs/plugin-vue@2.3.4(vite@2.9.18)(vue@3.5.12(typescript@4.9.5))': 642 | dependencies: 643 | vite: 2.9.18 644 | vue: 3.5.12(typescript@4.9.5) 645 | 646 | '@volar/code-gen@0.29.8': 647 | dependencies: 648 | '@volar/shared': 0.29.8 649 | '@volar/source-map': 0.29.8 650 | 651 | '@volar/html2pug@0.29.8': 652 | dependencies: 653 | domelementtype: 2.3.0 654 | domhandler: 4.3.1 655 | htmlparser2: 7.2.0 656 | pug: 3.0.3 657 | 658 | '@volar/shared@0.29.8': 659 | dependencies: 660 | upath: 2.0.1 661 | vscode-jsonrpc: 8.2.1 662 | vscode-uri: 3.0.8 663 | 664 | '@volar/source-map@0.29.8': 665 | dependencies: 666 | '@volar/shared': 0.29.8 667 | 668 | '@volar/transforms@0.29.8': 669 | dependencies: 670 | '@volar/shared': 0.29.8 671 | vscode-languageserver: 8.1.0 672 | 673 | '@volar/vue-code-gen@0.29.8': 674 | dependencies: 675 | '@volar/code-gen': 0.29.8 676 | '@volar/shared': 0.29.8 677 | '@volar/source-map': 0.29.8 678 | '@vue/compiler-core': 3.5.12 679 | '@vue/compiler-dom': 3.5.12 680 | '@vue/shared': 3.5.12 681 | upath: 2.0.1 682 | 683 | '@vscode/emmet-helper@2.9.3': 684 | dependencies: 685 | emmet: 2.4.11 686 | jsonc-parser: 2.3.1 687 | vscode-languageserver-textdocument: 1.0.12 688 | vscode-languageserver-types: 3.17.5 689 | vscode-uri: 2.1.2 690 | 691 | '@vue/compiler-core@3.5.12': 692 | dependencies: 693 | '@babel/parser': 7.26.2 694 | '@vue/shared': 3.5.12 695 | entities: 4.5.0 696 | estree-walker: 2.0.2 697 | source-map-js: 1.2.1 698 | 699 | '@vue/compiler-dom@3.5.12': 700 | dependencies: 701 | '@vue/compiler-core': 3.5.12 702 | '@vue/shared': 3.5.12 703 | 704 | '@vue/compiler-sfc@3.5.12': 705 | dependencies: 706 | '@babel/parser': 7.26.2 707 | '@vue/compiler-core': 3.5.12 708 | '@vue/compiler-dom': 3.5.12 709 | '@vue/compiler-ssr': 3.5.12 710 | '@vue/shared': 3.5.12 711 | estree-walker: 2.0.2 712 | magic-string: 0.30.12 713 | postcss: 8.4.47 714 | source-map-js: 1.2.1 715 | 716 | '@vue/compiler-ssr@3.5.12': 717 | dependencies: 718 | '@vue/compiler-dom': 3.5.12 719 | '@vue/shared': 3.5.12 720 | 721 | '@vue/devtools-api@6.6.4': {} 722 | 723 | '@vue/reactivity@3.5.12': 724 | dependencies: 725 | '@vue/shared': 3.5.12 726 | 727 | '@vue/runtime-core@3.5.12': 728 | dependencies: 729 | '@vue/reactivity': 3.5.12 730 | '@vue/shared': 3.5.12 731 | 732 | '@vue/runtime-dom@3.5.12': 733 | dependencies: 734 | '@vue/reactivity': 3.5.12 735 | '@vue/runtime-core': 3.5.12 736 | '@vue/shared': 3.5.12 737 | csstype: 3.1.3 738 | 739 | '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@4.9.5))': 740 | dependencies: 741 | '@vue/compiler-ssr': 3.5.12 742 | '@vue/shared': 3.5.12 743 | vue: 3.5.12(typescript@4.9.5) 744 | 745 | '@vue/shared@3.5.12': {} 746 | 747 | acorn@7.4.1: {} 748 | 749 | asap@2.0.6: {} 750 | 751 | assert-never@1.3.0: {} 752 | 753 | babel-walk@3.0.0-canary-5: 754 | dependencies: 755 | '@babel/types': 7.26.0 756 | 757 | call-bind@1.0.7: 758 | dependencies: 759 | es-define-property: 1.0.0 760 | es-errors: 1.3.0 761 | function-bind: 1.1.2 762 | get-intrinsic: 1.2.4 763 | set-function-length: 1.2.2 764 | 765 | character-parser@2.2.0: 766 | dependencies: 767 | is-regex: 1.1.4 768 | 769 | commander@8.3.0: {} 770 | 771 | constantinople@4.0.1: 772 | dependencies: 773 | '@babel/parser': 7.26.2 774 | '@babel/types': 7.26.0 775 | 776 | csstype@3.1.3: {} 777 | 778 | define-data-property@1.1.4: 779 | dependencies: 780 | es-define-property: 1.0.0 781 | es-errors: 1.3.0 782 | gopd: 1.0.1 783 | 784 | doctypes@1.1.0: {} 785 | 786 | dom-serializer@1.4.1: 787 | dependencies: 788 | domelementtype: 2.3.0 789 | domhandler: 4.3.1 790 | entities: 2.2.0 791 | 792 | domelementtype@2.3.0: {} 793 | 794 | domhandler@4.3.1: 795 | dependencies: 796 | domelementtype: 2.3.0 797 | 798 | domutils@2.8.0: 799 | dependencies: 800 | dom-serializer: 1.4.1 801 | domelementtype: 2.3.0 802 | domhandler: 4.3.1 803 | 804 | emmet@2.4.11: 805 | dependencies: 806 | '@emmetio/abbreviation': 2.3.3 807 | '@emmetio/css-abbreviation': 2.1.8 808 | 809 | entities@2.2.0: {} 810 | 811 | entities@3.0.1: {} 812 | 813 | entities@4.5.0: {} 814 | 815 | es-define-property@1.0.0: 816 | dependencies: 817 | get-intrinsic: 1.2.4 818 | 819 | es-errors@1.3.0: {} 820 | 821 | esbuild-android-64@0.14.54: 822 | optional: true 823 | 824 | esbuild-android-arm64@0.14.54: 825 | optional: true 826 | 827 | esbuild-darwin-64@0.14.54: 828 | optional: true 829 | 830 | esbuild-darwin-arm64@0.14.54: 831 | optional: true 832 | 833 | esbuild-freebsd-64@0.14.54: 834 | optional: true 835 | 836 | esbuild-freebsd-arm64@0.14.54: 837 | optional: true 838 | 839 | esbuild-linux-32@0.14.54: 840 | optional: true 841 | 842 | esbuild-linux-64@0.14.54: 843 | optional: true 844 | 845 | esbuild-linux-arm64@0.14.54: 846 | optional: true 847 | 848 | esbuild-linux-arm@0.14.54: 849 | optional: true 850 | 851 | esbuild-linux-mips64le@0.14.54: 852 | optional: true 853 | 854 | esbuild-linux-ppc64le@0.14.54: 855 | optional: true 856 | 857 | esbuild-linux-riscv64@0.14.54: 858 | optional: true 859 | 860 | esbuild-linux-s390x@0.14.54: 861 | optional: true 862 | 863 | esbuild-netbsd-64@0.14.54: 864 | optional: true 865 | 866 | esbuild-openbsd-64@0.14.54: 867 | optional: true 868 | 869 | esbuild-sunos-64@0.14.54: 870 | optional: true 871 | 872 | esbuild-windows-32@0.14.54: 873 | optional: true 874 | 875 | esbuild-windows-64@0.14.54: 876 | optional: true 877 | 878 | esbuild-windows-arm64@0.14.54: 879 | optional: true 880 | 881 | esbuild@0.14.54: 882 | optionalDependencies: 883 | '@esbuild/linux-loong64': 0.14.54 884 | esbuild-android-64: 0.14.54 885 | esbuild-android-arm64: 0.14.54 886 | esbuild-darwin-64: 0.14.54 887 | esbuild-darwin-arm64: 0.14.54 888 | esbuild-freebsd-64: 0.14.54 889 | esbuild-freebsd-arm64: 0.14.54 890 | esbuild-linux-32: 0.14.54 891 | esbuild-linux-64: 0.14.54 892 | esbuild-linux-arm: 0.14.54 893 | esbuild-linux-arm64: 0.14.54 894 | esbuild-linux-mips64le: 0.14.54 895 | esbuild-linux-ppc64le: 0.14.54 896 | esbuild-linux-riscv64: 0.14.54 897 | esbuild-linux-s390x: 0.14.54 898 | esbuild-netbsd-64: 0.14.54 899 | esbuild-openbsd-64: 0.14.54 900 | esbuild-sunos-64: 0.14.54 901 | esbuild-windows-32: 0.14.54 902 | esbuild-windows-64: 0.14.54 903 | esbuild-windows-arm64: 0.14.54 904 | 905 | estree-walker@2.0.2: {} 906 | 907 | fsevents@2.3.3: 908 | optional: true 909 | 910 | function-bind@1.1.2: {} 911 | 912 | get-intrinsic@1.2.4: 913 | dependencies: 914 | es-errors: 1.3.0 915 | function-bind: 1.1.2 916 | has-proto: 1.0.3 917 | has-symbols: 1.0.3 918 | hasown: 2.0.2 919 | 920 | gopd@1.0.1: 921 | dependencies: 922 | get-intrinsic: 1.2.4 923 | 924 | has-property-descriptors@1.0.2: 925 | dependencies: 926 | es-define-property: 1.0.0 927 | 928 | has-proto@1.0.3: {} 929 | 930 | has-symbols@1.0.3: {} 931 | 932 | has-tostringtag@1.0.2: 933 | dependencies: 934 | has-symbols: 1.0.3 935 | 936 | hasown@2.0.2: 937 | dependencies: 938 | function-bind: 1.1.2 939 | 940 | htmlparser2@7.2.0: 941 | dependencies: 942 | domelementtype: 2.3.0 943 | domhandler: 4.3.1 944 | domutils: 2.8.0 945 | entities: 3.0.1 946 | 947 | is-core-module@2.15.1: 948 | dependencies: 949 | hasown: 2.0.2 950 | 951 | is-expression@4.0.0: 952 | dependencies: 953 | acorn: 7.4.1 954 | object-assign: 4.1.1 955 | 956 | is-promise@2.2.2: {} 957 | 958 | is-regex@1.1.4: 959 | dependencies: 960 | call-bind: 1.0.7 961 | has-tostringtag: 1.0.2 962 | 963 | js-stringify@1.0.2: {} 964 | 965 | jsonc-parser@2.3.1: {} 966 | 967 | jsonc-parser@3.3.1: {} 968 | 969 | jstransformer@1.0.0: 970 | dependencies: 971 | is-promise: 2.2.2 972 | promise: 7.3.1 973 | 974 | katex@0.15.6: 975 | dependencies: 976 | commander: 8.3.0 977 | 978 | magic-string@0.30.12: 979 | dependencies: 980 | '@jridgewell/sourcemap-codec': 1.5.0 981 | 982 | nanoid@3.3.7: {} 983 | 984 | object-assign@4.1.1: {} 985 | 986 | path-parse@1.0.7: {} 987 | 988 | picocolors@1.1.1: {} 989 | 990 | postcss@8.4.47: 991 | dependencies: 992 | nanoid: 3.3.7 993 | picocolors: 1.1.1 994 | source-map-js: 1.2.1 995 | 996 | prismjs@1.29.0: {} 997 | 998 | promise@7.3.1: 999 | dependencies: 1000 | asap: 2.0.6 1001 | 1002 | pug-attrs@3.0.0: 1003 | dependencies: 1004 | constantinople: 4.0.1 1005 | js-stringify: 1.0.2 1006 | pug-runtime: 3.0.1 1007 | 1008 | pug-code-gen@3.0.3: 1009 | dependencies: 1010 | constantinople: 4.0.1 1011 | doctypes: 1.1.0 1012 | js-stringify: 1.0.2 1013 | pug-attrs: 3.0.0 1014 | pug-error: 2.1.0 1015 | pug-runtime: 3.0.1 1016 | void-elements: 3.1.0 1017 | with: 7.0.2 1018 | 1019 | pug-error@2.1.0: {} 1020 | 1021 | pug-filters@4.0.0: 1022 | dependencies: 1023 | constantinople: 4.0.1 1024 | jstransformer: 1.0.0 1025 | pug-error: 2.1.0 1026 | pug-walk: 2.0.0 1027 | resolve: 1.22.8 1028 | 1029 | pug-lexer@5.0.1: 1030 | dependencies: 1031 | character-parser: 2.2.0 1032 | is-expression: 4.0.0 1033 | pug-error: 2.1.0 1034 | 1035 | pug-linker@4.0.0: 1036 | dependencies: 1037 | pug-error: 2.1.0 1038 | pug-walk: 2.0.0 1039 | 1040 | pug-load@3.0.0: 1041 | dependencies: 1042 | object-assign: 4.1.1 1043 | pug-walk: 2.0.0 1044 | 1045 | pug-parser@6.0.0: 1046 | dependencies: 1047 | pug-error: 2.1.0 1048 | token-stream: 1.0.0 1049 | 1050 | pug-runtime@3.0.1: {} 1051 | 1052 | pug-strip-comments@2.0.0: 1053 | dependencies: 1054 | pug-error: 2.1.0 1055 | 1056 | pug-walk@2.0.0: {} 1057 | 1058 | pug@3.0.3: 1059 | dependencies: 1060 | pug-code-gen: 3.0.3 1061 | pug-filters: 4.0.0 1062 | pug-lexer: 5.0.1 1063 | pug-linker: 4.0.0 1064 | pug-load: 3.0.0 1065 | pug-parser: 6.0.0 1066 | pug-runtime: 3.0.1 1067 | pug-strip-comments: 2.0.0 1068 | 1069 | request-light@0.5.8: {} 1070 | 1071 | resolve@1.22.8: 1072 | dependencies: 1073 | is-core-module: 2.15.1 1074 | path-parse: 1.0.7 1075 | supports-preserve-symlinks-flag: 1.0.0 1076 | 1077 | rollup@2.77.3: 1078 | optionalDependencies: 1079 | fsevents: 2.3.3 1080 | 1081 | semver@7.6.3: {} 1082 | 1083 | set-function-length@1.2.2: 1084 | dependencies: 1085 | define-data-property: 1.1.4 1086 | es-errors: 1.3.0 1087 | function-bind: 1.1.2 1088 | get-intrinsic: 1.2.4 1089 | gopd: 1.0.1 1090 | has-property-descriptors: 1.0.2 1091 | 1092 | source-map-js@1.2.1: {} 1093 | 1094 | supports-preserve-symlinks-flag@1.0.0: {} 1095 | 1096 | token-stream@1.0.0: {} 1097 | 1098 | typescript@4.9.5: {} 1099 | 1100 | upath@2.0.1: {} 1101 | 1102 | vite@2.9.18: 1103 | dependencies: 1104 | esbuild: 0.14.54 1105 | postcss: 8.4.47 1106 | resolve: 1.22.8 1107 | rollup: 2.77.3 1108 | optionalDependencies: 1109 | fsevents: 2.3.3 1110 | 1111 | void-elements@3.1.0: {} 1112 | 1113 | vscode-css-languageservice@5.4.2: 1114 | dependencies: 1115 | vscode-languageserver-textdocument: 1.0.12 1116 | vscode-languageserver-types: 3.17.5 1117 | vscode-nls: 5.2.0 1118 | vscode-uri: 3.0.8 1119 | 1120 | vscode-html-languageservice@4.2.5: 1121 | dependencies: 1122 | vscode-languageserver-textdocument: 1.0.12 1123 | vscode-languageserver-types: 3.17.5 1124 | vscode-nls: 5.2.0 1125 | vscode-uri: 3.0.8 1126 | 1127 | vscode-json-languageservice@4.2.1: 1128 | dependencies: 1129 | jsonc-parser: 3.3.1 1130 | vscode-languageserver-textdocument: 1.0.12 1131 | vscode-languageserver-types: 3.17.5 1132 | vscode-nls: 5.2.0 1133 | vscode-uri: 3.0.8 1134 | 1135 | vscode-jsonrpc@8.1.0: {} 1136 | 1137 | vscode-jsonrpc@8.2.1: {} 1138 | 1139 | vscode-languageserver-protocol@3.17.3: 1140 | dependencies: 1141 | vscode-jsonrpc: 8.1.0 1142 | vscode-languageserver-types: 3.17.3 1143 | 1144 | vscode-languageserver-textdocument@1.0.12: {} 1145 | 1146 | vscode-languageserver-types@3.17.3: {} 1147 | 1148 | vscode-languageserver-types@3.17.5: {} 1149 | 1150 | vscode-languageserver@8.1.0: 1151 | dependencies: 1152 | vscode-languageserver-protocol: 3.17.3 1153 | 1154 | vscode-nls@5.2.0: {} 1155 | 1156 | vscode-pug-languageservice@0.29.8: 1157 | dependencies: 1158 | '@volar/code-gen': 0.29.8 1159 | '@volar/shared': 0.29.8 1160 | '@volar/source-map': 0.29.8 1161 | '@volar/transforms': 0.29.8 1162 | pug-lexer: 5.0.1 1163 | pug-parser: 6.0.0 1164 | vscode-languageserver: 8.1.0 1165 | 1166 | vscode-typescript-languageservice@0.29.8: 1167 | dependencies: 1168 | '@volar/shared': 0.29.8 1169 | semver: 7.6.3 1170 | upath: 2.0.1 1171 | vscode-languageserver: 8.1.0 1172 | vscode-languageserver-textdocument: 1.0.12 1173 | 1174 | vscode-uri@2.1.2: {} 1175 | 1176 | vscode-uri@3.0.8: {} 1177 | 1178 | vscode-vue-languageservice@0.29.8: 1179 | dependencies: 1180 | '@volar/code-gen': 0.29.8 1181 | '@volar/html2pug': 0.29.8 1182 | '@volar/shared': 0.29.8 1183 | '@volar/source-map': 0.29.8 1184 | '@volar/transforms': 0.29.8 1185 | '@volar/vue-code-gen': 0.29.8 1186 | '@vscode/emmet-helper': 2.9.3 1187 | '@vue/reactivity': 3.5.12 1188 | '@vue/shared': 3.5.12 1189 | request-light: 0.5.8 1190 | upath: 2.0.1 1191 | vscode-css-languageservice: 5.4.2 1192 | vscode-html-languageservice: 4.2.5 1193 | vscode-json-languageservice: 4.2.1 1194 | vscode-languageserver: 8.1.0 1195 | vscode-languageserver-textdocument: 1.0.12 1196 | vscode-pug-languageservice: 0.29.8 1197 | vscode-typescript-languageservice: 0.29.8 1198 | 1199 | vue-router@4.4.5(vue@3.5.12(typescript@4.9.5)): 1200 | dependencies: 1201 | '@vue/devtools-api': 6.6.4 1202 | vue: 3.5.12(typescript@4.9.5) 1203 | 1204 | vue-tsc@0.29.8(typescript@4.9.5): 1205 | dependencies: 1206 | '@volar/shared': 0.29.8 1207 | typescript: 4.9.5 1208 | vscode-vue-languageservice: 0.29.8 1209 | 1210 | vue3-notion@0.1.46(katex@0.15.6)(prismjs@1.29.0)(vue@3.5.12(typescript@4.9.5)): 1211 | dependencies: 1212 | katex: 0.15.6 1213 | prismjs: 1.29.0 1214 | vue: 3.5.12(typescript@4.9.5) 1215 | 1216 | vue@3.5.12(typescript@4.9.5): 1217 | dependencies: 1218 | '@vue/compiler-dom': 3.5.12 1219 | '@vue/compiler-sfc': 3.5.12 1220 | '@vue/runtime-dom': 3.5.12 1221 | '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@4.9.5)) 1222 | '@vue/shared': 3.5.12 1223 | optionalDependencies: 1224 | typescript: 4.9.5 1225 | 1226 | with@7.0.2: 1227 | dependencies: 1228 | '@babel/parser': 7.26.2 1229 | '@babel/types': 7.26.0 1230 | assert-never: 1.3.0 1231 | babel-walk: 3.0.0-canary-5 1232 | -------------------------------------------------------------------------------- /demo/vue/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zernonia/vue3-notion/69a3e61f7339f5ac644153289110803b5706c43f/demo/vue/public/favicon.ico -------------------------------------------------------------------------------- /demo/vue/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /demo/vue/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zernonia/vue3-notion/69a3e61f7339f5ac644153289110803b5706c43f/demo/vue/src/assets/logo.png -------------------------------------------------------------------------------- /demo/vue/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 35 | 36 | 53 | -------------------------------------------------------------------------------- /demo/vue/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue"; 2 | import App from "./App.vue"; 3 | import { router } from "./router"; 4 | 5 | import "vue3-notion/dist/style.css"; 6 | import "prismjs/themes/prism.css"; 7 | import "katex/dist/katex.min.css"; 8 | 9 | createApp(App).use(router).mount("#app"); 10 | -------------------------------------------------------------------------------- /demo/vue/src/router/index.ts: -------------------------------------------------------------------------------- 1 | import { createRouter, createWebHistory } from "vue-router"; 2 | import Home from "../view/Index.vue"; 3 | import Page from "../view/Page.vue"; 4 | 5 | const routes = [ 6 | { path: "/", name: "Home", component: Home }, 7 | { path: "/:id", name: "Page", component: Page }, 8 | ]; 9 | 10 | export const router = createRouter({ 11 | history: createWebHistory(), 12 | routes, 13 | }); 14 | -------------------------------------------------------------------------------- /demo/vue/src/view/Index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /demo/vue/src/view/Page.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 | 22 | -------------------------------------------------------------------------------- /demo/vue/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "useDefineForClassFields": true, 5 | "module": "esnext", 6 | "moduleResolution": "node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "esModuleInterop": true, 12 | "lib": ["esnext", "dom"] 13 | }, 14 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 15 | "references": [{ "path": "./tsconfig.node.json" }] 16 | } 17 | -------------------------------------------------------------------------------- /demo/vue/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "esnext", 5 | "moduleResolution": "node" 6 | }, 7 | "include": ["vite.config.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /demo/vue/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()] 7 | }) 8 | -------------------------------------------------------------------------------- /env.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.vue" { 2 | import { DefineComponent } from "vue"; 3 | const component: DefineComponent<{}, {}, any>; 4 | export default component; 5 | } 6 | -------------------------------------------------------------------------------- /nuxt/index.ts: -------------------------------------------------------------------------------- 1 | import { defineNuxtModule, addPlugin, createResolver } from "@nuxt/kit"; 2 | 3 | export default defineNuxtModule({ 4 | meta: { 5 | name: "vue3-notion", 6 | configKey: "notion", 7 | compatibility: { 8 | nuxt: "^3.0.0-rc.8", 9 | }, 10 | }, 11 | setup(options, nuxt) { 12 | const { resolve } = createResolver(import.meta.url); 13 | addPlugin(resolve("./plugin")); 14 | 15 | const notionDeps = ["katex", "prismjs"]; 16 | 17 | notionDeps.forEach((dep) => { 18 | nuxt.options.build.transpile.push(dep); 19 | }); 20 | 21 | if (options.css) { 22 | nuxt.options.css.push("vue3-notion/dist/style.css"); 23 | nuxt.options.css.push("prismjs/themes/prism.css"); 24 | nuxt.options.css.push("katex/dist/katex.min.css"); 25 | } 26 | }, 27 | }); 28 | -------------------------------------------------------------------------------- /nuxt/plugin.ts: -------------------------------------------------------------------------------- 1 | import VueNotion from "vue3-notion"; 2 | import { getPageBlocks, getPageTable } from "vue3-notion"; 3 | import { defineNuxtPlugin } from "#app"; 4 | 5 | export default defineNuxtPlugin(({ vueApp }) => { 6 | const notion = { getPageBlocks, getPageTable }; 7 | vueApp.use(VueNotion); 8 | return { 9 | provide: { 10 | notion, 11 | }, 12 | }; 13 | }); 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue3-notion", 3 | "version": "0.1.46", 4 | "description": "Vue 3 Unofficial Notion Renderer", 5 | "homepage": "https://vue3-notion.vercel.app/", 6 | "repository": "github:zernonia/vue3-notion", 7 | "type": "module", 8 | "main": "./dist/vue3-notion.umd.cjs", 9 | "module": "./dist/vue3-notion.js", 10 | "types": "./dist/index.d.ts", 11 | "exports": { 12 | ".": { 13 | "import": "./dist/vue3-notion.js", 14 | "require": "./dist/vue3-notion.umd.cjs" 15 | }, 16 | "./nuxt": { 17 | "require": "./nuxt/index.ts", 18 | "import": "./nuxt/index.ts" 19 | }, 20 | "./dist/style.css": { 21 | "import": "./dist/style.css", 22 | "require": "./dist/style.css" 23 | } 24 | }, 25 | "files": [ 26 | "dist", 27 | "nuxt" 28 | ], 29 | "keywords": [ 30 | "vue", 31 | "vue3", 32 | "nuxt", 33 | "nuxt3", 34 | "notion" 35 | ], 36 | "license": "MIT", 37 | "scripts": { 38 | "dev": "vite serve playground", 39 | "dev:build": "vite build playground", 40 | "build": "vue-tsc --noEmit && vite build", 41 | "preview": "vite preview", 42 | "version": " git add -A src", 43 | "postversion": "git push && git push --tags", 44 | "deploy": "npm run build && npm version patch && npm publish" 45 | }, 46 | "dependencies": { 47 | "katex": "^0.15.1", 48 | "prismjs": "^1.25.0", 49 | "vue": "^3.2.26" 50 | }, 51 | "devDependencies": { 52 | "@nuxt/kit": "^3.13.2", 53 | "@types/katex": "^0.11.1", 54 | "@types/node": "^20.1.1", 55 | "@types/prismjs": "^1.16.6", 56 | "@vitejs/plugin-vue": "^4.2.1", 57 | "@vueuse/core": "^8.7.5", 58 | "typescript": "^5.0.4", 59 | "vite": "^4.3.5", 60 | "vite-plugin-dts": "^2.3.0", 61 | "vue-router": "4", 62 | "vue-tsc": "^2.1.6" 63 | }, 64 | "peerDependencies": { 65 | "katex": "^0.15.1", 66 | "prismjs": "^1.25.0", 67 | "vue": "^3.2.20" 68 | }, 69 | "packageManager": "pnpm@9.6.0" 70 | } 71 | -------------------------------------------------------------------------------- /playground/App.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /playground/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zernonia/vue3-notion/69a3e61f7339f5ac644153289110803b5706c43f/playground/assets/logo.png -------------------------------------------------------------------------------- /playground/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /playground/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue"; 2 | import App from "./App.vue"; 3 | import { router } from "./router"; 4 | import "@/style.css"; 5 | 6 | createApp(App).use(router).mount("#app"); 7 | -------------------------------------------------------------------------------- /playground/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zernonia/vue3-notion/69a3e61f7339f5ac644153289110803b5706c43f/playground/public/favicon.ico -------------------------------------------------------------------------------- /playground/router/index.ts: -------------------------------------------------------------------------------- 1 | import { createRouter, createWebHistory } from "vue-router"; 2 | import Home from "../view/Index.vue"; 3 | import Page from "../view/Page.vue"; 4 | 5 | const routes = [ 6 | { path: "/", name: "Home", component: Home }, 7 | { path: "/:id", name: "Page", component: Page }, 8 | ]; 9 | 10 | export const router = createRouter({ 11 | history: createWebHistory(), 12 | routes, 13 | }); 14 | -------------------------------------------------------------------------------- /playground/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["vite/client"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /playground/view/Index.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 31 | -------------------------------------------------------------------------------- /playground/view/Page.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 27 | -------------------------------------------------------------------------------- /playground/vite.config.ts: -------------------------------------------------------------------------------- 1 | import path from "path"; 2 | import { defineConfig } from "vite"; 3 | import vue from "@vitejs/plugin-vue"; 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [vue()], 8 | resolve: { 9 | alias: { 10 | "@": path.resolve(__dirname, "../src"), 11 | }, 12 | }, 13 | }); 14 | -------------------------------------------------------------------------------- /scripts/postpublish.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | GIT_TAG=$(git describe --abbrev=0 --tags) 4 | 5 | $(cd demo && npm install -f vue3-notion@latest) 6 | 7 | git add --all 8 | git commit -m 'Update demo' 9 | git push --tags 10 | 11 | gh release create $GIT_TAG -t "$GIT_TAG" -------------------------------------------------------------------------------- /src/blocks/bookmark.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | 17 | 45 | -------------------------------------------------------------------------------- /src/blocks/callout.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | 18 | 37 | -------------------------------------------------------------------------------- /src/blocks/code.vue: -------------------------------------------------------------------------------- 1 | 58 | 59 | 64 | 65 | 73 | -------------------------------------------------------------------------------- /src/blocks/column.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 26 | 27 | 33 | -------------------------------------------------------------------------------- /src/blocks/decorator.vue: -------------------------------------------------------------------------------- 1 | 35 | 36 | 41 | 42 | 102 | -------------------------------------------------------------------------------- /src/blocks/equation.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 19 | 20 | 26 | -------------------------------------------------------------------------------- /src/blocks/header.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | 17 | 33 | -------------------------------------------------------------------------------- /src/blocks/helpers/asset.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 38 | 39 |