【技术博客】利用Python将markdown文档转为html文档
利用Python将markdown文档转为html文档
v1.0
作者:FZK
元素简单的md文件
Python中自带有一个markdown库,你可以直接这样使用
md_file = open("file.md","r",encoding='utf-8')
txt = md_file.read()
html = markdown.Markdown(txt)
较为复杂的md文件
由于我们需要转化的md文件比较复杂,存在表格、MathJax公式(latex中所用的公式)等复杂元素的时候,这种方式就不能完全转化。需要使用另一个py库:
pip install python-markdown-math
具体代码如下:
import markdown
from mdx_math import MathExtension
html_head_file = open("html_head.txt","r",encoding='utf-8')
html_head = html_head_file.read()
html_head_file.close()
html_tail = "\n</body>\n</html>"
html_body = ""
html_body_file = open("file.md","r",encoding='utf-8')
html_body_txt = html_body_file.read()
html_body_file.close()
# 所支持的复杂元素
exts = ['markdown.extensions.extra', 'markdown.extensions.codehilite','markdown.extensions.tables','markdown.extensions.toc',MathExtension(enable_dollar_delimiter=True)]
md = markdown.Markdown(extensions = exts)
html_body = md.convert(html_body_txt)
html = html_head + html_body + html_tail
html_file = open("file.html","w",encoding='utf-8')
html_file.write(html)
html_file.close()
其中html_head_file包含对MathJax的支持,以及样式的优化(我们使用了github中的md样式戳链接)
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML' async></script>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<link href="github.css" rel="stylesheet">
</head>
<body>
效果:

【技术博客】利用Python将markdown文档转为html文档的更多相关文章
- [技术博客] 利用SharedPreferences来实现登录状态的记忆功能
[技术博客] 利用SharedPreferences来实现登录状态的记忆功能 一.SharedPreferences简介 SharedPreferences是Android平台上一个轻量级的存储辅助类 ...
- 技术博客(初用markdown)。
技术博客 菜鸟教程在这个网站我学到许多有趣的东西,并且弥补了我之前的一些不足之处. 以下为我学习到的内容 输出不同的三位数 以下为代码和输出结果 *** #include<stdio.h> ...
- 技术博客(初用markdown)
技术博客 菜鸟教程在这个网站我学到许多有趣的东西,并且弥补了我之前的一些不足之处. 以下为我学习到的内容. 1 如果想输出多个多位数的时候,可以尝试用多个if语句.如果需要输出3为数的时候,设置三个变 ...
- [技术博客] 利用Vagrant+virtualbox在windows下进行linux开发
目录 加速box安装的方法 root账户登录 换源教程 安装rvm 访问rails server RubyMine连接虚拟机上的解释器 作者:庄廓然 在windows下进行linux开发:利用Vagr ...
- [技术博客]利用第三方框架react-native-swipeout实现左右滑动出现按钮
在之前的开发中,为了实现用户不同手势操作能够对应不同的功能,我们考虑使用React-Native的API--PanResponder,实现识别用户的手势,实现不同的功能.但我们很快就发现,这样简单的实 ...
- 【MonkeyRunner】[技术博客]用python编写脚本查看设备信息
[MonkeyRunner]用python编写脚本查看设备信息 原以为是个简单的操作,在实践的时候发现了一些问题. python脚本 test.py: from com.android.monkeyr ...
- [转]有哪些值得关注的技术博客(Java篇)
有哪些值得关注的技术博客(Java篇) 大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1. ...
- [技术博客]iview组件样式踩坑记录
[技术博客]iview组件样式踩坑记录 iview官方文档. 在本次项目开发中,前端项目主要使用vue框架+iview组件构建,其中iview组件在使用过程中遇到了许多官方文档中没有明确说明或是很难注 ...
- 技术人如何利用 github+Jekyll ,搭建一个独立免费的技术博客
上次有人留言说,技术博客是程序员的标配,但据我所知绝大部分技术同学到现在仍然没有自己的技术博客.原因有很多,有的是懒的写,有的是怕写不好,还有的是一直想憋个大招,幻想做到完美再发出来,结果一直胎死腹中 ...
随机推荐
- JavaScript变量与数据类型
变量 javascript的变量很松散,每个变量初始仅仅用于保存一个占位符而已.定义变量的操作符是 var, var 后面跟着一个标识符--当作变量的名字. 比如: var myname;//定义了一 ...
- Oracle的数据类型和表的操作
学习笔记: Oracle数据类型 1.创建表 ---创建一个person表 create table person( pid ), pname ) ); 2.修改表结构 --添加一列 )); --修改 ...
- 在Visual studio上发布web项目,并添加到IIS服务器上。
1.首先发布到IIS上 https://blog.csdn.net/kydkong/article/details/49563193 2.NET4.0部署出错HTTP 错误500.21 - Inter ...
- spring boot 连接 Oracle 的 application的简单配置
server.port=8090 //Tomcat服务端口号spring.datasource.driver-class-name= oracle.jdbc.driver.OracleDriver / ...
- windows 10 配置Java 环境变量(5步骤)
前提:1.windows 10 系统(不是win8,也不是win7)2.安装JDK步骤 1. 打开 环境变量窗口右键 This PC(此电脑) -> Properties(属性) -> A ...
- 1-Consul系列文章
使用Consul做服务发现的若干姿势 Consul的反熵 [Consul]Consul架构-简介
- java内存溢出实战
通过设置-XX:+HeapDumpOnOutOfMemoryError 自动生成dump文件,进行分析内存溢出原因 1.堆溢出堆溢出原因莫过于对象太多导致. 错误:java.lang.OutOfMem ...
- iOS11里判断Safari浏览器是无痕模式还是正常模式?
var isPrivate = false; try { window.openDatabase(null, null, null, null); } catch (_) { isPrivate = ...
- vue3修改link标签默认icon无效问题
vue3修改link中标签默认icon,vue3初次使用的时候不好好阅读配置难免会遇到一些坑,本人在项目完结的时候打算把浏览器的导航小icon图标给替换了,可是并没有那么顺利,那么如何在vue3中替换 ...
- Object.assign的使用
语法: Object.assign(target, ...sources)//target目标对象,sources源对象,返回值目标对象 使用说明: 如果目标对象中的属性具有相同的键,则属性将被源对象 ...