为ROS 2文档做出贡献 [待校准@385]
目录
贡献网站欢迎。本页说明如何有助于ROS 2文档。请务必阅读以下部分仔细贡献。 [待校准@386]
这个场地是用 Sphinx, and more particularly using Sphinx multiversion 建造的。 [待校准@387]
分支结构 [待校准@388]
文档的源文件代码位于 ROS 2 Documentation GitHub repository 。该仓库每个ROS 2分布设置一个分支,以处理分布之间的差异。如果所有ROS 2分布都有更改,则应将其更改为 rolling
分支 (然后根据需要进行反向移植)。如果更改特定于特定的ROS 2分布,则应将其更改为相应的分支。 [待校准@389]
源结构 [待校准@390]
该站点的源文件都位于 source
子目录下。各种狮身人面像插件的模板位于 source/_templates
下。根目录包含lo调用y构建站点进行测试所需的配置和文件。 [待校准@391]
构建站点lo调用y [待校准@392]
首先,安装要求位于 requirements.txt
文件中。 [待校准@393]
pip3 install --user --upgrade -r requirements.txt
为一个分支建立站点 [待校准@394]
为了只为这个分支建立站点,在仓库的顶层键入 make html
。这是测试本地更改的推荐方法。 [待校准@395]
make html
构建过程可能需要一些时间。要查看输出,请在浏览器中打开 build/html/index.html
。 [待校准@396]
您还可以使用以下命令运行文档测试lo调用y (使用 doc8 ): [待校准@397]
make test
为所有分支机构建立站点 [待校准@398]
为所有分支建立场地,从 rolling
分支键入 make multiversion
。这有两个缺点: [待校准@399]
multiversion插件不了解如何进行增量构建,因此它总是重建所有内容。这可能会很慢。 [待校准@400]
打字时
make multiversion
,总是检查确切分支列出conf.py
文件。这意味着不会显示局部更改。 [待校准@401]
要在multiversion输出中显示本地更改,必须首先将更改提交到本地分支。然后你必须编辑 conf.py 文件改变 smv_branch_whitelist
变量指向分支。 [待校准@402]
书写页面 [待校准@403]
ROS 2文档网站使用 reStructuredText
格式,这是狮身人面像使用的默认明文标记语言。本节简要介绍了 reStructuredText
的概念、语法和最佳实践。 [待校准@404]
你可以参考 reStructuredText User Documentation 的详细技术规格。 [待校准@405]
目录
有两种类型的指令用于生成目录,“..托克特里:: `` and `` ..内容:: . The `` ..toctree::''用于顶级页面,如 ``Tutorials.rst
,以设置其子页面的顺序和可见性。此指令创建左侧导航面板和页面内导航链接到列出的子页面。它帮助读者理解单独文档部分的结构并在页面之间导航。 [待校准@406]
.. toctree::
:maxdepth: 1
“……Content::''指令用于生成该特定页面的目录。它解析页面中所有当前标题,并构建页面内嵌套的目录表。它可以帮助读者查看内容概述并在页面内导航。 [待校准@407]
“……目录:: `` directive supports the definition of maximum depth of nested sections. Using `` : 深度: 2'' 仅显示目录中的部分和小节。 [待校准@408]
.. contents:: Table of Contents
:depth: 2
:local:
标题 [待校准@409]
文档中使用了四种主要的标题类型。请注意,符号的数量必须与标题的长度相匹配。 [待校准@410]
Page Title Header
=================
Section Header
--------------
2 Subsection Header
^^^^^^^^^^^^^^^^^^^
2.4 Subsubsection Header
~~~~~~~~~~~~~~~~~~~~~~~~
在教程和操作指南中,我们通常使用一位数字来编号小节,使用两位数字 (点分隔) 来编号小节。 [待校准@411]
列表 [待校准@412]
星星 *
用于列出带有项目符号和数字符号 “#” 的无序项目。用于列出编号项目。它们都支持嵌套定义,并将相应地呈现。 [待校准@413]
* bullet point
* bullet point nested
* bullet point nested
* bullet point
#. first listed item
#. second lited item
代码格式 [待校准@414]
文本内代码可以使用 backticks
来格式化,以显示 highlighted
代码。 [待校准@415]
In-text code can be formatted using ``backticks`` for showing ``highlighted`` code.
需要使用 “captured捕获页面内的代码块。代码块:: `` directive. `` ..代码块:: `` supports code highlighting for syntaxes like `` c ++ ”、 YAML
、 console
、 bash
等。指令内部的代码需要缩进。 [待校准@416]
.. code-block:: C++
int main(int argc, char** argv)
{
rclcpp::init(argc, argv);
rclcpp::spin(std::make_shared<ParametersClass>());
rclcpp::shutdown();
return 0;
}
参考和链接 [待校准@419]
内部链接 [待校准@423]
“: doc:” 指令用于创建指向其他页面的文本内链接。 [待校准@424]
:doc:`Quality of Service <../Tutorials/Quality-of-Service>`
请注意,使用了文件的相对路径。 [待校准@425]
[需手动修复的语法] ref
指令用于链接到页面的特定部分。这些可以是当前或不同页面中的标题、图像或代码部分。 [待校准@426]
在需要所需对象之前定义显式目标。在下面的示例中,目标定义 _talker-listener
一行之前标题 Try some examples
。 [待校准@427]
.. _talker-listener:
Try some examples
-----------------
现在,可以创建从文档中的任何页面到该标题的链接。 [待校准@428]
:ref:`talker-listener demo <talker-listener>`
此链接将使用HTML锚链接 “# talker-listener” 将读者导航到目标页面。 [待校准@429]
宏 [待校准@430]
宏可用于简化针对多个发行版的编写文档。 [待校准@431]
通过在花括号中包含宏名称来使用宏。例如,当生成用于在 rolling
分支上滚动的文档时: [待校准@432]
使用 [待校准@433] |
变成 (用于滚动) [待校准@434] |
示例 |
---|---|---|
{发行版 } [待校准@436] |
滚动 [待校准@437] |
ros-{发行版 }-pkg [待校准@438] |
{DISTRO_TITLE } [待校准@439] |
滚动 [待校准@440] |
ROS 2 {DISTRO_TITLE } [待校准@441] |
{ DISTRO_TITLE_FULL } [待校准@442] |
Rolling Ridley [待校准@443] |
ROS 2 {DISTRO_TITLE_FULL } [待校准@444] |
{ REPOS_FILE_BRANCH } [待校准@445] |
大师 [待校准@446] |
git检出 { REPOS_FILE_BRANCH } [待校准@447] |
同一文件可以在多个分支上使用 (即,对于多个发行版),并且生成的内容将是特定于发行版的。 [待校准@448]