标签: pygments

铸造中的突出显示颜色

我正在设置一个很好的环境来在打印文档中呈现我的代码.首先,我使用了用于Latex的lstlisting包,但后来我偶然发现了铸造.

铸造真的很棒,但有没有办法改变高光颜色

由于minted使用了Pygments库,我认为Pygments是颜色的关键,但我还没有找到它.

任何人都可以解释它是如何完成的或发布一个链接,显示它是如何完成的?

铸造高亮显示的输出

latex syntax-highlighting pygments

16
推荐指数
1
解决办法
9378
查看次数

哪种Sphinx代码块语言用于JSON

我正在使用Sphinx来记录Web服务.我想使用代码块指令显示格式化的JSON Web响应,Spinx通过Pygments执行,但JSON在Pygments中没有语法高亮显示.您建议我指定哪种语言?HTML?JavaScript的?

.. code-block:: javascript

    {
      "name": "roger",
      "score": 100
    }
Run Code Online (Sandbox Code Playgroud)

pygments python-sphinx

14
推荐指数
4
解决办法
2万
查看次数

我是否需要为我的jekyll博客生成Pygments的css文件,以启用丰富多彩的代码片段?

这是我第一次使用Jekyll和Pygments.但我不知道如何插入彩色代码片段.

我按照官方步骤成功安装了Pygments,其标记如下:

{% highlight ruby %}
def foo
  puts 'foo'
end
{% endhighlight %}
Run Code Online (Sandbox Code Playgroud)

我看到包含类的html源代码,但是这个代码片段没有颜色.

我是否需要从Pygments生成一些css文件并包含它们?如何?

css pygments jekyll

13
推荐指数
2
解决办法
8421
查看次数

Sphinx:突出显示支持的语言列表?

我正在使用Sphinx代码文档并在代码中使用多种语言,我想为所有代码设置突出显示.Sphinx简要提到了它支持的一些语言(在本页),然后提到它使用Pygments进行词法分析和突出显示.通过Sphinx和Pygments的文档筛选,我不知道如何做突出显示objective-c代码.

Pygments来做确实提到的语言列表支持,在这里,但是这并没有告诉我,我必须使用内狮身人面像(.rst文件)告诉代码块,以突出特定语言的确切语法.例如,要突出显示c ++代码,只需在代码块之前使用它:

.. highlight:: c++

但是在尝试这些后我似乎无法突出显示Objective-C代码:

.. highlight:: Objective-C
.. highlight:: objective-c
.. highlight:: Obj-C
.. highlight:: obj-c
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供语言列表(你可以在文档中引用它们)吗?

documentation-generation pygments python-sphinx

13
推荐指数
2
解决办法
4978
查看次数

Django - 您是否忘记注册或加载此标记?

我已经创建了一个我想要使用的自定义标签,但是Django似乎无法找到它.我的templatetags目录设置如下:

pygmentize.py

from pygments import highlight
from pygments.lexers import get_lexer_by_name
from django import template
from pygments.formatters.other import NullFormatter

register = template.Library()

@register.tag(name='code')
def do_code(parser,token):
    code = token.split_contents()[-1]
    nodelist = parser.parse(('endcode',))
    parser.delete_first_token()
    return CodeNode(code,nodelist)

class CodeNode(template.Node):
    def __init__(self,lang,code):
        self.lang = lang
        self.nodelist = code

    def render(self,context):
        code = self.nodelist.render(context)
        lexer = get_lexer_by_name('python')
        return highlight(code,lexer,NullFormatter())
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用此标记来呈现代码gameprofile.html.

gameprofile.html

