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")
Beispiel #2
0
def main():
    '''
    主函数,控制整个程序的运行
    '''
    handler = HTMLRenderer()
    parser = BasicTextParser(handler)
    # 将文件内容作为标准输入,sys.stdin 获取标准输入的内容,生成 IOWrapper 迭代器对象
    parser.parse(sys.stdin)
Beispiel #3
0
        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)
Beispiel #4
0
def main():
    handler=HTMLRenderer()