Guía de Estilo
Este documento contiene las diversas pautas específicas de RST/Sphinx para el proyecto frc-docs. Para conocer las pautas relacionadas con los diversos proyectos de código WPILib, consulte the WPILib GitHub
Nombres de Archivo
Use solo caracteres alfanuméricos en minúsculas y el guion (signo «-«).
Para documentos que tendrán un nombre de software/hardware idéntico, agregue «hardware» o «software» al final del nombre del documento. p.ej. ultrasonics-hardware.rst
Añada la extensión .rst
como sufijo a los nombres de archivo.
Nota
If you are having issues editing files with the .rst
extension, the recommended text editor is VS Code with the rST extension.
Texto
All text content should be on the same line. If you need readability, use the word-wrap function of your editor.
Use el siguiente caso para estos términos:
roboRIO (no RoboRIO, roboRio, o RoboRio)
LabVIEW (no labview o LabView)
Visual Studio Code (VS Code) (no vscode, VScode, vs code, etc)
macOS (no Mac OS, Mac OSX, Mac OS X, Mac, Mac OS, etc.)
GitHub (no github, Github, etc.)
PowerShell (no PowerShell, Powershell, etc.)
Linux (no linux)
Java (no Java)
Utilice el conjunto de caracteres ASCII para el texto en inglés. Para caracteres especiales (p.ej., Símbolos griegos) use los conjuntos de entidades de caracteres estándar.
Use .. math::
para ecuaciones independientes y :math:
para ecuaciones en línea. Puede encontrar una útil hoja de referencia de ecuaciones de LaTeX aquí.
Use literales para nombres de archivos, funciones y nombres de variables.
El uso de las marcas registradas FIRST® y FRC® debe seguir la Política de esta página. Específicamente, cuando sea posible (es decir, no anidado dentro de otro marcado o en el título de un documento), el primer uso de las marcas registradas debe tener el ® símbolo y todas las instancias de FIRST deben estar en cursiva. El ® símbolo se puede agregar usando .. include:: <isonum.txt>
al principio del documento y luego usando *FIRST* \ |reg|
o FRC\ |reg|
.
Commonly used terms should be added to the Glosario de FRC. You can reference items in the glossary by using :term:`deprecated`
.
Espacios en Blanco
Sangría
La sangría debe siempre coincidir con el nivel anterior de sangría a menos que esté creando un nuevo bloque de contenido.
La sangría de las directivas de contenido como nueva línea .. toctree::
debe ser 3 espacios.
Líneas En Blanco
There should be 1
blank line separating basic text blocks and section titles. There should be 1
blank line separating text blocks and content directives.
Espacio blanco interior
Use solo uno espacio entre frases.
Títulos
Los títulos deben estar en la siguiente estructura. Los subrayados de títulos deben coincidir con el mismo número de caracteres que hay en el título.
`` = `` para títulos de documentos. No use esto más de una vez por artículo.
`` -`` para secciones de documentos
^
para subsecciones de documentos~
para sub-subsecciones de documentosSi necesita usar niveles más inferiores para la estructura, está haciéndolo mal.
Escriba las primeras letras de cada palabra en mayúsculas para los títulos.
Listas
Las listas deben tener una nueva línea entre cada nivel de sangría. El mayor nivel de sangría debe tener una sangría de «0», y las subsiguientes sublistas deben tener una sangría que comience en el primer carácter de la sangría anterior.
- Block one
- Block two
- Block three
- Sub 1
- Sub 2
- Block four
Bloques de código
Todos los bloques de código deben tener un lenguaje especificado.
Excepción: Contenido donde el formato debe ser preservado y no tiene lenguaje. En lugar de eso, usa «texto».
Siga el Guía de estilo de WPILib para el código de ejemplo de C++ y Java. Por ejemplo, usa dos espacios para la indentación en C++ y Java.
RLI (Remote Literal Include)
When possible, instead of using code blocks, an RLI should be used. This pulls code lines directly from GitHub, most commonly using the example programs. This automatically keeps the code up to date with any changes that are made. The format of an RLI is:
.. rli:: https://raw.githubusercontent.com/wpilibsuite/allwpilib/v2024.3.2/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecontroller/Robot.java
:language: java
:lines: 44-61
:linenos:
:lineno-start: 44
.. rli:: https://raw.githubusercontent.com/wpilibsuite/allwpilib/v2024.3.2/wpilibcExamples/src/main/cpp/examples/RamseteController/cpp/Robot.cpp
:language: c++
:lines: 18-30
:linenos:
:lineno-start: 18
Make sure to link to the raw version of the file on GitHub. There is a handy Raw
button in the top right corner of the page.
Tabs
To create code tabs in an article, you can use the .. tab-set-code::
directive. You can use code-block
and rli
directives inside. The format is:
.. tab-set-code::
.. rli:: https://raw.githubusercontent.com/wpilibsuite/allwpilib/v2024.3.2/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecontroller/Robot.java
:language: java
:lines: 44-61
:linenos:
:lineno-start: 44
.. code-block:: c++
// Start the timer.
m_timer.Start();
// Send Field2d to SmartDashboard.
frc::SmartDashboard::PutData(&m_field);
// Reset the drivetrain's odometry to the starting pose of the trajectory.
m_drive.ResetOdometry(m_trajectory.InitialPose());
// Send our generated trajectory to Field2d.
m_field.GetObject("traj")->SetTrajectory(m_trajectory);
If you need to use more than one tab per language, multiple RLIs per language, or text tabs, you can use the .. tab-set::
and .. tab-item::
directive. The format is:
.. tab-set::
.. tab-item:: Title
:sync: sync-id
Content
This example uses the sync argument to allow all of the tabs with the same key to be synced together. This means that when you click on a tab, all of the tabs with the same key will open.
If you have a mix of tab-set
and tab-set-code
directives on a page, you can sync them by setting the sync id on the tab-item
directives to tabcode-LANGUAGE
. For example, a java tab would have a sync id of tabcode-java
.
Amonestaciones
Admonitions (list here) should have their text on the same line as the admonition itself. There are exceptions to this rule, however, when having multiple sections of content inside of an admonition. Generally having multiple sections of content inside of an admonition is not recommended.
Uso
.. warning:: This is a warning!
NO
.. warning::
This is a warning!
Links
Internal Links
Internal Links will be auto-generated based on the ReStructuredText filename and section title.
For example, here are several ways to link to sections and documents.
Use this format to reference a document section. You must use the absolute path of the document. :ref:`docs/software/hardware-apis/sensors/ultrasonics-software:Analog ultrasonics`
renders to Ultrasónicos analógicos.
Use this format to reference a section of the same document. Note the single underscore. `Images`_
renders to Images.
Use this format to reference the top-level of a document. You can use relative paths :doc:`build-instructions`
renders to Instrucciones de Construcción Or to use absolute paths, put a forward slash at the beginning of the path :doc:`/docs/software/hardware-apis/sensors/ultrasonics-software`
renders to Ultrasónicos - Software. Note that the text rendered is the main section title of the target page regardless of the target filename.
When using :ref:
or :doc:
you may customize the displayed text by surrounding the actual link with angle brackets <>
and adding the custom text between the first backtick `
and the first angle bracket <
. For example :ref:`custom text <docs/software/hardware-apis/sensors/ultrasonics-software:Analog ultrasonics>`
renders to custom text.
External Links
It is preferred to format external links as anonymous hyperlinks. The important thing to note is the two underscores appending the text. In the situation that only one underscore is used, issues may arise when compiling the document.
Hi there, `this is a link <https://example.com>`__ and it's pretty cool!
Sin embargo, en algunos casos en que el mismo enlace debe ser referenciado varias veces, se acepta la sintaxis que figura a continuación.
Hi there, `this is a link`_ and it's pretty cool!
.. _this is a link: https://example.com
Imágenes
Las imágenes deben ser creadas con 1
línea que separe el contenido y la directiva.
Todas las imágenes (incluyendo los vectores) deben tener un tamaño inferior a «500» kilobytes. Por favor, utilice una resolución más pequeña y algoritmos de compresión más eficientes.
.. image:: images/my-article/my-image.png
:alt: Always add alt text here describing the image.
Archivos de imágenes
Image files should be stored in the document directory, sub-directory of document-name/images
.
Deben seguir el esquema de nomenclatura de descripción-corta.png
, donde el nombre de la imagen es una breve descripción de lo que muestra la imagen. Debe tener menos de 24
caracteres.
Deben tener la extensión de imagen .png
or .jpg
. .gif
es inaceptable debido a problemas de almacenamiento y accesibilidad.
Nota
¡La accesibilidad es importante! Las imágenes deben estar marcadas con una directiva :alt:
.
.. image:: images/my-document/my-image.png
:alt: An example image
Imágenes vectoriales
Los archivos SVG son soportados a través de la extensión Sphinx de svg2pdfconverter
.
Simplemente úsalos como lo harías con cualquier otra imagen.
Nota
Asegúrate de que las imágenes incrustadas en el vector no inflen el vector hasta superar el límite de 500KB.
.. image:: images/my-document/my-image.svg
:alt: Always add alt text here describing the image.
Diagramas Draw.io
Draw.io (también conocidos como diagrams.net) los diagramas son soportados a través de archivos svg
con metadatos incrustados .drawio
, permitiendo que el archivo svg
actúe como un archivo fuente de los diagramas, y que se renderice como un archivo normal de gráficos vectoriales.
Simplemente úsalos como lo harías con cualquier otra imagen vectorial, o cualquier otra imagen.
.. image:: diagrams/my-document/diagram-1.drawio.svg
:alt: Always add alt text here describing the image.
Archivos de Draw.io
Los archivos Draw.io siguen casi el mismo esquema de nombres que las imágenes normales. Para llevar un registro de los archivos que tienen los metadatos .drawio
incrustados, agrega un .drawio
al final del nombre del archivo, antes de la extensión, lo que significa que el nombre del archivo debe ser document-title-1.drawio.svg
y así sucesivamente. Además, los diagramas deben ser almacenados en el directorio de documentos en una subcarpeta llamada diagramas
.
Para los detalles de guardar un diagrama como un .svg
con metadatos, echa un vistazo a Draw.io Instrucciones de Guardado.
Advertencia
Asegúrate de que no modificas ningún archivo que esté en una carpeta diagramas
, o que termine en .drawio.svg
en cualquier otro programa que no sea draw.io, de lo contrario podrías arriesgarte a romper los metadatos del archivo, haciéndolo ineditable.
Extensiones de archivo
Las extensiones de archivo deben usar el formato de código. Por ejemplo, use:
``.png``
en lugar de:
.png
".png"
"``.png``"
Tablas de contenido (TDC)
Cada categoría debe contener un «índice.rst». Este archivo de índice debe contener una «profundidad máxima» de «1». Las subcategorías son aceptables, con una profundidad máxima
de 1.
The category index.rst
file can then be added to the root index file located at source/index.rst
.
Ejemplos
Title
=====
This is an example article
.. code-block:: java
System.out.println("Hello World");
Section
-------
This is a section!
¡Nota importante!
Esta lista no es exhaustiva y los administradores se reservan el derecho de hacer cambios. Los cambios se reflejarán en este documento.