在 Trac 中使用没有 mime 类型的 Pygments 词法分析器?

Posted

技术标签:

【中文标题】在 Trac 中使用没有 mime 类型的 Pygments 词法分析器?【英文标题】:Use a Pygments lexer with no mime type in Trac? 【发布时间】:2012-11-27 15:53:44 【问题描述】:

我想让 Trac 为我的 aspx 文件着色,但我找不到让它工作的方法。我可以轻松地为大多数 Pygments 词法分析器添加 mime 类型/扩展映射,但 CSharpAspxLexer 没有分配的 mime 类型(请参阅http://pygments.org/docs/lexers/#lexers-for-net-languages)。我已经尝试了几件事,但我看不到没有 mime 类型将 [mimeviewers] 部分连接到 Pygments 的方法。 CSharpLexer 自动工作并且看起来很棒,但仅适用于 .cs 文件(应该如此)。

我使用 Mercurial 作为存储库,因此无法手动设置 MIME 类型;无论如何,这不是一个好的解决方案。我的 Trac 安装在 Windows 中。有什么想法吗?

【问题讨论】:

暂时破解 Pygments 并为他们的项目提供补丁以添加 mimetype? 【参考方案1】:

我只是将它呈现为 XML,对于典型的 Windows .Net 开发的许多其他类似文件也是如此。我的映射如下所示:

[mimeviewer]
mime_map = text/xml:aspx:ascx:master:resx:config:sitemap:wsdl:disco:map:asmx:mxml:csproj, ...

不过,我认为您也可以通过 pygments_modes 设置启用 aspx(并且您需要将其从 mime_map 中删除):

[mimeviewer]
pygments_modes = text/plain:aspx-cs:7

据我所知,它不会处理 ascx 和其他(非常)aspx 的近亲,所以我不使用该设置,因为我发现使用相同的词法分析器渲染所有变体更好。而且,我认为 XML 词法分析器工作得非常好。

【讨论】:

为我工作!我没有意识到 XML 词法分析器如此灵活。我想根据定义它必须是。谢谢。

以上是关于在 Trac 中使用没有 mime 类型的 Pygments 词法分析器?的主要内容,如果未能解决你的问题,请参考以下文章

在没有 PECL 扩展的 PHP5 中获取本地文件的 MIME 类型?

如何在 Qt 中获取文件的 MIME 类型?

什么是mime类型

如何找到没有扩展名的图像的 MIME 类型?

在没有Web.Config的情况下更改Azure上的接受MIME类型

在没有 MIME 或扩展名的 PHP 中确定文件类型