🐭喂汁,用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贴到编辑器处,空白处按下回车,无序列表才能正确缩进!


相关文章
|
12天前
|
JavaScript 前端开发 开发者
探索 DrissionPage: 强大的Python网页自动化工具
DrissionPage 是一个基于 Python 的网页自动化工具,结合了浏览器自动化的便利性和 requests 库的高效率。它提供三种页面对象:ChromiumPage、WebPage 和 SessionPage,分别适用于不同的使用场景,帮助开发者高效完成网页自动化任务。
64 4
|
2月前
|
iOS开发 MacOS Python
【10月更文挑战第1天】「Mac上学Python 1」入门篇1 - 安装Typora与Markdown编辑技巧
本篇将详细介绍如何在Mac系统上安装Typora这款简洁高效的Markdown编辑器,并学习Markdown常用语法。通过本篇,用户能够准备好记录学习笔记的工具,并掌握基本的文档编辑与排版技巧,为后续学习提供便利。
155 1
【10月更文挑战第1天】「Mac上学Python 1」入门篇1 - 安装Typora与Markdown编辑技巧
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言与Python:比较两种数据分析工具
R语言和Python是目前最流行的两种数据分析工具。本文将对这两种工具进行比较,包括它们的历史、特点、应用场景、社区支持、学习资源、性能等方面,以帮助读者更好地了解和选择适合自己的数据分析工具。
34 2
|
2月前
|
C语言 开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第21天】在Python的世界里,代码的优雅与效率同样重要。列表推导式(List Comprehensions)作为一种强大而简洁的工具,允许开发者通过一行代码完成对列表的复杂操作。本文将深入探讨列表推导式的使用方法、性能考量以及它如何提升代码的可读性和效率。
|
2月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
52 2
|
2月前
|
测试技术 Python
Python MagicMock: Mock 变量的强大工具
Python MagicMock: Mock 变量的强大工具
|
2月前
|
存储 Python
python数据类型、debug工具(一)
python数据类型、debug工具(一)
|
1月前
|
C语言 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第24天】在Python编程的世界中,追求代码的简洁性和可读性是永恒的主题。列表推导式(List Comprehensions)作为Python语言的一个特色功能,提供了一种优雅且高效的方法来创建和处理列表。本文将深入探讨列表推导式的使用场景、语法结构以及如何通过它简化日常编程任务。
|
2月前
|
网络协议 IDE iOS开发
Python编程---简单的聊天工具
Python编程---简单的聊天工具
|
2月前
|
数据处理 开发者 Python
Python编程中的列表推导式:简洁而强大的工具
【9月更文挑战第35天】在Python的众多特性中,列表推导式以其简明扼要和强大功能脱颖而出。本文不仅将介绍列表推导式的基础知识,还将探讨其背后的逻辑,并辅以实际代码示例。无论你是初学者还是有经验的开发者,都能从中获取新的见解和应用技巧。
34 5