Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
f086d5e
fix: add vercel.json com node para build compatibility
kellen-xavier May 27, 2025
103040b
Merge pull request #1 from kellen-xavier/develop
kellen-xavier May 27, 2025
ba72c9c
feat: add ajuste no titulo
kellen-xavier May 27, 2025
914f662
Merge pull request #2 from kellen-xavier/feature/ajusta-layout-person…
kellen-xavier May 27, 2025
fdb839b
Merge pull request #3 from kellen-xavier/feature/ajusta-layout-person…
kellen-xavier May 27, 2025
4fa2be3
fix: autalizar blog-notion + add ajustes de layout
kellen-xavier May 30, 2025
cb47e42
fix: ajustar erros do deploy
kellen-xavier May 30, 2025
32d5792
Merge pull request #5 from kellen-xavier/fix/corrigir-deploy-vercel
kellen-xavier May 30, 2025
7c146f1
Merge pull request #6 from kellen-xavier/develop
kellen-xavier May 30, 2025
066774c
Delete .env
kellen-xavier May 30, 2025
4d250d6
fix: add env
kellen-xavier May 31, 2025
f511ca3
chore: ajustes os arquivos de conf
kellen-xavier May 31, 2025
efa12f8
Merge pull request #7 from kellen-xavier/fix/arquivos-de-configuracoes
kellen-xavier May 31, 2025
2530826
Merge pull request #8 from kellen-xavier/main
kellen-xavier May 31, 2025
feca242
fix: subtituir o toSorted() por .slice e .sort compativel com versoes…
kellen-xavier Sep 11, 2025
3537b05
fix: update versao nextjs
kellen-xavier Sep 11, 2025
56e10ce
fix: ci retorno com valor
kellen-xavier Sep 11, 2025
820564e
fix: adicionar retorno e nao vazio
kellen-xavier Sep 11, 2025
b38c766
fix: tratativa de retorno vazio
kellen-xavier Sep 11, 2025
4bcd6a6
fix: check propriedade antes de acessar
kellen-xavier Sep 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .env

This file was deleted.

6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,9 @@ yarn-error.log*
.blog_index_data
.blog_index_data_previews

# local env files
.now
.vercel
.vercel
.env
.idea
.vscode
53 changes: 53 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Meu Notion Blog

## Sobre esse template

