Skip to content
This repository was archived by the owner on Nov 2, 2024. It is now read-only.

Commit 1d9be3e

Browse files
authored
docs(development): add documents for development (#5)
1 parent 26e5704 commit 1d9be3e

File tree

3 files changed

+119
-0
lines changed

3 files changed

+119
-0
lines changed

pages/development/_meta.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"index": "前言",
3+
"frontend": "前端开发指南"
4+
}

pages/development/frontend.mdx

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# 前端开发指南
2+
3+
> 为什么要写这一节?
4+
>
5+
> 我希望不再是只有 Kami 一个风格,能有更多主题可供选择。
6+
7+
此系统采用了前后端分离的形式,并没有提供模板渲染的选择,所以前端项目可以使用任何框架和架构设计。但是虽然开发比较自由,但是也存在诸多不便,比如接口调用和数据定义,路由约定上。所以在这一节,具体讲讲如何开发前端项目。
8+
9+
## 路由约定
10+
11+
[Kami](https://github.com/mx-space/kami) 是由 NextJS、React 开发的,作为最最原始的项目,至今(截止 2021.12)已有近两年的历史,经过这些时间的沉淀,我希望前端项目路由的组织上能够遵守这一个约定。
12+
13+
> 路由的约定能很大程度保证网站因更换不同前端主题导致 SEO 异常,死链接等问题。
14+
15+
约定如下:
16+
17+
| Path | Descrition | Mark |
18+
| ------------------------ | ------------------------------- | -------- |
19+
| `/` | 主页 | 强制要求 |
20+
| `/posts` | 博文列表 | 强制要求 |
21+
| `/posts/:category/:slug` | 博文详情页 | 强制要求 |
22+
| `/pages/:slug` | 独立页面详情页 | 强制要求 |
23+
| `/notes/:nid` | 日记详情页 | 强制要求 |
24+
| `/feed` | RSS 订阅 | 强制要求 |
25+
| `/:category/:slug` | 302 -> `/posts/:category/:slug` | 建议 |
26+
| `/category/:slug` | 分类中文章列表页 | 建议 |
27+
| `/notes` | 日记列表或者跳转最新日记页 | 建议 |
28+
| `/notes/latest` | 最新日记详情页 | 建议 |
29+
| `/friends` | 友链 | 建议 |
30+
| `/says` | 一言详情页 | 可选 |
31+
| `/sitemap` | 站点地图 | 建议 |
32+
| `/timeline` | 时间线 | 可选 |
33+
| `/recently` | 动态页 | 可选 |
34+
| `/favorite/:type` | 附加页 | 可选 |
35+
| `/projects` | 项目页 | 可选 |
36+
| `/projects/:id` | 项目详情页 | 可选 |
37+
38+
## 框架上的选择与建议
39+
40+
建议选择附带 SSR 功能的现代化框架:
41+
42+
- React:NextJS, [RakkasJS](https://github.com/rakkasjs/rakkasjs), umi
43+
- Vue: Vite (vite-ssr), NuxtJS
44+
45+
小程序:
46+
47+
- React: Remax, taro
48+
- Vue: uni-app
49+
50+
## 接口调用与 SDK 的使用
51+
52+
考虑到单独编写接口定义和返回类型太麻烦,这里提供一个 SDK 方便开发。
53+
54+
> SDK 仍在 beta 阶段,未来接口可能出现变化。
55+
56+
详见:[api-client](https://github.com/mx-space/core/tree/master/packages/api-client)

pages/development/index.mdx

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { Callout } from "nextra/components";
2+
3+
# 开发指南
4+
5+
为了方便开发者快速上手,我们提供了一些开发指南,帮助开发者快速了解和使用我们的产品。
6+
7+
## 项目技术栈
8+
9+
- [React](https://reactjs.org/)
10+
- [NestJS](https://nestjs.com/)
11+
- [TypeScript](https://www.typescriptlang.org/)
12+
- [MongoDB](https://www.mongodb.com/)
13+
- [Redis](https://redis.io/)
14+
- [Docker](https://www.docker.com/)
15+
16+
你可以点击上面的链接了解更多有关这些技术的信息。
17+
18+
## 启动开发环境
19+
20+
此系统采用了前后端分离的形式,因此需要分别启动前端和后端的开发环境。
21+
22+
但是由于不同的前端不同写法,我们认为作为一名开发者都应该知道如何 **`「举一反三」`**, 并且不同的前端可能步骤会 **大相径庭** ,因此我们不会提供如何启动前端开发环境的指南。
23+
24+
<Callout type="info">
25+
有关前端开发设计指南,你可以在侧边栏中找到。
26+
</Callout>
27+
28+
你需要确定好你的开发环境中已经安装了以下工具:
29+
30+
- [Node.js](https://nodejs.org/en/) (>= 16)
31+
- [PNPM](https://pnpm.js.org/)
32+
- [MongoDB](https://www.mongodb.com/)
33+
- [Redis](https://redis.io/)
34+
- [Git](https://git-scm.com/)
35+
36+
### 启动后端
37+
38+
首先,你需要克隆本仓库到你的本地(你可能需要 fork 一份到你的仓库中,并且使用 `--depth=1` 来加速克隆):
39+
40+
```bash
41+
git clone https://github.com/mx-space/core
42+
```
43+
44+
然后,你需要安装依赖,我们使用了 PNPM 作为包管理器,并不建议你使用其他的管理器安装。
45+
46+
<Callout type="warning">
47+
在您提交相关 PR 时,我们也会检查您是否使用了 PNPM,如果没有,我们将会拒绝您的 PR(一个项目多个 lock 总不是一个好的选择)。
48+
</Callout>
49+
50+
```bash
51+
cd core
52+
pnpm i
53+
```
54+
55+
接下来,我们就可以开始启动后端的开发环境了。
56+
57+
```bash
58+
pnpm run dev
59+
```

0 commit comments

Comments
 (0)