网站首页 > 技术文章 正文
这是Python基础教程第20章的项目一:即时标记
目的就是要将一段文本根据文本的格式转换成HTML
原文本
原文本
添加标记后
添加标记
用浏览器打开
这个项目分为四个模块:
分析器:负责读取文本,管理其他的类
规则:检测文本块的类型(标题,列表等),使用相对应的规则
过滤器:处理一些内嵌元素,比如<em>
处理程序:为文本块添加标记
处理程序
处理程序是添加标记的程序
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和前端
如果有需要源码的同学就留言或者私聊我吧
猜你喜欢
- 2025-05-27 Python、JavaScript和Rust的Web性能比较
- 2025-05-27 「全网首发」言简意赅的Python语法,内附详细知识点和思维导图
- 2024-09-25 Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 2024-09-25 python中的logging日志模块(一) logging python3
- 2024-09-25 node之外的后端语言,Java、Python、Go 哪个适合web前端工程师?
- 2024-09-25 Python Web全栈之旅02--Web前端●走入HTML的世界(中)
- 2024-09-25 7个Python包:web前端开发者必备,基础到高级的基石
- 2024-09-25 Python Web全栈之旅10--Web前端●CSS定位
- 2024-09-25 我适不适合学前端?看完老程序员的这篇文章给你答案
- 2024-09-25 零基础选择Java、PHP、Python还是前端培训好呢?
你 发表评论:
欢迎- 644℃几个Oracle空值处理函数 oracle处理null值的函数
- 633℃Oracle分析函数之Lag和Lead()使用
- 626℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 625℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 619℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 607℃【数据统计分析】详解Oracle分组函数之CUBE
- 598℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 583℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)