Esse template foi feito um fork a partir deste aqui [template original](https://github.com/ijjk/notion-blog).
Estou realizando os ajustes, e como tenho alguns textos e documentações, algumas estão no Notion
então esse template é perfeito!

> Este é um projeto de exemplo em Next.js que demonstra o suporte à geração de site estático (SSG - static-site generation) usando a API privada do Notion como backend.

## Rodar Localmente

## Instale dependências

yarn install

## Compile e gere o RSS

yarn build

## Inicie o servidor (porta 3000)

yarn start

## 📦 Requisitos

- Node.js `>=18.x` (recomendado)
- Yarn `>=1.22`
- Conta no Notion com acesso à API
- Conta na Vercel (conectada ao GitHub)

## ⚙️ Variáveis de ambiente

Crie um arquivo `.env.local` com:

```env
NOTION_TOKEN=seu_token_do_notion
BLOG_INDEX_ID=id_da_tabela_do_blog

```

### Deploy esta configurado na Vercel

[Link do deploy](https://notion-blog-lake-two.vercel.app/)

🌐 Deploy automático (Vercel)

´´´
yarn vercel-build

´´´

## Feito com 💻 por Kellen Xavier
15 changes: 15 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import js from '@eslint/js';
import react from 'eslint-plugin-react';
import tseslint from 'typescript-eslint';

export default [
js.configs.recommended,
react.configs.recommended,
tseslint.configs.recommended,
{
ignores: ['**/node_modules/**', '**/dist/**'],
rules: {
// Adicione regras personalizadas aqui se quiser
},
},
];
6 changes: 4 additions & 2 deletions lint-staged.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ const escape = require('shell-quote').quote
const isWin = process.platform === 'win32'

module.exports = {
'**/*.{js,jsx,ts,tsx,json,md,mdx,css,html,yml,yaml,scss,sass}': filenames => {
'**/*.{js,jsx,ts,tsx,json,md,mdx,css,html,yml,yaml,scss,sass}': (
filenames
) => {
const escapedFileNames = filenames
.map(filename => `"${isWin ? filename : escape([filename])}"`)
.map((filename) => `"${isWin ? filename : escape([filename])}"`)
.join(' ')
return [
`prettier --ignore-path='.gitignore' --write ${escapedFileNames}`,
Expand Down
4 changes: 2 additions & 2 deletions next-env.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/// <reference types="next" />
/// <reference types="next/types/global" />
/// <reference types="next/image-types/global" />
/// <reference path="./.next/types/routes.d.ts" />

// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.
// see https://nextjs.org/docs/pages/api-reference/config/typescript for more information.
46 changes: 31 additions & 15 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,43 @@
"start": "next start",
"build": "next build && node .next/server/build-rss.js",
"format": "prettier --write \"**/*.{js,jsx,json,ts,tsx,md,mdx,css,html,yml,yaml,scss,sass}\" --ignore-path .gitignore",
"lint-staged": "lint-staged"
"lint-staged": "lint-staged",
"vercel-build": "ts-node src/lib/build-rss.ts && next build"
},
"pre-commit": "lint-staged",
"dependencies": {
"@zeit/react-jsx-parser": "2.0.0",
"async-sema": "3.1.0",
"github-slugger": "1.2.1",
"katex": "0.12.0",
"next": "^11.1.2",
"prismjs": "1.17.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"uuid": "8.1.0"
"async-sema": "3.1.1",
"github-slugger": "2.0.0",
"katex": "0.16.22",
"next": "^15.5.3",
"node-fetch": "^3.3.2",
"prismjs": "1.30.0",
"react": "^19.1.1",
"react-dom": "^19.1.1",
"uuid": "13.0.0"
},
"devDependencies": {
"@types/katex": "0.11.0",
"@types/node": "14.14.31",
"@types/react": "17.0.2",
"lint-staged": "10.5.4",
"@eslint/js": "^9.35.0",
"@types/katex": "0.16.7",
"@types/node": "^24.3.1",
"@types/react": "19.1.12",
"@typescript-eslint/eslint-plugin": "^8.43.0",
"@typescript-eslint/parser": "^8.43.0",
"@typescript-eslint/utils": "^8.43.0",
"eslint": "^9.35.0",
"eslint-plugin-react": "^7.37.5",
"lint-staged": "16.1.6",
"pre-commit": "1.2.2",
"prettier": "2.2.1",
"typescript": "^4.4.4"
"prettier": "^3.6.2",
"ts-node": "^10.9.2",
"typescript": "^5.8.3",
"typescript-eslint": "^8.43.0"
},
"lint-staged": {
"*.{js,ts,tsx}": [
"eslint --fix",
"prettier --write"
]
}
}
25 changes: 25 additions & 0 deletions public/atom
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>My Blog</title>
<subtitle>Blog</subtitle>
<link href="/atom" rel="self" type="application/rss+xml"/>
<link href="/" />
<updated>2025-05-30T03:16:49.770Z</updated>
<id>My Notion Blog</id>
<entry>
<id>/blog/meu-primeiro-post</id>
<title>Teste - Sempre um teste</title>
<link href="/blog/meu-primeiro-post"/>
<updated>2025-05-27T03:00:00.625Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<p>📝 Um parágrafo curto como introdução.</p><p>
📝 Segundo parágrafo como resumo.</p>
<p class="more">
<a href="/blog/meu-primeiro-post">Read more</a>
</p>
</div>
</content>
<author><name>Kellen Xavier</name></author>
</entry>
</feed>
85 changes: 0 additions & 85 deletions readme.md

This file was deleted.

4 changes: 3 additions & 1 deletion src/components/ext-link.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
const ExtLink = (props) => (
<a {...props} rel="noopener" target={props.target || '_blank'} />
<a {...props} rel="noopener" target={props.target || '_blank'}>
{props.children}
</a>
)
export default ExtLink
44 changes: 3 additions & 41 deletions src/components/features.tsx
Original file line number Diff line number Diff line change
@@ -1,45 +1,7 @@
import Lightning from './svgs/lightning'
import Jamstack from './svgs/jamstack'
import Wifi from './svgs/wifi'
import Lighthouse from './svgs/lighthouse'
import Plus from './svgs/plus'
import Notion from './svgs/notion'
import Edit from './svgs/edit'
import Scroll from './svgs/scroll'

const features = [
{
text: 'Blazing fast',
icon: Lightning,
},
{
text: 'JAMstack based',
icon: Jamstack,
},
{
text: 'Always available',
icon: Wifi,
},
{
text: 'Customizable',
icon: Edit,
},
{
text: 'Incremental SSG',
icon: Plus,
},
{
text: 'MIT Licensed',
icon: Scroll,
},
{
text: 'Edit via Notion',
icon: Notion,
},
{
text: 'Great scores',
icon: Lighthouse,
},
// Add your features here
{ text: 'Feature 1', icon: null },
{ text: 'Feature 2', icon: null },
]

const Features = () => (
Expand Down
26 changes: 8 additions & 18 deletions src/components/footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,14 @@ import ExtLink from './ext-link'

export default function Footer() {
return (
<>
<footer>
<span>Deploy your own!</span>
<ExtLink href="https://vercel.com/new/git/external?repository-url=https://github.com/ijjk/notion-blog/tree/main&project-name=notion-blog&repository-name=notion-blog">
<img
src="https://vercel.com/button"
height={46}
width={132}
alt="deploy to Vercel button"
/>
<footer>
<span>Kellen Xavier</span>
<span>
{' '}
<ExtLink href="https://github.com/ijjk/notion-blog">
| Esse template encontra-se no GitHub
</ExtLink>
<span>
or{' '}
<ExtLink href="https://github.com/ijjk/notion-blog">
view source
</ExtLink>
</span>
</footer>
</>
</span>
</footer>
)
}
11 changes: 6 additions & 5 deletions src/components/header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import styles from '../styles/header.module.css'
const navItems: { label: string; page?: string; link?: string }[] = [
{ label: 'Home', page: '/' },
{ label: 'Blog', page: '/blog' },
{ label: 'Contact', page: '/contact' },
{ label: 'Contato', page: '/contact' },
{ label: 'Source Code', link: 'https://github.com/ijjk/notion-blog' },
]

Expand All @@ -34,10 +34,11 @@ const Header = ({ titlePre = '' }) => {
{navItems.map(({ label, page, link }) => (
<li key={label}>
{page ? (
<Link href={page}>
<a className={pathname === page ? 'active' : undefined}>
{label}
</a>
<Link
href={page}
className={pathname === page ? 'active' : undefined}
>
{label}
</Link>
) : (
<ExtLink href={link}>{label}</ExtLink>
Expand Down
Loading