hexo文章发布系统,基于zweb框架打造。 项目地址地址:Writer Github地址
-
backend 安装依赖 在Writer/backend/ 目录下,依次执行
npm install
和pm2 install typescript
, 如果pm2提示找不到,请在Writer/backend/ 目录下执行./node_modules/.bin/pm2 install typescript
-
frontend 依赖安装 在Writer/frontend/writer/目录下,依次执行
npm install
和npm run build
- 配置Hexo根路径
Writer/backend/config/{dev.config.ts, production.config.ts}中配置
hexoRoot
字段 - 配置博客URL
Writer/backend/config/{dev.config.ts, production.config.ts}中配置
hexoHost
字段’ - 配置postsPath
Writer/backend/config/{dev.config.ts, production.config.ts}中配置
postsPath
字段’。postsPath
是相对于hexoRoot
的hexo文章存放目录,也就是markdown文件存放的位置,一般为${hexoRoot}/source/_posts - 配置cmdsOnUpdateInHexoRoot, 此字段是文章修改更新后,在
hexoRoot
目录下执行的命令 Writer/backend/config/{dev.config.ts, production.config.ts}中配置cmdsOnUpdateInHexoRoot
字段’
配置示例:
import { Config } from './config.proto'
const DevConfig: Config = {
hexoRoot: '/home/zayfen/Github/hexo',
hexoHost: 'https://www.zayfen.com',
postsPath: '/source/_posts',
cmdsOnUpdateInHexoRoot: ['./node_modules/.bin/hexo generate',
'./node_modules/.bin/hexo deploy',
'./node_modules/.bin/hexo algolia']
}
export default DevConfig
账户配置在Writer/data/account.json文件中。
账号分为3中权限,admin权限用户可以看到所有的文章,并且可以更新,删除他人文章,新建自己的文章;writer 权限用户,只能查看到自己的文章,可以新增,更新,删除自己的文章; read 权限用户,只能查看自己的文章,任何文章修改动作都被禁止。
账户配置原型:
{
${UserName}: {
passwd: ${UserPassword},
aliasName: ${UserAliasName},
email: ${UserEmail},
privilege: ["admin" | "write" | "read"]
},
...
}
账户配置示例:
{
"zayfen": {
"passwd": "xxxxx",
"aliasName": "张云峰",
"email": "zhangyunfeng0101@gmail.com",
"privilege": "admin"
},
"writer1": {
"passwd": "12345678",
"aliasName": "writer1",
"email": "zhangyunfeng0101@gmail.com",
"privilege": "write"
},
"reader1": {
"passwd": "12345678",
"aliasName": "reader1",
"email": "zhangyunfeng0101@gmail.com",
"privilege": "read"
}
}
在Writer/backend/目录下,执行npm run start
启动production环境的服务,服务启动之后,会自动
解析以及存在的文章(markdown文件),并将数据存储到NeDB中。
假设writer服务的域名是writer.hexo.com (此域名由用户自己配置)
在浏览器中输入 writer.hexo.com/login 进入登录页面,用户输入账号名和密码进入Home页面
home页面的地址是writer.hexo.com/。
用户在已登录的情况下,才能进入home页面,否则会自动跳转到登录页面
此页面是更新和新建文章的页面,地址是writer.hexo.com/publish,
当地址后面带有?id=xxx
参数时,表示更新id为xxx的文章,否则即为新建文章。