def test_sub(self): from handlers import HTMLRenderer import re handler = HTMLRenderer() text_input = 'This *is* a test' expected_text = 'This <em>is</em> a test' result_text = re.sub('\*(.+?)\*', handler.sub('emphasis'), text_input) self.failUnless(result_text == expected_text, "Didn't got expected Text")
def main(): ''' 主函数,控制整个程序的运行 ''' handler = HTMLRenderer() parser = BasicTextParser(handler) # 将文件内容作为标准输入,sys.stdin 获取标准输入的内容,生成 IOWrapper 迭代器对象 parser.parse(sys.stdin)
self.handler.start('document') for block in blocks(file): for filter in self.filters: block = filter(block, self.handler) for rule in self.rules: if rule.condition(block): last = rule.action(block, self.handler) if last is True: break self.handler.end('document') class BasicTextParser(Parser): """ 在构造函数中添加规则和过滤器的Parser子类 """ def __init__(self, handler): Parser.__init__(self, handler) self.addRule(ListRule()) self.addRule(ListItemRule()) self.addRule(TitleRule()) self.addRule(HeadingRule()) self.addRule(ParagraphRule()) self.addFilter(r'\*(.+)\*', 'emphasis') self.addFilter(r'(http://[\.a-zA-Z/]+)', 'url') self.addFilter(r'([\.a-zA-Z]+@[\.a-zA-Z]+[a-zA-Z]+)', 'mail') handler = HTMLRenderer() parser = BasicTextParser(handler) parser.parse(sys.stdin)
def main(): handler=HTMLRenderer()