docs: 写一点文档咯
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
[*]
|
||||
insert_final_newline = true
|
||||
|
||||
[*.{js,ts,mjs,mts}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.md]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
@@ -0,0 +1,36 @@
|
||||
# API
|
||||
|
||||
以下是自动生成的 API 文档,包含 NyaHome 的 FastAPI 后端拥有的所有路由端点的有关信息。
|
||||
|
||||
API 文档会跟随代码仓库主分支的最新状况进行同步。也就是说,此处的 API 文档永远显示最新版本。
|
||||
|
||||
## 查看 NyaHome Swagger UI 或 ReDoc
|
||||
|
||||
FastAPI 提供内置的文档功能,位于开发服务器的 `/docs` 和 `/redoc` 两处路径。
|
||||
NyaHome 提供关闭它们的选项(并且默认关闭),但如果你有开发需求,打开它们自然是比较方便的。
|
||||
|
||||
由 FastAPI 打开的文档是由当前代码生成的,可以反应开发中的最新更改,或者查看当前版本的路由信息(如果你没有使用最新版本)。
|
||||
|
||||
## 导出 openapi.json
|
||||
|
||||
你可以从一个部署完成的 NyaHome 实例中导出 openapi.json。
|
||||
|
||||
```bash
|
||||
uv run nyahome openapi [path]
|
||||
```
|
||||
|
||||
以上命令会生成 openapi.json 文件。`path` 参数的默认值是 `openapi.json`,意味着 openapi.json 会被保存在执行位置(仓库根目录)。
|
||||
|
||||
你也可以从一个正在运行的 NyaHome 实例访问 `/openapi.json` 来在线查看 openapi.json,此功能也默认关闭。
|
||||
|
||||
## 构建文档自动集成
|
||||
|
||||
`pyproject.toml` 中配置了一个项目任务,来方便将最新的 openapi.json 导出到 `/docs` 路径下的指定位置,从而与 VitePress 进行集成。
|
||||
|
||||
```bash
|
||||
uv run task openapi-docs
|
||||
```
|
||||
|
||||
这会将 openapi.json 保存到 `/docs/.vitepress/theme/openapi.json`。事实上这是对上面的 `nyahome openapi` 命令的封装。
|
||||
|
||||
此命令一般适合在 CI/CD 流水线中运行比较合适,或者在开发阶段需要预览 API 文档的渲染效果。
|
||||
@@ -0,0 +1 @@
|
||||
# 后端响应
|
||||
@@ -13,6 +13,8 @@ HTML。
|
||||
pnpm mjml mjml/filename.mjml -o public/templates/filename.j2
|
||||
```
|
||||
|
||||
NyaHome 的开发状况稳定之后,可能会再优化邮件模板的编译流程。
|
||||
|
||||
Jinja2 在 NyaHome 进程中读取模板,渲染变量,然后由 aiosmptplib 发送渲染好的 HTML 邮件。
|
||||
|
||||
## 在 PyCharm 中预览 mjml 源文件
|
||||
@@ -22,4 +24,21 @@ Jinja2 在 NyaHome 进程中读取模板,渲染变量,然后由 aiosmptplib
|
||||
:::warning
|
||||
MJML Support 插件不支持 JetBrains 远程开发。在远程开发(包括使用 Gateway 进行 WSL 开发)中,IDE client 无法对 mjml
|
||||
源文件进行实时预览。
|
||||
|
||||
MJML Support 的开发者表示该插件不会支持远程开发。
|
||||
:::
|
||||
|
||||
## 渲染变量
|
||||
|
||||
Jinja2 负责将需要动态渲染的变量渲染到经过变异的 Jinja2 模板中。如果你碰过 Django 或者 Flask,应该会对这种格式很熟悉。
|
||||
|
||||
```html
|
||||
<tr>
|
||||
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
|
||||
<div style="font-family:Maple Mono CN;font-size:13px;line-height:1;text-align:left;color:#000000;">{{ site_name }} 的管理员选择向此邮箱发送了一封测试邮件。此邮件不含有任何有效内容。</div>
|
||||
</td>
|
||||
</tr>
|
||||
```
|
||||
|
||||
本文档不过多设计 Jinja2 的模板变量写法。只需要知道,这些变量会在发送前被填入具体的内容。例如,<code v-pre>{{ site_name }}</code>
|
||||
会被渲染成 `config_manager.get("site_name", "Nya Home")`。
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# 开始
|
||||
|
||||
## 从代码仓库克隆项目
|
||||
@@ -0,0 +1,11 @@
|
||||
# 开始
|
||||
|
||||
## 从 uv 安装
|
||||
|
||||
NyaHome 作为一个 Python 模块发布在了 pypi 上,因此可以使用 uv 将 NyaHome 作为工具安装,然后随处运行。
|
||||
|
||||
你需要选定一个合适的目录,并在每次都从此处运行 NyaHome。NyaHome 需要在一个指定目录存放数据文件。
|
||||
|
||||
```bash
|
||||
uv tool install nyahome
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user