Skip to content
Open

new #3824

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
e1677a2
Update blog.config.js
kenchikuliu Aug 18, 2025
9236ea2
Update blog.config.js
kenchikuliu Aug 18, 2025
d5dd8e8
Update config.js
kenchikuliu Aug 18, 2025
bca6a23
Update config.js
kenchikuliu Aug 18, 2025
e7c6b3e
Update config.js
kenchikuliu Aug 18, 2025
c7c0011
Update PoweredBy.js
kenchikuliu Aug 18, 2025
da06fca
SEO优化: 添加规范链接(Canonical URL)和X-Robots-Tag响应头
kenchikuliu Aug 18, 2025
7d814f8
修复SEO: 规范链接(Canonical URL)格式问题,避免双斜杠
kenchikuliu Aug 18, 2025
650ad5c
SEO优化: 统一设置favicon为外部链接并修复重复设置问题
kenchikuliu Aug 18, 2025
45d2d6c
SEO优化: 添加Google Analytics和Google AdSense配置
kenchikuliu Aug 18, 2025
c945326
SEO优化: 添加结构化数据(Schema.org)支持
kenchikuliu Aug 18, 2025
a1f2c05
SEO优化: 添加Google Analytics跟踪代码
kenchikuliu Aug 18, 2025
f03a2fd
SEO优化: 更新Google Analytics配置
kenchikuliu Aug 18, 2025
74add26
SEO优化: 添加Google AdSense代码
kenchikuliu Aug 18, 2025
733e1eb
SEO优化: 添加robots meta标签作为X-Robots-Tag备用方案
kenchikuliu Aug 18, 2025
8268300
SEO优化: 改进图片alt文本以提高可访问性和SEO
kenchikuliu Aug 18, 2025
9405e4b
SEO优化: 添加Twitter Card缺失的标签
kenchikuliu Aug 18, 2025
e0335cb
Fix serialization errors and improve data handling
kenchikuliu Oct 13, 2025
9ed021c
Merge upstream v4.9.2 - Fix notion-client API issues
kenchikuliu Oct 13, 2025
a85117a
Add missing lodash dependencies (escaperegexp, debounce)
kenchikuliu Oct 14, 2025
a761c67
Add bilingual configuration guide to .env.example
kenchikuliu Oct 14, 2025
183de6d
Add language switcher button to header
kenchikuliu Oct 14, 2025
b061a8f
Add Algolia search configuration
kenchikuliu Oct 14, 2025
fec6009
Add Chatbase AI chatbot configuration
kenchikuliu Oct 14, 2025
395a94d
Add multi-language support to TouchMeCard component
kenchikuliu Oct 14, 2025
1896ac2
Add multilingual support to Hero component
kenchikuliu Oct 14, 2025
2c91b45
fix: Fix Notion API data structure parsing and improve error handling
kenchikuliu Feb 27, 2026
4c21689
fix(ssg): 修复Vercel部署时/zh-CN/links页面uuidToId崩溃问题
kenchikuliu Feb 27, 2026
35c8db8
fix(rendering): 在blockMap处理阶段过滤无效block,彻底修复uuidToId崩溃
kenchikuliu Feb 27, 2026
4ee5e9d
fix(rendering): 添加最终清理步骤,彻底移除blockMap中的无效block
kenchikuliu Feb 27, 2026
46aa3bf
fix(rendering): 强化content数组过滤,严格验证block和value存在性
kenchikuliu Feb 27, 2026
b0b12c3
fix(rendering): 关键修复 - 验证block.value.id防止uuidToId(undefined)崩溃
kenchikuliu Feb 27, 2026
22ad34d
fix(fallback): 修复fallback页面ID类型错误导致构建失败
kenchikuliu Feb 27, 2026
6720ae6
fix(fallback): 跳过fallback页面的Notion API调用
kenchikuliu Feb 27, 2026
fa62925
chore: trigger redeploy to fetch Notion data
kenchikuliu Feb 27, 2026
b364cad
debug: 添加详细的block结构调试信息
kenchikuliu Feb 27, 2026
aff2822
debug: 详细检查block对象的键结构
kenchikuliu Feb 27, 2026
2e366bf
fix(notion-data): 使用block中实际存在的UUID键而非pageId
kenchikuliu Feb 27, 2026
857f33e
test: 强制使用默认NOTION_PAGE_ID测试数据库连接
kenchikuliu Feb 27, 2026
1565dec
fix(critical): 支持包含inline database的text页面
kenchikuliu Feb 27, 2026
6817fad
chore: 恢复NOTION_PAGE_ID环境变量读取
kenchikuliu Feb 27, 2026
4b882c7
feat: 切换到heo主题
kenchikuliu Feb 27, 2026
498cce0
feat: 自动使用Notion站点图标作为favicon
kenchikuliu Feb 27, 2026
86e341f
📸 Add image: 04affe4037734423dc4af3310592719.png
kenchikuliu Mar 5, 2026
85cb10f
Add AI Agent programming 2026 blog images
Mar 5, 2026
d7dc9e2
Trigger redeploy for config refresh
Mar 5, 2026
d7135f6
Change POSTS_SORT_BY from notion to date for chronological ordering
Mar 5, 2026
b369474
Add 35 blog cover images for permanent GitHub hosting
Mar 5, 2026
7bc6eaf
Add 6 AI-generated cover images for articles with broken covers
Mar 5, 2026
92d445d
Change HEO recommended post tag from 精选 to Popular
Mar 5, 2026
7f17f7f
Add replacement inline images (tail promo + manus AI illustrations)
Mar 5, 2026
a5d223a
改善博客排版:更换为 medium 主题并添加自定义样式
kenchikuliu Mar 19, 2026
f564240
Merge pull request #1 from kenchikuliu/improve-layout
kenchikuliu Mar 19, 2026
cb7b4f1
恢复 heo 主题
kenchikuliu Mar 19, 2026
2a5219f
配置中英文数据库 ID,启用语言切换功能
kenchikuliu Mar 19, 2026
4c0a627
fix: update NOTION_PAGE_ID to use en-US locale prefix for language sw…
kenchikuliu Mar 19, 2026
66dff46
chore: remove all 'notionnext' references and update to 'NotionNext'
kenchikuliu Mar 19, 2026
c05839e
chore: force rebuild to apply locale configuration
kenchikuliu Mar 19, 2026
df810de
debug: add locale debug page
kenchikuliu Mar 19, 2026
0be1c44
fix: explicitly disable EXPORT in vercel.json to enable i18n
kenchikuliu Mar 19, 2026
c74f4b3
chore: trigger rebuild with updated NOTION_PAGE_ID env var
kenchikuliu Mar 19, 2026
cc4d81d
fix: update AUTHOR, BIO, LINK and KEYWORDS to remove NotionNext branding
kenchikuliu Mar 19, 2026
ddb5b0d
Make heo theme locale-aware: greetings, hero titles, notices, and soc…
kenchikuliu Mar 19, 2026
b3cfe28
Make WeChat QR code images locale-aware: use different images for zh-…
kenchikuliu Mar 19, 2026
4105cef
fix: apply upstream bug fixes from tangly1024/NotionNext
kenchikuliu Mar 28, 2026
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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 15 additions & 5 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

