如何使用flask-flatpages突出显示语法

Posted

技术标签:

【中文标题】如何使用flask-flatpages突出显示语法【英文标题】:how to highlight syntax using flask-flatpages 【发布时间】:2017-01-12 11:01:10 【问题描述】:

我最近使用flask、flask-flatpages 和flask-freeze 构建了一个网站,我想知道在我的markdown 文件中使用块代码时如何突出显示语法。

这些是我安装的包:

click (6.6) Flask (0.11.1) Flask-FlatPages (0.6) Frozen-Flask (0.13) itsdangerous (0.24) Jinja2 (2.8) Markdown (2.6.7) MarkupSafe (0.23) pip (9.0.1) Pygments (2.1.3) PyYAML (3.12) setuptools (27.2.0) Werkzeug (0.11.11) wheel (0.29.0)

我的网页的平面页面渲染设置如下所示:

def prerender_jinja(text):
    return pygmented_markdown(render_template_string(Markup(text)))

FLATPAGES_EXTENSION =['.md']
FLATPAGES_MARKDOWN_EXTENSION =['codehilite']
FLATPAGES_html_RENDERER = prerender_jinja

当我将 .md 文件转换为 .html 文件时,我还需要做什么才能启用语法突出显示?

谢谢。

【问题讨论】:

【参考方案1】:

来自http://flask-flatpages.readthedocs.io/en/latest/#how-it-works:

要使用 Pygments,您需要单独包含样式声明。您可以使用 pygments_style_defs() 获取它们:

@app.route('/pygments.css')
def pygments_css():
    return pygments_style_defs('tango'), 200, 'Content-Type': 'text/css'

在模板中:

<link rel="stylesheet" href=" url_for('pygments_css') ">

【讨论】:

我已经尝试过了,但我的代码块仍然没有样式。只是黑色字体。 您是直接在浏览器中打开文件还是启动了网络服务器(即cd build; python -m SimpleHTTPServer -> 在浏览器中打开localhost:8000)? 我启动了一个网络服务器 啊,好的。解决方案是指定语言。 (当我进行上述样式声明时,我只是突出显示了 html 语法)我基本上将代码粘贴在 Sebastian 的评论中并做了 :::javascript 块代码我想写

以上是关于如何使用flask-flatpages突出显示语法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 博客上突出显示 Haskell 语法

如何在 Aptana 中突出显示 Blade 语法

如何在 .ntl 模板文件的 Visual Studio Code 中启用 HTML 语法突出显示?

如何使 vim 语法突出显示整行?

Jekyll - 如何更改突出显示字体系列的 pygments 语法?

如何使用 Resharper 准确找出哪个规则将语法突出显示应用于 VS2022 中的特定代码元素?