An open API service indexing awesome lists of open source software.

https://github.com/yangfei4913438/mdx-blog

一个基于mdx二次开发的笔记博客系统,完全开源和免费
https://github.com/yangfei4913438/mdx-blog

Last synced: 6 months ago
JSON representation

一个基于mdx二次开发的笔记博客系统,完全开源和免费

Awesome Lists containing this project

README

        

## 项目说明

- 项目进展

第一阶段开发基本完成,陆陆续续开始添加文章了。

- 项目部署流程

大概说一下吧,就是当主分支的特定目录下的文件发生变化,github actions 会调用我写的部署脚本,将当前源码推送到我的阿里云服务器上。

推送完成之后,会执行一个我预留在云服务器上的,一个用于 docker 构建的 shell 脚本.

这个 shell 脚本,会先构建一个新的镜像,然后停掉 next 服务的容器,然后删掉容器,再删掉之前镜像。

最后用新的镜像,跑一个 next 服务的容器。

服务器上还有一个 nginx 容器, 它是服务器上的 web 反向代理服务。 和项目有关的,也就是和 next 的 docker 网络一致,可以代理 next 服务。

当然,你也可以直接安装一个 nginx 在服务器上,提供反向代理服务,原理都是一样的。

流程大致就是这样,还是很清晰的。如果有问题,可以找我交流。

#### 运行项目

```bash
npm i
npm run dev
```

#### 如何写博客?

- 首先在 `src/core/config.js` 文件里面配置一级目录和二级目录。目前一二级目录是必须有的,暂时没有配置三级目录。
- 对应的,在 `src/markdown/post` 目录下,创建刚才指定的两级目录。
- 在二级目录下,创建你的 mdx 或者 md 文件。
- 文件名称的格式: 0000-文件名称.md(x), 文件名称只和 url 相关,和展示内容无关。0000 表示文件序号,便于文件管理。
- 其他,按我已经有的博客文件格式写博客即可。

> 头部声明字段说明
```
--- 开头固定标记
index: 文章在当前二级目录下的排序,值越小,排序越靠前
title: 文章标题
description: 文章描述,会在文章列表里面显示
author: 作者名称
tags: [一级目录名称, 二级目录名称, 以逗号分隔的其他标签数组]
date: 文章编写/更新时间 (看文章的人,只会关心文章的实时性,没人会关心文章的历史性,所以用一个日期字段就行了)
--- 结尾固定标记
```
> 注意:
>
> - 这段声明是 yaml 格式的数据,如果你的 value 值里面有`:`符号, 你需要用单引号或者双引号来修饰一下value,否则会引起yaml解析异常。
> - 以逗号分隔的其他标签数组里面,不要写其他一级或二级目录的名称,否则会导致文章数量的统计异常。因为我是基于标签数量的统计方式,来实现的文章计数。

- 最后,提交博客到代码仓库,触发自动部署流程。

#### 网站介绍

这个比较长,我写在[网站的关于页面](https://www.yangfei.wiki/about)了, 点击左侧链接,可以直接跳转到我的个人网站查看。