我正在使用Sphinx记录一个Python模块。我有一个源代码文件,其中包含使用我的模块的示例。我想引用这个文件,但它太长了,不能作为连续代码嵌入。是否有一种方法可以创建链接到完整的源代码文件,并以友好的方式格式化代码(即:逐行显示或带有行号)?
我正在使用Sphinx记录一个Python模块。我有一个源代码文件,其中包含使用我的模块的示例。我想引用这个文件,但它太长了,不能作为连续代码嵌入。是否有一种方法可以创建链接到完整的源代码文件,并以友好的方式格式化代码(即:逐行显示或带有行号)?
.. literalinclude:: filename
通过将示例文本存储在仅包含纯文本的外部文件中,可以包含更长的显示为字面文本。可以使用literalinclude指令包含该文件。
例如,要包含Python源文件example.py
,请使用:
.. literalinclude:: example.py
文件名通常是相对于当前文件路径的。但是,如果它是绝对的(以/开头),则相对于顶级源目录。
如果您使用所需的制表符宽度选项,则输入中的制表符将被展开。
与code-block类似,该指令支持linenos标志选项以打开行号,lineno-start选项以选择第一个行号,emphasize-lines选项以强调特定行,并且语言选项以选择与当前文件的标准语言不同的语言。带有选项的示例:
.. literalinclude:: example.rb
:language: ruby
:emphasize-lines: 12,15-18
:linenos:
假设包含文件已经使用源编码进行了编码。如果文件有不同的编码,您可以使用编码选项指定它:
.. literalinclude:: example.py
:encoding: latin-1
.. literalinclude:: example.py
:pyobject: Timer.start
这将仅包括文件中 Timer 类的 start() 方法所属的代码行。
或者,您可以通过指定 lines 选项来精确指定要包含哪些行:
.. literalinclude:: example.py
:lines: 1,3,5-10,20-
.. literalinclude:: example.py
:diff: example.py.orig
pyobject
的对象来显示JSON对象的一部分? - Anuj TBE:source:
。
更新:定义:source:
角色在这里。
diff
。 已添加为答案在这里。 - Lucas Siqueira