Python =正确 上下文['code_colorizer']=block.value['colors']如果block.value['colors']否则为“默认” 返回上下文
这将确保当页面上有一块源代码时,CSS样式表始终可用 现在,让我们解决上面代码中的另一个明显错误。用于设置样式表的模板代码无法正常工作。它生成的是一些URL转义文本,如:Python =正确 上下文['code_colorizer']=block.value['colors']如果block.value['colors']否则为“默认” 返回上下文,python,wagtail,wagtail-streamfield,Python,Wagtail,Wagtail Streamfield,这将确保当页面上有一块源代码时,CSS样式表始终可用 现在,让我们解决上面代码中的另一个明显错误。用于设置样式表的模板代码无法正常工作。它生成的是一些URL转义文本,如: 实际需要的是: {%block-extra\u-css%} {%if有\u代码\u块%} {%if代码\着色程序%} {使用'css/highlight|添加:code_colorizer |添加:'.css'作为colorizer_choice%} {%endwith%} {%else%} {%endif%} {%end
实际需要的是:
{%block-extra\u-css%}
{%if有\u代码\u块%}
{%if代码\着色程序%}
{使用'css/highlight|添加:code_colorizer |添加:'.css'作为colorizer_choice%}
{%endwith%}
{%else%}
{%endif%}
{%endif%}
{%endblock%}
实际上,由于get_context
函数总是设置“default”颜色设置器,如果用户没有选择一个,则可以完全删除{%if-code\u颜色设置器%}
检查及其{%else%}
分支
对于想要使用此代码的任何人,请注意,在同一页面上使用不同语法突出显示样式的多个代码块将无法按预期工作。实际上,page类只包括最后一个代码块的选定样式表。我可以添加所有不同的CSS文件,如果在每个代码块中都选择了,但是由于pygments highlighter使用相同的CSS类名,在HTML文件中使用多个样式仍然不能像您希望的那样工作。当然,可以使用pygments API为每个突出显示样式生成一个带有特定类的封闭的
标记(在代码块的呈现函数中),然后编辑相应的CSS文件,将同一类预先添加到每个元素,但是这超出了这个问题的范围。请您提供更多关于您在get\u context
方法中已经尝试但未能实现的内容的详细信息?访问self.body
肯定会提供您感兴趣的数据。谢谢,我的错误是我忘了发布页面,所以当我在body块上循环时,新块没有包括在内。。。