最近用django+Vue实现了一个博客应用,原来的hexo的博客用着也挺好,想继续留着用,于是就想将hexo生成的.md的博客内容文件解析后直接写到django的博客数据库里做同步显示。

hexo生成的.md文件内容主要分两部分,一部分是博客的信息、一部分是博客内容,博客信息包括标题、目录、标签、发布日期等,博客内容就是具体博客写的内容主体了。

其中博客信息通过"—“来区分,夹在两个”—“块之间。博客的信息是yaml来描叙的需要解析并提取出相应的字段及内容,博客内容就更简单了直接是markdown描叙的不需要再解析了。
这里要做的事情就是提取两个”—“符号之间的内容,并解析相应的字段,提取两个”—"符号后面的内容作为博客的内容,形成字典,便于后面的入库。

代码示例如下:
yaml的解析可以直接用Python的PyYAML库

pip install PyYAML
# -*- coding: utf-8 -*-
""":author: XieJava:url: http://ishareread.com:copyright: © 2021 XieJava <xiejava@ishareread.com>:license: MIT, see LICENSE for more details.
"""
import yaml'''将md文件转成blog对象'''
def parseblog(blog_md_file):#读md文件md_f = open(blog_md_file, "r",encoding='utf-8')md_f_str=md_f.read()#解析两个---之间的内容pattern='---'blog_data={}pattern_list=list(pattern_search(md_f_str, pattern))if len(pattern_list)>=2:blog_info_str=md_f_str[pattern_list[0]+len(pattern):pattern_list[1]]blog_data=yaml.load(blog_info_str,Loader=yaml.SafeLoader)blog_data['content']=md_f_str[pattern_list[1]+len(pattern):]md_f.close()return blog_data'''分割符号匹配检索'''
def pattern_search(string,pattern):index=0while index<len(string)-len(pattern):index=string.find(pattern,index,len(string))if index==-1:breakyield indexindex+=len(pattern)-1if __name__ == '__main__':blog_data=parseblog('E:\\CloudStation\\personal\\xiejavablog\\myhexo\\myblog\\source\\_posts\\2022-07-19-Vue3解析markdown解析并实现代码高亮显示.md')print(blog_data)

效果:
可以看到hexo的md文件正确解析出来,形成字典。后续可以直接进行入库操作了。

Python的库还是很丰富实用的,用Python二十行代码就实现hexo的md文件格式解析。

源代码仓库:https://gitee.com/ishareblog/ishareblog

Python二十行代码实现hexo的md文件格式解析相关推荐

  1. python二十行代码教你批量采集超高清 jpg

    前言 嗨喽~大家好呀,这里是魔王呐 ! 壁纸,有多种的类别和各种不同的风格,如: 风景.美女.唯美.动漫.花卉.节日等适合您的高清桌面壁纸 今天我们就来采集一下叭~ 环境使用: Python 3.8 ...

  2. 【彼岸美图】二十行代码下载上千张高清美图壁纸【python爬虫】

    小白也能看懂的python爬虫,从零开始爬彼岸图网壁纸美图 你是否有过以下烦恼: 想找壁纸却找不到 找到的壁纸清晰度都不高? 下载图片太麻烦? 现在,你将可以用简简单单二十行代码解决这一切烦恼,还不赶 ...

  3. Python三十行代码实现简单人脸识别

    Python三十行代码实现简单人脸识别 一.库介绍 opencv,face_recognition,numpy,以及dlib 注意: 安装opencv速度可能过慢,需要更换国内镜像源,参考:https ...

  4. python对话机器人怎么搭建代码语言库_教你用python几十行代码编写对话机器人

    教你用python几十行代码编写对话机器人 最近闲来无事,就自己写点代码弄了一个对话机器人.当然,这个机器人是基于图灵机器人这个平台的接口的,因为对于我这个小白来说自己编写一个机器人代码还是颇有难度啊 ...

  5. 有了danmu,二十行代码轻松愉快对弹幕进行二次开发

    废话不多,先上演示代码,py2与py3及全平台支持. 源代码见这里,欢迎 Star 与 Fork. import time, sysfrom danmu import DanMuClientdef p ...

  6. Python爬虫:二十行代码获取某知名网站高质量视频,带视频讲解

    文章目录 一.写在前面 二.爬虫原理 三.案例实现 四.视频讲解 一.写在前面 兄弟们,自从上次爬虫热门后,我就没发高质量爬虫了,看的人都少了,唉~ 原来你们都是这样的人 二.爬虫原理 作用: 批量获 ...

  7. python一千行入门代码-用Python三十行代码快速生成1000条随机评教内容

    随着大家使用评教的人越来越多,评教的内容确实一尘不变,有点不太好,所以昨天花了一个晚上的时间,用Python撸了一个随机生成评教内容的程序. 代码已经全部推送到github上,点击阅读原文查看 原理很 ...

  8. 二十行代码去除图片水印(别再找工具修图啦)

    别再找工具修图啦,用代码吧 图片上常常有多余信息,如水印等,常常困扰啦多少痴男怨女. 在简书上看到一段有意思的内容.于是将它搬啦过来. 原地址:https://www.meiwen.com.cn/su ...

  9. python五十行代码获取很多很多个好看图片

    下载一个图片网址的主要函数,请求头的话可以根据不同的网址跟换相应的Cookie 啥的,截取文件名称可能也许要对应的修改下. # 下载图片 def download_img(img_url):heade ...

最新文章

  1. 如何使用charles对Android Https进行抓包
  2. 后台开发人员面试内容——操作系统(一)
  3. 大数据--循序渐进的大数据(2)
  4. C语言字符串输出函数puts()的作用是什么
  5. 【Python】pyinstaller模块打包的exe在windows环境无法使用问题汇总
  6. 我通过了阿里面试,但算法太差,还是没去!
  7. unity, sceneview 中拾取球体gizmos
  8. 游戏程序中的骨骼插件
  9. ORACLE JOB间隔时间参考
  10. ios微信浏览器扫码进入页面加载完成失效
  11. 微信支付商户平台登录方法详解 微信商户平台如何登录
  12. python画动态表情包_20行代码制作字符画版小黄鸭表情包
  13. # simulink高级应用-matlab function中查看变量
  14. 海康直连工具 海康测试工具,工程宝测试软件等
  15. Java菜鸟学习日记7
  16. ArcGIS编辑绘制图斑又慢又难?这些高效的处理技巧你值得拥有!
  17. Linux 网络命名空间
  18. python排课问题_排课常见问题
  19. 如何将linux系统制作成iso镜像文件?通过Mondo Rescue工具将linux系统制作成ISO镜像
  20. linux sata硬盘热交换,浅谈希捷7200.7硬盘热交换数据恢复教程.pdf

热门文章

  1. 从游戏机、计算机、智能手机的过去五十年 看VR和AR的未来五十年
  2. 小编我使用 Vue3+Ts+Vite2 写了一个美女小黄站
  3. 漏洞复现----42、Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)
  4. LimeSDR DVB实验
  5. 20221208AD域控服务器问题解决记录--lsass.exe上传流量异常
  6. Java 中String构造方法
  7. 使用John the ripper破解密码
  8. 什么是高并发高可用一致性?| 现代网站架构发展 | C 语言实现布隆过滤器
  9. 魔兽世界地图插件制作代码、
  10. 经典题:罗马数字和阿拉伯数字的相互转换