Kanso 是一个静态写作的个人网站系统,可以无缝集成 Notion 和 Markdown。
简体中文 | English
- 极简设计 - 清爽、无干扰的阅读体验
- 双重写作流 - 支持 Markdown 写作或从 Notion 同步
- 多语言支持 - UI 和内容支持多种语言
- 现代技术栈 - 使用 Next.js 构建,性能优异
- 灵活部署 - 一键部署到 Vercel、Netlify 或自己的服务器
- 评论系统 - 集成 Giscus 实现社区互动
- SEO 优化 - 内置完整的 SEO 支持
- RSS 订阅 - 保持读者更新
- Fork 此仓库
- 编辑 site.config.js 填写你的信息
- 部署到你喜欢的平台(参考下面的部署方法)
- (可选)启用 Notion 同步的 Workflow(参考写作部分)
在你 Fork 的仓库,点击下方按钮。
在你 Fork 的仓库,点击下方按钮。
确保服务器已安装 Node.js、 git 和 pm2。
在服务器下创建/app/ygk-blog 目录,并执行git init
初始化仓库。
mkdir -p /app/blog && cd /app/blog
git init
在 github 创建一个仓库,并在Setting
->Secrets
下添加服务器信息。
- SSH_HOST:服务器 IP
- SSH_USERNAME:服务器用户名
- SSH_PORT:SSH 端口(默认 22)
- SSH_PASSWORD:服务器用户密码
在 GitHub 仓库的 Deploy Keys
下添加服务器 git 公钥(生成方法)。
vim ~/.ssh/id_rsa.pub
确保 Action 已启用之后,在 github 上所有 master 分支的更新都会自动部署到服务器。大功告成!
目前支持两种写作方式:
- 将 Markdown 文件放入
/posts/<catagories>
目录即可。目前最高支持二级目录。 - 从 Notion 单向同步文章。
两种方式可以同步使用。
如果你选择第一种方式,每篇文章至少需要以下两个 frontmatter:
- title
- date
如果选择使用 Notion 写作,请参考这个 database 的形式创建一个一样的。(打开后点击右上角 Duplicate
一键复制)
之后,请在 Notion 新建一个 Intergation,获取 API Key. 同时获取你的 database_id
然后,在 GitHub 仓库新增两个环境变量:
NOTION_API_KEY=secret_xxxxx
NOTION_DATABASE_ID=xxxxx
Note
要获取 NOTION_DATABASE_ID,只需要打开数据库所在的页面,此时浏览器 URL 中用户名之后的长字符就是 id。要获取 NOTION_API_KEY,你需要先在 Database 的首页创建一个 Connection,然后点击 Manage connections 获取 TOKEN。
MIT