Skip to content

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

License

Notifications You must be signed in to change notification settings

yangfei4913438/mdx-blog

Repository files navigation

项目说明

  • 项目进展

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

  • 项目部署流程

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

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

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

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

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

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

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

运行项目

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解析异常。
    • 以逗号分隔的其他标签数组里面,不要写其他一级或二级目录的名称,否则会导致文章数量的统计异常。因为我是基于标签数量的统计方式,来实现的文章计数。
  • 最后,提交博客到代码仓库,触发自动部署流程。

网站介绍

这个比较长,我写在网站的关于页面了, 点击左侧链接,可以直接跳转到我的个人网站查看。

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published