logo
0
0
WeChat Login

CNB Issues 博客系统

基于CNB API Issues构建的现代化博客平台,使用Issues作为博客文章的存储后端。

功能特性

  • 📝 使用Markdown编辑器编写博客文章
  • 🔍 支持文章搜索和分页浏览
  • 🏷️ 文章标签分类管理
  • 📱 响应式设计,支持移动端
  • 🔄 实时Markdown预览
  • ✏️ 文章编辑和删除功能

技术栈

  • 后端: Node.js + Express + TypeScript
  • 前端: 原生JavaScript + TypeScript
  • API: CNB API (Issues功能)
  • 样式: 现代化CSS设计
  • 构建工具: TypeScript编译器

快速开始

1. 安装依赖

npm install

2. 配置环境变量

复制 .env.example.env 并配置相关参数:

cp .env.example .env

编辑 .env 文件:

# CNB API 配置 CNB_TOKEN=your-cnb-api-token-here REPO_OWNER=your-repo-owner REPO_NAME=your-repo-name # 服务器配置 PORT=3000 # 博客配置 BLOG_TITLE=CNB Issues 博客系统 BLOG_DESCRIPTION=基于CNB API Issues构建的现代化博客平台

3. 构建项目

# 构建前端代码 npm run build:frontend # 构建后端代码 npm run build:backend # 或者构建全部 npm run build

4. 启动服务

# 开发模式 npm run dev # 生产模式 npm start

5. 访问应用

打开浏览器访问 http://localhost:3000

API 接口

文章管理

  • GET /api/posts - 获取文章列表
  • GET /api/posts/:id - 获取单个文章
  • POST /api/posts - 创建新文章
  • PUT /api/posts/:id - 更新文章
  • DELETE /api/posts/:id - 删除文章

搜索功能

  • GET /api/posts/search/:query - 搜索文章

分类管理

  • GET /api/categories - 获取分类列表

项目结构

/workspace/ ├── src/ # 源代码目录 │ └── script.ts # 前端TypeScript代码 ├── dist/ # 编译输出目录 ├── public/ # 静态资源目录 ├── server.ts # 服务器端代码 ├── index.html # 主页面 ├── styles.css # 样式文件 ├── package.json # 项目配置 ├── tsconfig.json # TypeScript配置 ├── tsconfig.frontend.json # 前端TypeScript配置 └── README.md # 项目说明

开发说明

开发模式

# 启动开发服务器(自动重新加载) npm run dev # 完整开发模式(构建前端+启动服务器) npm run dev:full

构建说明

  • 前端代码编译到 dist/ 目录
  • 后端代码编译到 dist/ 目录
  • 静态资源位于 public/ 目录

部署说明

环境要求

  • Node.js 16+
  • CNB API访问权限
  • 有效的CNB Token

部署步骤

  1. 配置生产环境变量
  2. 构建项目:npm run build
  3. 启动服务:npm start

使用说明

创建新文章

  1. 点击"新建文章"按钮
  2. 填写文章标题和内容
  3. 添加标签(用逗号分隔)
  4. 使用Markdown编辑器编写内容
  5. 点击"保存"发布文章

编辑文章

  1. 点击文章卡片查看详情
  2. 点击"编辑"按钮
  3. 修改文章内容
  4. 保存更改

搜索文章

在搜索框中输入关键词,系统会自动搜索标题和内容匹配的文章。

注意事项

  1. CNB API配置: 确保配置正确的CNB Token和仓库信息
  2. 文章存储: 所有文章都存储在CNB Issues中
  3. 标签管理: 系统会自动添加"blog"标签来标识博客文章
  4. Markdown支持: 支持标准的Markdown语法

故障排除

常见问题

  1. CNB API连接失败

    • 检查CNB Token是否正确
    • 确认仓库所有者/名称配置正确
  2. 文章无法保存

    • 检查网络连接
    • 确认有足够的API调用权限
  3. Markdown预览不工作

    • 检查marked.js是否正确加载
    • 查看浏览器控制台错误信息

许可证

MIT License

贡献

欢迎提交Issue和Pull Request来改进项目。

About

No description, topics, or website provided.
Language
JavaScript44.1%
TypeScript19.1%
CSS17.7%
HTML16.1%
Others3%