【问题标题】:how to highlight syntax using flask-flatpages如何使用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 文件时,我还需要做什么才能启用语法突出显示?

谢谢。

【问题讨论】:

    标签: python flask jinja2 pygments


    【解决方案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 块代码我想写
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多