# 可在此添加环境变量,去掉最左边的(# )注释即可
# Notion页面ID,必须
# 单语言格式:NOTION_PAGE_ID=097e5f674880459d8e1b4407758dc4fb
# 多语言格式(推荐):NOTION_PAGE_ID=中文数据库ID,en:英文数据库ID
# 示例:NOTION_PAGE_ID=2a2f7026d6674bd19c5aec3c94bfd453,en:13e00092b9778002a3e2d5278bab3cd9
# 访问方式:yoursite.com/ (中文默认), yoursite.com/en/ (英文)
# NOTION_PAGE_ID=097e5f674880459d8e1b4407758dc4fb
# API_BASE_URL=https://www.notion.so/api/v3

Expand Down Expand Up @@ -56,10 +60,12 @@
# NEXT_PUBLIC_POST_RECOMMEND_COUNT=
# NEXT_PUBLIC_POSTS_PER_PAGE=
# NEXT_PUBLIC_POST_SORT_BY=
# NEXT_PUBLIC_ALGOLIA_APP_ID=
# ALGOLIA_ADMIN_APP_KEY=
# NEXT_PUBLIC_ALGOLIA_SEARCH_ONLY_APP_KEY=
# NEXT_PUBLIC_ALGOLIA_INDEX=
# Algolia 全文搜索配置 @see https://dashboard.algolia.com/account/api-keys/
# 免费方案:每月10000次搜索请求,存放10000条数据
# NEXT_PUBLIC_ALGOLIA_APP_ID=your_app_id
# ALGOLIA_ADMIN_APP_KEY=your_admin_key(管理端秘钥,不要暴露在前端)
# NEXT_PUBLIC_ALGOLIA_SEARCH_ONLY_APP_KEY=your_search_only_key(客户端搜索秘钥)
# NEXT_PUBLIC_ALGOLIA_INDEX=your_index_name(数据库索引名称)
# NEXT_PUBLIC_PREVIEW_CATEGORY_COUNT=
# NEXT_PUBLIC_PREVIEW_TAG_COUNT=
# NEXT_PUBLIC_POST_TITLE_ICON=
Expand All @@ -71,7 +77,11 @@
# NEXT_PUBLIC_FLUTTERINGRIBBON=
# NEXT_PUBLIC_RIBBON=
# NEXT_PUBLIC_STARRY_SKY=
# NEXT_PUBLIC_CHATBASE_ID=
# Chatbase AI聊天机器人配置 @see https://www.chatbase.co/
# 免费方案:每月20条消息限制,1个聊天机器人,400,000字符/机器人
# 注册后在 "Embed on site" 部分获取您的Chatbot ID
# 聊天机器人将显示在网站右下角
# NEXT_PUBLIC_CHATBASE_ID=your_chatbase_id
# NEXT_PUBLIC_WEB_WHIZ_ENABLED=
# NEXT_PUBLIC_WEB_WHIZ_BASE_URL=
# NEXT_PUBLIC_WEB_WHIZ_CHAT_BOT_ID=
Expand Down
38 changes: 38 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Repository Guidelines

