From 8a2ec06194b8ae7983ff9d24544a8e025661afed Mon Sep 17 00:00:00 2001 From: wehub-resource-sync Date: Mon, 13 Jul 2026 10:20:45 +0000 Subject: [PATCH] docs: make Chinese README the default --- README.md | 50 ++++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 388b27c..d02f510 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ + +> [!NOTE] +> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。 +> [English](./README.en.md) · [原始项目](https://github.com/Naccl/NBlog) · [上游 README](https://github.com/Naccl/NBlog/blob/HEAD/README.md) +> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。 +

NBlog logo @@ -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 | +| 桌面 | 手机 | 手机 | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | ![桌面客户端效果图](./pic/TelegramBot.png "桌面客户端效果图") | ![手机客户端效果图1](./pic/TgBotPhone1.png "手机客户端效果图1") | ![手机客户端效果图2](./pic/TgBotPhone2.png "手机客户端效果图2") | 若要启用该功能,参考以下步骤: -1. 向 @BotFather 申请一个 Bot,得到该 Bot 的`token`,格式如`1234567890:qwertyuiopasdfghjklzxcvbnm` -2. 与该 Bot 私聊,随便发个消息,然后打开此链接`https://api.telegram.org/bot/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/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 中加入`` (注意以正文形式添加,而不是代码片段)可以在文章中添加 [APlayer](https://github.com/DIYgod/APlayer) 音乐播放器,`netease`为网易云音乐,其它配置及具体用法参考 [MetingJS](https://github.com/metowolf/MetingJS) -- 提供了两种隐藏文字效果:在 Markdown 中使用`@@`包住文字,文字会被渲染成“黑幕”效果,鼠标悬浮在上面时才会显示;使用`%%`包住文字,文字会被“蓝色覆盖层”遮盖,只有鼠标选中状态才会反色显示。例如:`@@隐藏文字@@`,`%%隐藏文字%%` +- 在前台访问 `/login` 路径登录后,可以以博主身份(带有博主标识)回复评论,且不需要填写昵称和邮箱即可提交 +- 在 Markdown 中加入 ``(注意以正文形式添加,而不是代码片段)可以在文章中添加 [APlayer](https://github.com/DIYgod/APlayer) 音乐播放器,`netease` 为网易云音乐,其它配置及具体用法参考 [MetingJS](https://github.com/metowolf/MetingJS) +- 提供了两种隐藏文字效果:在 Markdown 中使用 `@@` 包住文字,文字会被渲染成「黑幕」效果,鼠标悬浮在上面时才会显示;使用 `%%` 包住文字,文字会被「蓝色覆盖层」遮盖,只有鼠标选中状态才会反色显示。例如:`@@隐藏文字@@`、`%%隐藏文字%%`