在Sphinx的html输出中包含源码行号,可以通过配置Sphinx的扩展和主题来实现。
首先,确保你已经安装了Sphinx和相关的扩展。然后,在你的Sphinx项目的配置文件(通常是conf.py
)中,添加以下配置:
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.viewcode',
'sphinx.ext.githubpages',
]
html_theme = 'sphinx_rtd_theme'
html_theme_options = {
'style_external_links': True,
'style_nav_header_background': '#2980B9',
'collapse_navigation': False,
'sticky_navigation': True,
'navigation_depth': 4,
'includehidden': True,
'titles_only': False,
'display_version': True,
'prev_next_buttons_location': 'bottom',
'style_external_links': True,
'vcs_pageview_mode': '',
'style_external_links': True,
'style_external_links_target': '_blank',
}
html_css_files = [
'css/custom.css',
]
html_js_files = [
'js/custom.js',
]
上述配置中,extensions
列表中添加了'sphinx.ext.viewcode'
扩展,该扩展用于生成源码链接。html_theme
设置为sphinx_rtd_theme
,这是一个常用的主题,你也可以根据自己的需求选择其他主题。
接下来,在你的Sphinx项目的源码目录中,创建一个_templates
文件夹,并在其中创建一个layout.html
文件。在layout.html
文件中,添加以下代码:
{% extends "!layout.html" %}
{% block extrahead %}
{{ super() }}
<link rel="stylesheet" type="text/css" href="{{ pathto('_static/css/custom.css', 1) }}" />
<script type="text/javascript" src="{{ pathto('_static/js/custom.js', 1) }}"></script>
{% endblock %}
上述代码中,_static/css/custom.css
和_static/js/custom.js
分别是自定义的CSS和JavaScript文件,你可以根据需要进行修改。
最后,在你的Sphinx项目的源码目录中,创建一个_static
文件夹,并在其中创建一个css
文件夹和一个js
文件夹。在css
文件夹中,创建一个custom.css
文件,在js
文件夹中,创建一个custom.js
文件。
在custom.css
文件中,添加以下代码:
div.highlight pre {
counter-reset: linenumber;
}
div.highlight pre span.line:before {
content: counter(linenumber);
counter-increment: linenumber;
padding-right: 0.6em;
color: #999;
display: inline-block;
width: 2em;
text-align: right;
margin-right: 0.5em;
border-right: 1px solid #ddd;
}
在custom.js
文件中,添加以下代码:
$(document).ready(function() {
$('div.highlight').each(function() {
var lines = $(this).find('pre').text().split('\n').length - 1;
var $numbering = $('<ul/>').addClass('pre-numbering');
$(this)
.addClass('has-numbering')
.append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
}
});
});
保存以上文件后,重新生成Sphinx文档,你将在HTML输出中看到源码行号的显示。
这里推荐腾讯云的云服务器CVM产品,它提供了稳定可靠的云计算基础设施,适用于各种规模的应用场景。你可以通过以下链接了解更多关于腾讯云服务器CVM的信息:腾讯云服务器CVM
领取专属 10元无门槛券
手把手带您无忧上云