├── .env ├── public ├── avatar.png ├── favicon.ico ├── notion.png ├── og-image.png └── vercel-and-notion.png ├── assets └── table-view.png ├── scripts └── create-table.js ├── .prettierrc.json ├── src ├── components │ ├── ext-link.tsx │ ├── dynamic.tsx │ ├── svgs │ │ ├── lightning.tsx │ │ ├── plus.tsx │ │ ├── jamstack.tsx │ │ ├── lighthouse.tsx │ │ ├── wifi.tsx │ │ ├── scroll.tsx │ │ ├── edit.tsx │ │ ├── linkedin.tsx │ │ ├── envelope.tsx │ │ ├── zeit.tsx │ │ ├── twitter.tsx │ │ ├── notion.tsx │ │ └── github.tsx │ ├── counter.tsx │ ├── equation.tsx │ ├── footer.tsx │ ├── heading.tsx │ ├── code.tsx │ ├── features.tsx │ └── header.tsx ├── lib │ ├── fs-helpers.ts │ ├── notion │ │ ├── getNotionUsers.ts │ │ ├── getPostPreview.ts │ │ ├── queryCollection.ts │ │ ├── server-constants.js │ │ ├── utils.ts │ │ ├── getNotionAssetUrls.ts │ │ ├── rpc.ts │ │ ├── getPageData.ts │ │ ├── renderers.ts │ │ ├── getBlogIndex.ts │ │ ├── getTableData.ts │ │ └── createTable.js │ ├── blog-helpers.ts │ └── build-rss.ts ├── styles │ ├── shared.module.css │ ├── contact.module.css │ ├── header.module.css │ ├── blog.module.css │ └── global.css └── pages │ ├── _app.tsx │ ├── _document.tsx │ ├── api │ ├── clear-preview.ts │ ├── preview.ts │ ├── preview-post.ts │ └── asset.ts │ ├── contact.tsx │ ├── index.tsx │ └── blog │ ├── index.tsx │ └── [slug].tsx ├── next-env.d.ts ├── .gitignore ├── lint-staged.config.js ├── tsconfig.json ├── package.json ├── license ├── next.config.js └── readme.md /.env: -------------------------------------------------------------------------------- 1 | BLOG_INDEX_ID= 2 | NOTION_TOKEN= -------------------------------------------------------------------------------- /public/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ijjk/notion-blog/HEAD/public/avatar.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ijjk/notion-blog/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/notion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ijjk/notion-blog/HEAD/public/notion.png -------------------------------------------------------------------------------- /public/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ijjk/notion-blog/HEAD/public/og-image.png -------------------------------------------------------------------------------- /assets/table-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ijjk/notion-blog/HEAD/assets/table-view.png -------------------------------------------------------------------------------- /scripts/create-table.js: -------------------------------------------------------------------------------- 1 | const main = require('../src/lib/notion/createTable') 2 | 3 | main() 4 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "semi": false, 4 | "trailingComma": "es5" 5 | } 6 | -------------------------------------------------------------------------------- /public/vercel-and-notion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ijjk/notion-blog/HEAD/public/vercel-and-notion.png -------------------------------------------------------------------------------- /src/components/ext-link.tsx: -------------------------------------------------------------------------------- 1 | const ExtLink = (props) => ( 2 | 3 | ) 4 | export default ExtLink 5 | -------------------------------------------------------------------------------- /src/lib/fs-helpers.ts: -------------------------------------------------------------------------------- 1 | import fs from 'fs' 2 | import { promisify } from 'util' 3 | 4 | export const readFile = promisify(fs.readFile) 5 | export const writeFile = promisify(fs.writeFile) 6 | -------------------------------------------------------------------------------- /src/styles/shared.module.css: -------------------------------------------------------------------------------- 1 | .layout img { 2 | margin: auto; 3 | max-width: 98%; 4 | display: block; 5 | height: auto; 6 | } 7 | 8 | .layout h1, 9 | .layout h2 { 10 | text-align: center; 11 | } 12 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | // NOTE: This file should not be edited 6 | // see https://nextjs.org/docs/basic-features/typescript for more information. 7 | -------------------------------------------------------------------------------- /src/pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import '../styles/global.css' 2 | import 'katex/dist/katex.css' 3 | import Footer from '../components/footer' 4 | 5 | export default function MyApp({ Component, pageProps }) { 6 | return ( 7 | <> 8 | 9 |