templating.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:Canella-CMS 作者: mush42 项目源码 文件源码
def parse(self, parser):
        lineno = next(parser.stream).lineno
        parts = [parser.stream.expect('name').value]
        while parser.stream.current.type != 'block_end':
            parser.stream.expect('dot')
            parts.append(parser.stream.expect('name').value)
        body = parser.parse_statements(['name:endeditable'], drop_needle=True)
        call = self.call_method(
            '_editable_loader',
            [nodes.Name(parts[0], 'load'), nodes.Const(parts[1:]), nodes.Const(not body)])
        output_nodes = [
            nodes.Output([nodes.MarkSafe(call)])
        ]
        output_nodes.extend(body)
        output_nodes.extend([
            nodes.Output([nodes.MarkSafe(nodes.TemplateData('</span>'))]),
        ])
        block_name = '%s_%s_%d' %(parts[-2], parts[-1], random.randint(0, 500))
        return nodes.Block(block_name, output_nodes, True)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号