网站首页 > 技术文章 正文
这是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还是前端培训好呢?
你 发表评论:
欢迎- 05-30为什么说网上的md5加密解密站都是通过彩虹表解密的?
- 05-30一文读懂md5,md5有什么用,什么是md5加盐
- 05-30Java md5加密解密数据
- 05-30MD5是什么?如何进行MD5校验?
- 05-30专家教你简单又轻松的MD5解密方法,一看就会
- 05-30多学习才能多赚钱之:vscode怎么安装插件
- 05-30VSCode无限画布模式(可能会惊艳到你的一个小功能)
- 05-30VSCode神级Ai插件Cline:从安装到实战【创建微信小程序扫雷】
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)