如何修改本文档
如果您希望将您的页面添加到此文档中,需要将源文件添加到适当的部分。我选择创建一个结构来重新整理文档的各个部分,这并不是严格必要的,但为了清晰性,强烈建议这样做。
本文档使用递归索引树:每个文件夹都有一个特殊的 index.rst 文件,告诉 sphinx 哪个文件存在、以什么顺序将其放入文档树中。
标题约定
Sphinx 非常智能,文档结构是根据您如何使用非字母数字字符(例如:= - ` : ' " ~ ^ _ * + # < >)推导出来的,您只需要保持一致即可。不过,为了保持一致性,我们使用这些约定:
=用于章节标题的前后行
=标题的下划线
-段落的下划线
^表示子段落
Wavedrom 的集成
本文档使用了 sphinxcontrib-wavedrom 插件,因此您可以使用 WaveJSON 语法指定时序图或寄存器描述,如下所示:
.. wavedrom::
   { "signal": [
      { "name": "pclk", "wave": "p......." },
      { "name": "Pclk", "wave": "P......." },
      { "name": "nclk", "wave": "n......." },
      { "name": "Nclk", "wave": "N......." },
      {},
      { "name": "clk0", "wave": "phnlPHNL" },
      { "name": "clk1", "wave": "xhlhLHl." },
      { "name": "clk2", "wave": "hpHplnLn" },
      { "name": "clk3", "wave": "nhNhplPl" },
      { "name": "clk4", "wave": "xlh.L.Hx" }
   ]}
你可以得到:
备注
如果您希望 Wavedrom 图出现在 pdf 导出中,则需要使用 “non relaxed” JSON 方言。长话短说,就是没有使用 javascript 代码并使用 " 包围键值(例如 "name" )。
您可以使用相同的语法描述寄存器映射:
{"reg":[
  {"bits": 8, "name": "things"},
  {"bits": 2, "name": "stuff" },
  {"bits": 6}
 ],
 "config": { "bits":16,"lanes":1 }
 }
新章节
如果你想添加一个新的节,你需要在顶部索引中指定新节的索引文件。我建议将文件夹命名为节名称,但这不是必需的; Sphinx 将从索引文件的标题中获取该部分的名称。
示例
我想记录 SpinalHDL 中的新功能,并且我想为其创建一个章节;我们称之为 Cheese
所以我需要创建一个名为 Cheese 的文件夹(名称并不重要),并在其中创建一个索引文件,例如:
======
Cheese
======
.. toctree::
:glob:
introduction
*
备注
.. toctree:: 指令接受一些参数,在本例中 :glob: 使您可以使用 * 包含所有剩余文件。
备注
文件路径是相对于索引文件的,如果要指定绝对路径,需要在前面加上``/``
备注
introduction.rst 将始终是列表中的第一个,因为它是在索引文件中指定的。其他文件将按字母顺序排列。
现在我可以添加 introduction.rst 和其他文件,比如 cheddar.rst,stilton.rst 等。
剩下要做的唯一一件事就是将 cheese 添加到顶部索引文件中,如下所示:
Welcome to SpinalHDL's documentation!
=====================================
.. toctree::
   :maxdepth: 2
   :titlesonly:
   rst/About SpinalHDL/index
   rst/Getting Started/index
   rst/Data types/index
   rst/Structuring/index
   rst/Semantic/index
   rst/Sequential logic/index
   rst/Design errors/index
   rst/Other language features/index
   rst/Libraries/index
   rst/Simulation/index
   rst/Examples/index
   rst/Legacy/index
   rst/Developers area/index
   rst/Cheese/index
就是这样,现在您可以在 cheese 中添加您想要的所有内容,所有页面都将显示在文档中。