docs: make Chinese README the default
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
<!-- WEHUB_ZH_README -->
|
||||
> [!NOTE]
|
||||
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
|
||||
> [English](./README.en.md) · [原始项目](https://github.com/Naccl/NBlog) · [上游 README](https://github.com/Naccl/NBlog/blob/HEAD/README.md)
|
||||
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
|
||||
|
||||
<p align="center">
|
||||
<a href="https://naccl.top/" target="_blank">
|
||||
<img src="./pic/NBlog.png" alt="NBlog logo" style="width: 200px; height: 200px">
|
||||
@@ -72,7 +78,7 @@ UI 框架为 [Element UI](https://github.com/ElemeFE/element)
|
||||
|
||||
[Semantic UI](https://semantic-ui.com/):主要使用,页面布局样式,个人感觉挺好看的 UI 框架,比较适合前台界面的开发,语义化的 css,前一版博客系统使用过,可惜该框架 Vue 版的开发完成度不高,见 [Semantic UI Vue](https://semantic-ui-vue.github.io/#/)
|
||||
|
||||
[Element UI](https://github.com/ElemeFE/element):部分使用,一些小组件,弥补了 Semantic UI 的不足,便于快速实现效果
|
||||
[Element UI](https://github.com/ElemeFE/element):部分使用,一些小组件,弥补了 弥补了 Semantic UI 的不足,便于快速实现效果
|
||||
|
||||
文章排版:基于 [typo.css](https://github.com/sofish/typo.css) 修改
|
||||
|
||||
@@ -80,30 +86,30 @@ UI 框架为 [Element UI](https://github.com/ElemeFE/element)
|
||||
|
||||
## Telegram Bot 快捷操作
|
||||
|
||||
| 桌面 | Phone | Phone |
|
||||
| 桌面 | 手机 | 手机 |
|
||||
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
||||
|  |  |  |
|
||||
|
||||
若要启用该功能,参考以下步骤:
|
||||
|
||||
1. 向 @BotFather 申请一个 Bot,得到该 Bot 的`token`,格式如`1234567890:qwertyuiopasdfghjklzxcvbnm`
|
||||
2. 与该 Bot 私聊,随便发个消息,然后打开此链接`https://api.telegram.org/bot<botToken>/getUpdates`(替换链接中的 token),在`result -> message -> chat -> id`得到`chatId`
|
||||
3. 将获取的`token`和`chatId`填入`application-dev.properties`,并启用`comment.notify.channel=tg`
|
||||
4. 由于目前仅提供 webhook 的方式获取消息更新,所以`application-dev.properties`中的`blog.api`需要填写后端 API 的地址,并且**必须是`https`(Telegram 的要求)**,也就是说如果你没有公网 IP 或内网穿透或反向代理,那么在本地环境是无法测试的,建议直接扔服务器上
|
||||
1. 向 @BotFather 申请一个 Bot,得到该 Bot 的 `token`,格式如 `1234567890:qwertyuiopasdfghjklzxcvbnm`
|
||||
2. 与该 Bot 私聊,随便发个消息,然后打开此链接 `https://api.telegram.org/bot<botToken>/getUpdates`(替换链接中的 token),在 `result -> message -> chat -> id` 得到 `chatId`
|
||||
3. 将获取的 `token` 和 `chatId` 填入 `application-dev.properties`,并启用 `comment.notify.channel=tg`
|
||||
4. 由于目前仅提供 webhook 的方式获取消息更新,所以 `application-dev.properties` 中的 `blog.api` 需要填写后端 API 的地址,并且**必须是 `https`(Telegram 的要求)**,也就是说如果你没有公网 IP 或内网穿透或反向代理,那么在本地环境是无法测试的,建议直接部署到服务器上
|
||||
5. 国内通常情况下无法访问 TG 的 API,因此提供了两种方式
|
||||
1. 正向代理:配置`http.proxy.server`,通过你的代理发送请求
|
||||
2. 反向代理:可以直接使用我跑在 Cloudflare Workers 上的反代,默认配置即可。示例代码已放在`blog-api/cfworker-tg-api-open.js`,可自行搭建(**22.05.12 更新,近两天大陆绝大多数地区 `*.workers.dev` 域名已被墙,因此若仍想使用此反代方式访问 cf worker,需要将 Worker 绑定路由至自己的域名,详见[相关讨论](https://github.com/XIU2/CloudflareSpeedTest/issues/205)**)
|
||||
1. 正向代理:配置 `http.proxy.server`,通过你的代理发送请求
|
||||
2. 反向代理:可以直接使用我跑在 Cloudflare Workers 上的反代,默认配置即可。示例代码已放在 `blog-api/cfworker-tg-api-open.js`,可自行搭建(**22.05.12 更新,近两天大陆绝大多数地区 `*.workers.dev` 域名已被墙,因此若仍想使用此反代方式访问 cf worker,需要将 Worker 绑定路由至自己的域名,详见[相关讨论](https://github.com/XIU2/CloudflareSpeedTest/issues/205)**)
|
||||
|
||||
|
||||
|
||||
## 开发环境
|
||||
|
||||
1. 创建 MySQL 数据库`nblog`,并执行`/blog-api/nblog.sql`初始化表数据
|
||||
2. 修改配置信息`/blog-api/src/main/resources/application-dev.properties`
|
||||
1. 创建 MySQL 数据库 `nblog`,并执行 `/blog-api/nblog.sql` 初始化表数据
|
||||
2. 修改配置信息 `/blog-api/src/main/resources/application-dev.properties`
|
||||
3. 安装 Redis 并启动
|
||||
4. 启动后端服务
|
||||
5. 分别在`blog-cms`和`blog-view`目录下执行`npm install`安装依赖
|
||||
6. 分别在`blog-cms`和`blog-view`目录下执行`npm run serve`启动前后台页面
|
||||
5. 分别在 `blog-cms` 和 `blog-view` 目录下执行 `npm install` 安装依赖
|
||||
6. 分别在 `blog-cms` 和 `blog-view` 目录下执行 `npm run serve` 启动前后台页面
|
||||
|
||||
|
||||
|
||||
@@ -111,22 +117,22 @@ UI 框架为 [Element UI](https://github.com/ElemeFE/element)
|
||||
|
||||
一些常见问题:
|
||||
|
||||
- MySQL 确保数据库字符集为`utf8mb4`(”站点设置“及”文章详情“等许多表字段需要`utf8mb4`格式字符集来支持 emoji 表情,否则在导入 sql 文件时,即使成功导入,也会有部分字段内容不完整,导致前端页面渲染数据时报错)
|
||||
- MySQL 确保数据库字符集为 `utf8mb4`(「站点设置」及「文章详情」等许多表字段需要 `utf8mb4` 格式字符集来支持 emoji 表情,否则在导入 sql 文件时,即使成功导入,也会有部分字段内容不完整,导致前端页面渲染数据时报错)
|
||||
- 确保 Maven 和 NPM 能够成功导入现版本依赖,请勿升级或降低依赖版本
|
||||
- 数据库中默认用户名密码为`Admin`,`123456`,因为是个人博客,没打算做修改密码的页面,可在`top.naccl.util.HashUtils`下的`main`方法手动生成密码存入数据库
|
||||
- 注意修改`application-dev.properties`的配置信息
|
||||
- 注意修改`token.secretKey`,否则无法保证 token 安全性
|
||||
- `spring.mail.host`及`spring.mail.port`的默认配置为阿里云邮箱,其它邮箱服务商参考关键字`spring mail 服务器`(邮箱配置用于接收/发送评论提醒)
|
||||
- 如需部署,注意将`/blog-view/src/plugins/axios.js`和`/blog-cms/src/util/request.js`中的`baseUrl`修改为你的后端 API 地址
|
||||
- 大部分个性化配置可以在后台“站点设置”中修改,小部分由于考虑到首屏加载速度(如首页大图)需要修改前端源码
|
||||
- 数据库中默认用户名密码为 `Admin`、`123456`,因为是个人博客,没打算做修改密码的页面,可在 `top.naccl.util.HashUtils` 下的 `main` 方法手动生成密码存入数据库
|
||||
- 注意修改 `application-dev.properties` 的配置信息
|
||||
- 注意修改 `token.secretKey`,否则无法保证 token 安全性
|
||||
- `spring.mail.host` 及 `spring.mail.port` 的默认配置为阿里云邮箱,其它邮箱服务商参考关键字 `spring mail 服务器`(邮箱配置用于接收/发送评论提醒)
|
||||
- 如需部署,注意将 `/blog-view/src/plugins/axios.js` 和 `/blog-cms/src/util/request.js` 中的 `baseUrl` 修改为你的后端 API 地址
|
||||
- 大部分个性化配置可以在后台「站点设置」中修改,小部分由于考虑到首屏加载速度(如首页大图)需要修改前端源码
|
||||
|
||||
|
||||
|
||||
## 隐藏功能
|
||||
|
||||
- 在前台访问`/login`路径登录后,可以以博主身份(带有博主标识)回复评论,且不需要填写昵称和邮箱即可提交
|
||||
- 在 Markdown 中加入`<meting-js server="netease" type="song" id="歌曲id" theme="#25CCF7"></meting-js>` (注意以正文形式添加,而不是代码片段)可以在文章中添加 [APlayer](https://github.com/DIYgod/APlayer) 音乐播放器,`netease`为网易云音乐,其它配置及具体用法参考 [MetingJS](https://github.com/metowolf/MetingJS)
|
||||
- 提供了两种隐藏文字效果:在 Markdown 中使用`@@`包住文字,文字会被渲染成“黑幕”效果,鼠标悬浮在上面时才会显示;使用`%%`包住文字,文字会被“蓝色覆盖层”遮盖,只有鼠标选中状态才会反色显示。例如:`@@隐藏文字@@`,`%%隐藏文字%%`
|
||||
- 在前台访问 `/login` 路径登录后,可以以博主身份(带有博主标识)回复评论,且不需要填写昵称和邮箱即可提交
|
||||
- 在 Markdown 中加入 `<meting-js server="netease" type="song" id="歌曲id" theme="#25CCF7"></meting-js>`(注意以正文形式添加,而不是代码片段)可以在文章中添加 [APlayer](https://github.com/DIYgod/APlayer) 音乐播放器,`netease` 为网易云音乐,其它配置及具体用法参考 [MetingJS](https://github.com/metowolf/MetingJS)
|
||||
- 提供了两种隐藏文字效果:在 Markdown 中使用 `@@` 包住文字,文字会被渲染成「黑幕」效果,鼠标悬浮在上面时才会显示;使用 `%%` 包住文字,文字会被「蓝色覆盖层」遮盖,只有鼠标选中状态才会反色显示。例如:`@@隐藏文字@@`、`%%隐藏文字%%`
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user