代码之家  ›  专栏  ›  技术社区  ›  Vittorio Romeo

使用“docx”自定义样式包装代码块而不丢失语法高亮显示

  •  0
  • Vittorio Romeo  · 技术社区  · 6 年前

    我想写一本书 panflute 过滤器(从标记到 .docx )查找所有代码块并将它们包装到自定义 .docx文件

    def action(elem, doc):
        if type(elem) == pf.CodeBlock:
            return pf.Div(elem, attributes={'custom-style': 'Source Code Boxed'})
    
    pf.run_filter(action)
    

    但是,这不起作用-似乎语法高亮显示样式覆盖了我想要的样式 'Source Code Boxed' 风格。我看不出输出有什么不同(与不使用过滤器相比)。我找到了一个解决方法,但它很难看,并且丢失了所有语法突出显示:

    def action(elem, doc):
        if type(elem) == pf.CodeBlock:
            elemStr = pf.stringify(elem)
            lines = [pf.LineItem(pf.Str(x)) for x in elemStr.splitlines()]
            return pf.Div(pf.LineBlock(*lines), 
                    attributes={ 'custom-style': 'Source Code Boxed'})
    
    pf.run_filter(action)
    

    输出),但所有语法高亮显示都将丢失。

    有没有办法达到我想要的结果? 我希望代码被包围在一个盒子里(感谢我的 '源代码装箱'

    0 回复  |  直到 6 年前
    推荐文章