CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
95 lines
4.2 KiB
Markdown
95 lines
4.2 KiB
Markdown
|
|
|
|
# HTML Documentation Instructions
|
|
|
|
## Doxygen
|
|
|
|
Within the directory `docs/src/`, the file `Doxyfile` controls what is produced on the Doxygen part of the website. Likewise, the ```ReadTheDocs``` themed Sphinx webpage is produced via the `conf.py` file. Both pages are build using the the build system created by the CMake configuration step. The Doxygen site is built within the Sphinx directory in the documentation build folder. CMake commands also control how the two websites are stitched together.
|
|
|
|
## Adding documentation
|
|
|
|
Documents can be in either Markdown or reStructuredText File format. Both can be included into the generated website documention. There are differences in their capabilites that this README will not address.
|
|
|
|
### Adding documentation into the `docs` folder
|
|
|
|
Pages that do not fit in any particular source folder can be placed in the `docs/src` folder. Example of these may be overall design documentation or auxiliary behaviors or tools.
|
|
|
|
Images can be contained within the documents, however artifacts (the image files themselves) need to be added to the `docs/src/images` folder. Any other artifacts should be dropped into a new `docs/src/<artifact_label>` folder.
|
|
|
|
After adding the documentation files, the file `docs/src/index.rst` needs to be updated. `index.rst` contains the table of contents for the entire HTML documentation. The file name must be added to the content in the order the document requires. One note of care, the name of the entry in the table of contents must be exact to name of the file being included, minus the suffix, and ***must*** match the case. For example if the file `FooBar.md` is to be included, the entry would read `FooBar` in the table of contents.
|
|
|
|
|
|
### Adding a document from another folder
|
|
|
|
Sometimes it makes sense to have the documentation file resident in the source directory it is referencing. In that case, `CMakeLists.txt` needs to be edited to pull in the file to the `docs/<build_directory>` and deleted when a developer executes a `make clean` command.
|
|
|
|
In the section labeled `# Aux docs` in `CMakeLists.txt` add a custom target in this format:
|
|
|
|
```
|
|
add_custom_target(<copyover_some_readme>
|
|
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../<path_to_doc>/<doc_name> ${DOCS_BUILD_DIR}/src/<new_file_name>
|
|
COMMENT "Copying over <doc_name> to docs/build/src folder as <new_file_name>."
|
|
DEPENDS copysrc_to_builddir
|
|
)
|
|
```
|
|
|
|
Rename the `< >` bracketed sections to the names and paths needed. Then the custom target under the label `# Prebuild Sphinx` needs editing to add the created custom target's name:
|
|
|
|
```
|
|
# Prebuild Sphinx
|
|
add_custom_target(prebuild_sphinx
|
|
DEPENDS
|
|
copysrc_to_builddir
|
|
clip_designreadme
|
|
copyover_mainreadme
|
|
copyover_dockerreadme
|
|
<copyover_some_readme>
|
|
build_doxygen
|
|
)
|
|
```
|
|
|
|
The order here does not matter. Finally, don't forget to update the `docs/src/index.rst` file with the `<new_file_name>` without the file type suffix.
|
|
|
|
`CMakeLists.txt` can also be used to modify the file before the website is built. There are multiple examples of document editing in that file.
|
|
|
|
|
|
### Mermaid Charts
|
|
|
|
Sphinx is able to render Mermaid charts such as:
|
|
|
|
```{mermaid}
|
|
graph TD
|
|
|
|
UA(["User(A)"])
|
|
SDA0(["SubDimension(A; 0)"])
|
|
SDA1(["SubDimension(A; 1)"])
|
|
MTAN0(["MacroTileNumber(A; 0)"])
|
|
MTAI0(["MacroTileIndex(A; 0)"])
|
|
MTAN1(["MacroTileNumber(A; 1)"])
|
|
MTAI1(["MacroTileIndex(A; 1)"])
|
|
|
|
FK(["K Loop Iterations (512)"])
|
|
|
|
UA -- Split --> SDA0 & SDA1
|
|
SDA0 -- Tile --> MTAN0 & MTAI0
|
|
SDA1 -- Tile --> MTAN1 & MTAI1
|
|
MTAN1 -- PassThrough --> FK
|
|
|
|
style MTAN0 stroke:#3f3
|
|
style FK stroke:#3f3
|
|
```
|
|
|
|
However, GitHub's style differs slightly from the Sphinx plugin. GitHub expects `mermaid::` while Sphinx expects `{mermaid}`.
|
|
This means a sed command needs to be run to find and replace the string. Here is an example:
|
|
|
|
```
|
|
add_custom_target(<copyover_some_readme>
|
|
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../<path_to_doc>/<doc_name> ${DOCS_BUILD_DIR}/src/<new_file_name>
|
|
COMMAND sed -i 's;mermaid::;{mermaid};g' ${DOCS_BUILD_DIR}/src/<new_file_name>
|
|
COMMENT "Copying over <doc_name> to docs/build/src folder as <new_file_name>."
|
|
DEPENDS copysrc_to_builddir
|
|
)
|
|
```
|
|
|
|
Where `sed -i 's;mermaid::;{mermaid};g'` is the command that replaces the string.
|