专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Python基础教程项目(一)即时标记 python中标签怎么用

ins518 2024-09-25 22:37:45 技术文章 12 ℃ 0 评论

这是Python基础教程第20章的项目一:即时标记

目的就是要将一段文本根据文本的格式转换成HTML

原文本

原文本

添加标记后

添加标记

用浏览器打开

这个项目分为四个模块:

  1. 分析器:负责读取文本,管理其他的类

  2. 规则:检测文本块的类型(标题,列表等),使用相对应的规则

  3. 过滤器:处理一些内嵌元素,比如<em>

  4. 处理程序:为文本块添加标记

处理程序

处理程序是添加标记的程序

handlers.py

首先定义了一个超类,其中的start函数和end函数都是为了调用callback函数,callback函数负责在给定一个前缀(例如:start_)和一个名字(例如:paragraph)后查找正确的方法(start_parapraph)。sub方法则会返回一个函数用在re.sub中的第二个函数参数来使用,起到替换文本的作用

handlers.py

处理程序的超类中的callback和sub方法继承到这个类中,然后这个类就可以调用这些方法,这些方法很简单,就是输出开始标签和结束标签

过滤器

过滤器

这几个就是过滤器,很简单,是为了检测文本块中是否有em、url和mail格式的文本

规则

这个模块,抛开祖父类不说,其他类应该有的两个方法是condition和action,前者是用来判断读进来的字符串是不是符合自家规则,后者是用来执行操作的,所谓的执行操作就是指调用“处理程序模块”,输出前标签、内容、后标签。

rules.py

rules.py

分析器

这个模块的作用其实就是协调读入的文本和其他模块的关系。在往重点说就是,提供了两个存放“规则”和“过滤器”的列表,这么做的好处就是使得整个程序的灵活性得到了极大的提高,使得规则和过滤器变成的热插拔的方式,当然这个也归功于前面在写规则和过滤器时每一种类型的规则(过滤器)都单独的写成了一个类,而不是用if..else来区分。

makeup.py

makeup.py

补充:

util.py

这个文件就是读取文件中的内容,并分成文本块

欢迎大家关注头条号:热衷python和前端

如果有需要源码的同学就留言或者私聊我吧

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表