🐭喂汁,用Python写个专属Markdown转换工具(中)

简介: 一直使用 Markdown 语法编写文章,然后用Markdown转换工具转换下

② 两鞭 → 标题、粗体、段落


h3和h2类似,都是直接将样式文本替换为{{text}}


网络异常,图片无法展示
|


h4稍微麻烦一点,因为前面还传多一个顺序参数:


网络异常,图片无法展示
|


接着重写heading函数,根据不同的level进行渲染:


网络异常,图片无法展示
|


接着传入下述mardown字符串:


网络异常,图片无法展示
|


运行,把渲染后的HTML贴到微信编辑器校验下:


网络异常,图片无法展示
|


可以,效果是针不戳,尔后是粗体及段落样式:


网络异常,图片无法展示
|


运行后,把生成的样式贴到公号编辑器康康效果:


网络异常,图片无法展示
|


换行全没了,原因是:微信会自动滤除文本结点中的\n换行符。 一个简单的解决方法就是:在渲染段落文本时,将\n替换为<br>


修改下渲染处逻辑:


网络异常,图片无法展示
|


校验下效果:


网络异常,图片无法展示
|


③ 三鞭 → 表格、列表


表格的话直接用的微信编辑器自带的表格,样式如下:


网络异常,图片无法展示
|


对应代码如下:


网络异常,图片无法展示
|


mistune需启用plugin_table工具,才能解析表格,提供了下述可供覆盖的函数:


网络异常,图片无法展示
|


写个简单的demo试试康:


网络异常,图片无法展示
|


网络异常,图片无法展示
|


可以看到table_head中获取到了表头的文本结构,其他几个函数同样可获得不同部位的表结构。


但是,我最后还是选择了重写table()函数,因为表格的渲染是连贯的,如果每个函数单独渲染,最后塞到一个<table>里非常麻烦。


另外,公号大多时候是在手机上阅读,屏幕宽就那么点,一般建议两列的表格,这里我另外定义一个类Cell:


网络异常,图片无法展示
|


先来编写模板吧,预期是传入 表头列表表内容列表,然后遍历渲染:


网络异常,图片无法展示
|


模板弄完,接着就是数据处理了,提取表头及表内容,塞到列表中,打印下text:


网络异常,图片无法展示
|


呕吼,直接用lxml提取一波:


网络异常,图片无法展示
|


丢个测试markdown进来:


网络异常,图片无法展示
|


复制生成样式至编辑器,检验下效果:


网络异常,图片无法展示
|


可以,舒服,然后是无序列表,也是使用编辑器自带样式:


网络异常,图片无法展示
|


抠出模板:


网络异常,图片无法展示
|


重写函数渲染模板:


网络异常,图片无法展示
|


传参校验:


网络异常,图片无法展示
|


Tips:把渲染后的HTML贴到编辑器处,空白处按下回车,无序列表才能正确缩进!


相关文章
|
17天前
|
机器学习/深度学习 数据可视化 搜索推荐
Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。
【7月更文挑战第5天】Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。流程包括数据获取、预处理、探索、模型选择、评估与优化,以及结果可视化。示例展示了用户行为、话题趋势和用户画像分析。Python的丰富生态使得社交媒体洞察变得高效。通过学习和实践,可以提升社交媒体分析能力。
30 1
|
19天前
|
机器学习/深度学习 数据可视化 数据挖掘
Python数据分析工具有哪些
【7月更文挑战第3天】Python数据分析工具有哪些
122 58
|
8天前
|
SQL API Python
`bandit`是一个Python静态代码分析工具,专注于查找常见的安全漏洞,如SQL注入、跨站脚本(XSS)等。
`bandit`是一个Python静态代码分析工具,专注于查找常见的安全漏洞,如SQL注入、跨站脚本(XSS)等。
|
8天前
|
网络协议 安全 Shell
`nmap`是一个开源的网络扫描工具,用于发现网络上的设备和服务。Python的`python-nmap`库允许我们在Python脚本中直接使用`nmap`的功能。
`nmap`是一个开源的网络扫描工具,用于发现网络上的设备和服务。Python的`python-nmap`库允许我们在Python脚本中直接使用`nmap`的功能。
|
5天前
|
数据采集 并行计算 数据处理
工具人必看:Python并发编程工具箱大揭秘,IO与CPU密集型任务的最佳拍档!
【7月更文挑战第16天】Python并发编程助力IO密集型(asyncio+aiohttp,异步Web爬虫示例)和CPU密集型(multiprocessing,并行计算数组和)任务。asyncio利用单线程异步IO提升Web应用效率,multiprocessing通过多进程克服GIL限制,实现多核并行计算。善用这些工具,可优化不同场景下的程序性能。
10 1
|
17天前
|
数据可视化 数据挖掘 API
数据可视化秘籍聚焦Python的Matplotlib和Seaborn库,它们是数据分析的得力工具。
【7月更文挑战第5天】数据可视化秘籍聚焦Python的Matplotlib和Seaborn库,它们是数据分析的得力工具。Matplotlib是基础库,提供高度自定义的2D图表,而Seaborn在其上构建,提供美观的统计图形。文章介绍了如何用两者画线图、散点图、条形图、饼图和直方图,展示数据趋势和关系。
|
25天前
|
数据可视化 数据挖掘 知识图谱
精选:15款顶尖Python知识图谱(关系网络)绘制工具,数据分析的强力助手
这里有15款免费工具推荐:NetworkX(Python基础),Graph-tool(C++速度),Graphviz(可视化库),ipycytoscape(Jupyter集成),ipydagred3,ipySigma(NetworkX + Web),Netwulf(交互式),nxviz(Matplotlib绑定),Py3plex(复杂网络分析),Py4cytoscape(Python+Cytoscape),pydot(Graphviz接口),PyGraphistry(GPU加速),python-igraph,pyvis(交互式图形),SNAP(大规模网络分析)。绘制和理解网络图从未如此简单!
32 0
|
1月前
|
Linux 开发者 iOS开发
Python常用打包工具比较
以上是常用的四种打包工具比较。各自有着自己的优缺点,开发者可以根据自己的需求来选择合适的工具。如果你只需要在 Windows 平台上运行应用程序,可以选择 py2exe。如果你需要跨平台支持,并且希望打包过程简单,可以选择 Briefcase。如果你需要支持多个平台,并且打包过程比较复杂,可以选择 cx_Freeze。如果你需要支持多个平台,并且对第三方库的兼容性有较高的要求,可以选择 PyInstaller。
23 4
|
8天前
|
数据可视化 Python
时间序列分析是一种统计方法,用于分析随时间变化的数据序列。在金融、经济学、气象学等领域,时间序列分析被广泛用于预测未来趋势、检测异常值、理解周期性模式等。在Python中,`statsmodels`模块是一个强大的工具,用于执行各种时间序列分析任务。
时间序列分析是一种统计方法,用于分析随时间变化的数据序列。在金融、经济学、气象学等领域,时间序列分析被广泛用于预测未来趋势、检测异常值、理解周期性模式等。在Python中,`statsmodels`模块是一个强大的工具,用于执行各种时间序列分析任务。
|
8天前
|
存储 开发者 网络架构
在Python中,`setuptools`是一个强大的工具,用于帮助开发者打包和分发他们的Python代码库。
在Python中,`setuptools`是一个强大的工具,用于帮助开发者打包和分发他们的Python代码库。