7

我一直在编写个人“操作方法”指南,在进行过程中记录并记录我的研究。

我现在有一个几乎太长的代码块,当我自己遇到这种长度的代码时,总是令人沮丧地试图突出显示该块而不突出显示整个页面,或者不够。

所以,我的问题是,对于rst(reStructuredText).. code-block::的,是否有附加组件或添加copy按钮的方法,用于自动突出显示或自动将文本添加到用户剪贴板?或者这将是我必须包含在构建中并在代码块中引用它的更多 html 文字类型的代码?如果是这样,那么类似的东西会是什么样子?

4

2 回答 2

8

有一个名为sphinx-copybutton.

使用起来很简单。

# Install
pip install sphinx-copybutton
# Declare it in the conf.py
extensions = [
    ...
    'sphinx_copybutton'
    ...
]

就是这样,生成文档,复制按钮将自动出现在每个代码块中。

于 2020-04-15T19:42:00.167 回答
4

在 Sphinx 项目中,HTML 页面的显示是使用模板语言(默认为 Jinja2)控制的。因此,您可以通过将 Javascript 添加到 HTML 模板文件来使您的页面更具交互性,并且当 Sphinx 使用该特定模板文件呈现页面时,它将被插入。

通过templates_path在您的conf.py

Jinja 模板可以相互扩展,因此您可能需要以 . 开头的文件{% extends "basic/layout.html" %}

一旦你找到了你想要在扩展序列中进行更改的位置,你需要结合:

  • 您希望它生效的页面部分(通常是主块)
  • 带有代码块类的 CSS(例如在我的它是class=highlight)。.CSS 文件很可能位于 docs/source/_static/
  • 用于创建按钮并写入剪贴板的 javascript 片段(例如https://clipboardjs.com/

接下来,在本地 ( ) 构建 Sphinx 项目,make html直到您拨入它,然后将源代码库推送到 readthedocs。

于 2016-11-09T06:20:33.800 回答