是否可以使用sphinx为出现在代码片段中的单词设置悬停框,类似于angular.js 登录页面中代码示例中的悬停框的外观和行为?
我需要在乳胶项目中使用语法突出显示,使用minted包我可以使用pygments lexers,这里有一个ipython的词法分析器.
如何将其添加到pygments?(Windows或OSX)
我希望,这个问题不是太偏僻.
我有一个更大的学校项目,涉及一些文件.该文档是一个LaTeX文件,如下所示:
...
some explanation
\section {someCode}
\include{someCode.hs}
some explanation
...
Run Code Online (Sandbox Code Playgroud)
这些文件someCode.hs.tex是自动genereated从他们相应的.hs使用Pygments来做和一个Makefile -files.
问题是:每次,我都包含一些东西,之前插入了分页符.这既不是预期也不是想要的.我用Google搜索,但没有找到答案.有任何想法吗?
我在我看来是这样称呼它:
<%= markdown question.body %>
Run Code Online (Sandbox Code Playgroud)
这就是我的ApplicationHelper样子:
module ApplicationHelper
class HTMLwithPygments < Redcarpet::Render::HTML
def block_code(code, language)
Pygments.highlight(code, lexer:language)
end
end
def markdown(text)
renderer = HTMLwithPygments.new(hard_wrap: true)
options = {
autolink: true,
no_intra_emphasis: true,
fenced_code_blocks: true,
lax_html_blocks: true,
strikethrough: true,
superscript: true
}
Redcarpet::Markdown.new(renderer, options).render(text).html_safe
end
end
Run Code Online (Sandbox Code Playgroud)
但是,当遇到这样的标签时:
<pre class="lang-cpp prettyprint-override">
Run Code Online (Sandbox Code Playgroud)
它不会将颜色突出显示应用于该代码.这是为什么?
PS这是由Stack Overflow生成的,例如: <!-- language: lang-cpp -->
编辑1
或者更具体地说,它似乎不会格式化<code>标签内的<pre>标签.一旦<code>不在<pre>其中似乎格式化它.我该如何解决这个问题?
编辑2
问题似乎Pygment.rb是正在采取行动的数据.它是HTML,可以在这个要点中看到 - https://gist.github.com/marcamillion/14fa121cf3557d38c1a8.所以我想要做的是让Pygment body在我的要点中正确格式化该对象的属性中返回的代码.
我怎么做?
编辑3
这是我想要的HTML代码, …
我想在 python 源代码中找到列表理解,为此我尝试使用 Pygments,但它没有找到实现这一点的方法。
更具体地说,我想做一个识别所有可能的列表理解的函数。例如:
[x**2 for x in range(5)]
[x for x in vec if x >= 0]
[num for elem in vec for num in elem]
[str(round(pi, i)) for i in range(1, 6)]
Run Code Online (Sandbox Code Playgroud)
这个例子是从https://docs.python.org/2/tutorial/datastructs.html#list-comspirations获得的
使用正则表达式也是有效的解决方案。
谢谢
我使用 Jupyter Notebooks 来实施和记录适用于我们的生产数据库的更改。我使用 Python 进行编程,并向服务器提交典型的 SQL 语句以获取结果并进行更改。
我喜欢将 sql 打印为单元输出的一部分,以获取更改的详细日志。我希望 pygments 帮助对输出进行着色,以便 SQL 看起来尽可能漂亮。
似乎 pygments 使用 css,我不知道如何将其包含在内
from pygments import highlight
from pygments.lexers import SqlLexer
from pygments.formatters import HtmlFormatter
from IPython.display import display, HTML
sql_string = '''
SELECT id, name
FROM users
WHERE name between 'B' AND 'P'
LIMIT 50
'''
display(HTML(data=highlight(sql_string, SqlLexer(), HtmlFormatter())))
display(highlight(sql_string, SqlLexer(), HtmlFormatter()))
display(HtmlFormatter().get_style_defs('.highlight'))
Run Code Online (Sandbox Code Playgroud)
输出
SELECT id, name
FROM users
WHERE name between 'B' AND 'P'
LIMIT 50
u'<div class="highlight"><pre><span></span><span class="k">SELECT</span> <span class="n">id</span><span class="p">,</span> …Run Code Online (Sandbox Code Playgroud) 使用Hugo的Pygments,我可以用这样的块进行语法高亮:
```ruby
def hello object
puts "Hello, #{object}"
end
```
Run Code Online (Sandbox Code Playgroud)
这个"工作"的代码是彩色的,但颜色不好,白色背景上的白色文字(来自Pygments)(来自Hugo主题).有没有办法改变突出显示的主题?
我运行了以下代码
# Allows the use of display() for displaying
from IPython.display import display DataFrames
Run Code Online (Sandbox Code Playgroud)
它显示以下错误:
File "/usr/lib64/python2.7/site-packages/IPython/utils/colorable.py", line 13, in <module>
import pygments
ImportError: No module named pygments
Run Code Online (Sandbox Code Playgroud)
所以我尝试安装pygments:
pip install pygments
Run Code Online (Sandbox Code Playgroud)
它说:
Requirement already satisfied: pygments in /home/rico/downloads/hgvs-0.1.2/Pygments-2.1.3-py2.7.egg (2.1.3)
Run Code Online (Sandbox Code Playgroud)
您知道如何解决这个问题吗?谢谢。
我目前在我的网站上使用 python pygments 来突出显示一些代码,并想调整一些使用的颜色。到目前为止我已经尝试过以下方法:
from pygments.token import Keyword, Name, Comment, String, Error, \
Number, Operator, Generic
from pygments.formatters import HtmlFormatter
class MyStyle(Style):
styles = {
Comment: '#f00000',
Keyword: '#f00000',
Name: '#f00000',
Name.Function: '#f00000',
Name.Class: '#f00000',
String: '#f00000'
}
code = 'print("Hello World")'
result = highlight(code, Python3Lexer(), HtmlFormatter(style=MyStyle))
print(result)
Run Code Online (Sandbox Code Playgroud)
打印出
<div class="highlight"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="s2">"Hello World"</span><span class="p">)</span>
</pre></div>
Run Code Online (Sandbox Code Playgroud)
一起生成的 pygments.css 如下所示:
.highlight .hll { background-color: #ffffcc }
.highlight { background: #f8f8f8; }
.highlight .c { color: #8f5902; font-style: italic } /* …Run Code Online (Sandbox Code Playgroud)