Python-即时标记

该项目包含用于实时标记的Python代码,包括README文件,资源部分,以及util、handlers和rules等核心模块,详细解释了项目的运行逻辑和类型判定规则。
摘要由CSDN通过智能技术生成
README

项目详情

python基础编程 第20章 项目1:自动添加标签

运行

python markup.py < test_input.txt > test_output.html

部分逻辑说明

过滤器 filters 替换特定元素为HTML元素
规则器 rules 根据判定条件,打印特定HTML头尾及Data元素

类型判定规则

1.标题,只包含一行的文本块,长度最多为70个字符,以冒号结束的文本块不属于标题
2.题目,文档中的第一个文本块,前提条件是它属于标题
3.列表项, 以连字符(-)打头的文本块
4.列表,以紧跟在非列表项文本块后面的列表项开头,以后面紧跟着非列表项文本块的列表项结束

注意

规则的先后顺序很重要,比如列表项(li)/列表(ul)
Resource

util.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-

def lines(file):
    for line in file: yield line
    yield '\n'


def blocks(file):
    block = []
    for line in lines(file):
        if line.strip():
            block.append(line)
        elif block:
            yield ''.join(block).strip()
            block = []

handlers.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-

class Handler:
    """
    Handler类是所有处理程序的基类。
    """

    # 方法callback根据指定的 前缀 和 名称 查找相应的方法。
    def callback(self, prefix, name, *args):
        method = getattr(self, prefix + name, None)
        if callable(method): return method(*args)

    # 辅助方法start,调用callback
    def start(self, name):
        self.callback('start_', name)

   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值