(% load pygmentize %}
{% block content %}
    <title>{% block title %} | {{ game.title }}{% endblock %}</title>
    <div id="gamecodecontainer">
        {% …
Run Code Online (Sandbox Code Playgroud)

python django django-templates templatetags pygments

13
推荐指数
7
解决办法
6万
查看次数

如何使用LaTeX铸造减少其他文本的分离?

我想使用minted包给我语法高亮,但它的间距超过一厘米.

设置:

\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
\setlength{\headsep}{0pt}
\setlength{\topskip}{0pt}
\setlength{\topmargin}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
Run Code Online (Sandbox Code Playgroud)

根本没有帮助.有没有办法减少文本其余部分的间距?

latex spacing pygments

12
推荐指数
1
解决办法
7361
查看次数

如何在Rails中实现Rouge语法高亮?

有一堆教程浮动,但它们似乎不完整或不完全是最新的或不适合我.

这就是我所做的.

的Gemfile:

gem 'rouge'
gem 'redcarpet'
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个config/initializer/rouge.rb:

require 'rouge/plugins/redcarpet'
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个名为的文件 app/assets/stylesheets/rouge.css.erb

<%= Rouge::Themes::Github.render(:scope => '.highlight') %>
Run Code Online (Sandbox Code Playgroud)

然后在我的app/helpers/application_helper.rb,我添加了这个:

module ApplicationHelper
  class HTML < Redcarpet::Render::HTML
    include Rouge::Plugins::Redcarpet

    def block_code(code, language)
      Rouge.highlight(code, language || 'text', 'html')
    end
  end

  def markdown(text)
    render_options = {
      filter_html: true,
      hard_wrap: true,
      link_attributes: { rel: 'nofollow' }
    }
    renderer = HTML.new(render_options)

    extensions = {
      autolink: true,
      fenced_code_blocks: true,
      lax_spacing: true,
      no_intra_emphasis: true,
      strikethrough: true,
      superscript: true
    }
    Redcarpet::Markdown.new(renderer, extensions).render(text).html_safe
  end
end
Run Code Online (Sandbox Code Playgroud)

然后在我show.html.erb …

syntax-highlighting ruby-on-rails pygments ruby-on-rails-5 rouge

12
推荐指数
1
解决办法
1337
查看次数

QScintilla中的色素

考虑这个mcve:

import math
import sys
import textwrap
import time
from pathlib import Path
from collections import defaultdict

from PyQt5.Qsci import QsciLexerCustom, QsciScintilla
from PyQt5.Qt import *

from pygments import lexers, styles, highlight, formatters
from pygments.lexer import Error, RegexLexer, Text, _TokenType
from pygments.style import Style


EXTRA_STYLES = {
    "monokai": {
        "background": "#272822",
        "caret": "#F8F8F0",
        "foreground": "#F8F8F2",
        "invisibles": "#F8F8F259",
        "lineHighlight": "#3E3D32",
        "selection": "#49483E",
        "findHighlight": "#FFE792",
        "findHighlightForeground": "#000000",
        "selectionBorder": "#222218",
        "activeGuide": "#9D550FB0",
        "misspelling": "#F92672",
        "bracketsForeground": "#F8F8F2A5",
        "bracketsOptions": "underline",
        "bracketContentsForeground": "#F8F8F2A5",
        "bracketContentsOptions": "underline",
        "tagsOptions": …
Run Code Online (Sandbox Code Playgroud)

python scintilla pygments qscintilla pyqt5

12
推荐指数
1
解决办法
1920
查看次数

Sphinx内联代码突出显示

我使用Sphinx制作一个包含代码示例的网站.我成功使用该.. code-block指令获得语法高亮.但我无法使用此代码获取内联语法高亮:

.. role:: bash(code)
   :language: bash

Test inline: :bash:`export FOO="bar"`.

.. code-block:: bash

    export FOO="bar"
Run Code Online (Sandbox Code Playgroud)

产生此输出,即内嵌代码未突出显示,而块代码是:

结果

对我来说问题是生成的内联代码HTML包含长类名,而不包含代码块.这是输出HTML(为了便于阅读而缩进):

<p>Test inline:
    <tt class="code bash docutils literal">
        <span class="name builtin">
            <span class="pre">export</span>
        </span>
        <span class="name variable">
            <span class="pre">FOO</span>
        </span>
        <span class="operator">
            <span class="pre">=</span>
        </span>
        <span class="literal string double">
            <span class="pre">&quot;bar&quot;</span>
        </span>
    </tt>.
</p>


<p>Test code-block:</p>
<div class="highlight-bash">
    <div class="highlight">
        <pre>
            <span class="nb">export </span>
            <span class="nv">FOO</span>
            <span class="o">=</span>
            <span class="s2">&quot;bar&quot;</span>
        </pre>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感谢.

css restructuredtext syntax-highlighting pygments python-sphinx

10
推荐指数
3
解决办法
5128
查看次数

Python pygments lexer状态保存

在以下c ++文本上运行pygments默认lexer :,class foo{};结果如下:

(Token.Keyword, 'class')
(Token.Text, ' ')
(Token.Name.Class, 'foo')
(Token.Punctuation, '{')
(Token.Punctuation, '}')
(Token.Punctuation, ';')
Run Code Online (Sandbox Code Playgroud)

请注意,toke foo具有类型Token.Name.Class.

如果我将类名更改为foobar我希望能够仅在触摸的标记上运行默认词法分析器,在这种情况下是原始标记foo{.

问:如何保存词法分析器状态,以便标记化foobar{将为类型提供令牌Token.Name.Class

具有此功能将优化语法突出显示,例如,在文件中间正在进行更改(用户正在键入文本)的大型源文件.似乎没有记录的方法这样做,也没有关于如何使用默认pygments词法分析器的信息.

是否有任何其他语法突出显示系统支持此行为?

编辑:

关于性能,这里有一个例子:http://tpcg.io/ESYjiF

python syntax-highlighting pygments python-3.x

10
推荐指数
1
解决办法
365
查看次数