博客自动发布设计

我要开发同款
narule2022年05月23日
139阅读

作品详情

The design of an automatically updated blog | 自动更新博客的设计
Jul 25, 2020 by Narule
Updated Apr 2, 2021 14 min
The design of an automatically updated blog | 自动更新博客的设计
Convert markdown note files to blogs, and automatically update blog information

将markdown笔记文件转为博客,且能够自动更新博客信息

博客可以用来记笔记或者发布文章,是一种信息载体,我们可以把一些信息放到博客,方便在网络环境查阅’’

最近打算搭建个人博客,已知网络上的公共博客网站有博客园(国内),github(全球)都挺好用的,本人有在用,博客园和github也有挂的时候(访问不了),情况很少;

搭建博客能学习不少新知识,自定义功能,下面说说如何设计构建

GitHub源码地址: Selfpublog

功能已经写好可以访问 narule.net/blog 查看效果

created html:


created blog json info:


blog pageIndex:


Object | 功能
Blog site, the content is static files,all access static,reducing server pressure

博客网站,内容是静态文件,所有访问都是静态,减小服务器压力

Operating environment: Linux system, Easier to expand

运行环境:Linux 系统,更容易扩展

Monitor folder changes through shell scripts, monitor the modification of markdown files under the folder, and automatically generate corresponding HTML directories and files

通过shell脚本监控文件夹变化,监控文件夹下markdown文件的修改,自动生成对应的HTML目录和文件

Request | 要求
不能有较多依赖,尽量简单,并且能够较好地扩展(包括前端js html,后端linux)
自动化,除了markdown文件需要人自己上传,其他任何事情包括文章信息更新都自动去完成
markdown 个人认为是一种非常好的写作工具,markdown支持包括图片,表格,简单清晰。

Overall design ideas | 整体设计思路
将写好的markdown文件放入特定文件夹,服务器获得文件信息,将文件转为html文件,并将信息存入文件,使首页能否访问到html文件

access:用静态访问,先有一个index.html文件作为博客访问首页,有一个bloginfo文件用于存放文章(markdown)信息,然后有一个js文件 用于读取bloginfo中的博客信息,并显示在首页
monitor: linux 运行一个监控程序,监控markdown文件夹下面的变化,有文件变化,就获得文件信息并将信息更新到bloginfo
markdown2html: 当有文件新增时,将文件转为HTML格式存入博客访问目录(如有markdown文件新增,通过工具将markdown转为html)
bloginfo: 生成html文件后,将新增的markdown文章信息更新到bloginfo文件中
Specific plan | 具体实现
accesspage:静态文件访问形式,nginx实现,文件以 html css js为主,index做导航页,js中执行博客信息处理逻辑
filemonitor:文档文件以及文件夹的创建删除等动作监控,使用inotify-tools在linux服务器后台监控
markdown2html:markdown文件转html文件,这里采用markdown2html-converter工具
bloginfo extraction:文章及文件夹信息整理分类,信息采用json文件存储,用jq对文件读写更新信息
功能具体已经实现,本文主要讲linux服务器文件监控动作以及 markdown 文件转 html文件 实现
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论