## Project Structure & Module Organization
pages/ hosts Next.js route entrypoints; keep them thin and move data fetching or transforms into lib/.
components/ stores reusable view modules (PascalCase) and shared atoms in components/ui; co-locate CSS modules.
themes/ packages page layouts for DynamicLayout; reuse folder names when adding variations so imports stay stable.
lib/ contains Notion client adapters, SEO utilities, and service wrappers.
hooks/ keeps reusable React hooks; prefer colocating supportive types.
conf/ and blog.config.js hold deployment defaults; public/ carries static assets, icons, and fonts; docs/ tracks longer-form references.

## Build, Test, and Development Commands
npm install installs dependencies (Node 20+).
npm run dev launches the hot-reload server for manual QA.
npm run build compiles the production bundle; follow with npm run post-build to refresh sitemap and RSS artifacts.
npm run export emits a static bundle when EXPORT=true for GitBook-style deployments.
npm run bundle-report opens the Webpack analyzer to flag oversized themes or vendors.
npm run build-all-in-dev simulates a production deploy without leaving local dev.

## Coding Style & Naming Conventions
Run npx eslint . --ext .js,.jsx,.ts,.tsx before opening a PR; rules inherit Next, React, and TypeScript presets.
Format with npx prettier --write . (2-space indent, single quotes, no semicolons, JSX brackets inline).
Name components and hooks with descriptive PascalCase or camelCase (e.g., components/AlgoliaSearchModal.tsx, hooks/useAdjustStyle.ts); group theme-specific pieces under their theme folder.
Favor TypeScript for new utilities, keep types near usage, and import via the @/ alias rather than deep relative paths.

## Testing Guidelines
There is no baseline automated coverage; manually smoke-test Notion sync, theme switching, and SEO tags in npm run dev before sign-off.
Add Jest or Playwright specs alongside critical logic (e.g., lib/notion.spec.ts) and capture follow-up debt in the PR if coverage is deferred.
Attach brief manual QA notes in pull requests, especially for analytics, auth, or deployment-sensitive changes.

## Commit & Pull Request Guidelines
Follow the existing history: scope-prefixed, imperative subjects such as SEO: refresh og tags or fix: prevent undefined themeId.
Keep commits focused and include any paired configuration or translation updates.
Pull requests must include a concise summary, linked issues, test/QA results, and screenshots or GIFs whenever UI behavior shifts.
Coordinate reviews with owners of affected themes or integrations and wait for a clean CI build before merging.

## Security & Configuration Tips
Store secrets only in .env.local or the hosting dashboard; never commit them.
Mirror .env.example when provisioning environments and ensure VERCEL_ENV is set correctly for preview versus production releases.
Loading