Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: make readthedocs render a bit nicer and port docs over to Sphinx #1511

Merged
merged 6 commits into from
Oct 19, 2023

Conversation

rickeylev
Copy link
Collaborator

@rickeylev rickeylev commented Oct 19, 2023

This makes the Sphinx-based docs hosted on readthedocs render a bit more nicely, fixes a few issues, and adds some features to //sphinxdocs

This also moves all the docs onto Sphinx, deleting the checked-in documentation.

Doc fixes/improvements:

  • Ports various docs over to Sphinx pages. They're split out from the readme file.
  • Version RTD is building is reflected in the docs
  • Fixes some references to github files
  • Includes the custom CSS file that styled the api docs
  • Removes -Q from doc building; all warnings should be fixed now
  • Added Bazel inventory file. Bazel doesn't provide one, but we can manually provide on
    and still use intersphinx functionality.
  • Added gh-path custom role. This is a shortcut for writing the whole github URL.
  • Sets the primary domain to None. The default is py, which we don't use much of, so it
    just results in confusing crossref errors.
  • Enable nitpicky mode to catch more errors.
  • Remove the starlark marker from codeblocks; that name isn't recognized by Sphinx.
    The highlighting is still sufficient.
  • Adds a glossary

Sphinxdocs improvements:

  • Added a flag to pass along arbitrary -D args to the Sphinx invocations. This allows
    e.g., the version setting of the docs to be set on the command line from the
    READTHEDOCS_VERSION environment variable
  • Added inventory file generation. These are files that allow referencing external
    projects using intersphinx.
  • sphinx_stardocs have their public load path set as their page title. This groups the
    API docs more naturally by file. The path can be customized.
  • sphinx_stardocs can have a footer specified for generated pages. This allows easily
    added a list of link labels for easy re-use.
  • readthedocs_install now tries harder to find an open port
  • The conf.py file is moved into the generated sources directly. This was done because some
    config settings are relative to the conf.py file, which was being placed one directory
    above the regular sources.

Fixes #1484, #1481

…Sphinx

This makes the Sphinx-based docs hosted on readthedocs render a bit
more nicely, fixes a few issues, and adds some features to //sphinxdocs

Doc fixes/improvements:
* Ports various docs over to Sphinx pages. They're split out from
  the readme file.
* Version RTD is building is reflected in the docs
* Fixes some references to github files
* Includes the custom CSS file that styled the api docs
* Removes `-Q` from doc building; all warnings should be fixed now
* Added Bazel inventory file. Bazel doesn't provide one, but we
  can manually provide on and still use intersphinx functionality.
* Added `gh-path` custom role. This is a shortcut for writing
  the whole github URL.
* Sets the primary domain to None. The default is py, which we don't
  use much of, so it just results in confusing crossref errors.
* Enable nitpicky mode to catch more errors.
* Remove the `starlark` marker from codeblocks; that name isn't
  recognized by Sphinx. The highlighting is still sufficient.
* Adds a glossary

Sphinxdocs improvements:
* Added a flag to pass along arbitrary `-D` args to the Sphinx
  invocations. This allows e.g., the `version` setting of the
  docs to be set on the command line from the `READTHEDOCS_VERSION`
  environment variable
* Added inventory file generation. These are files that allow
  referencing external projects using intersphinx.
* `sphinx_stardocs` have their public load path set as their page title.
  This groups the API docs more naturally by file. The path can
  be customized.
* `sphinx_stardocs` can have a footer specified for generated pages.
  This allows easily added a list of link labels for easy re-use.
* `readthedocs_install` now tries harder to find an open port
* The conf.py file is moved into the generated sources directly. This
  was done because some config settings are relative to the conf.py
  file, which was being placed one directory above the regular sources.
@rickeylev rickeylev requested a review from aignas October 19, 2023 08:43
@rickeylev
Copy link
Collaborator Author

This can be previewed at: https://rules-python.readthedocs.io/en/latest/

@rickeylev rickeylev marked this pull request as ready for review October 19, 2023 15:50
add --config=rtd with --stamp
linkify some urls
include manual console script binary docs in generated api docs
organize conf file by extension setting
mark starlark a recognized lexer for codeblocks
a few cleanups in the docs
@rickeylev
Copy link
Collaborator Author

Hm, you know, I think i'll just delete the old stuff in docs/ in this PR, too. That'll avoid any odd rendering issues with myst-markdown in the bzl code, and fix the issue with bazel's downstream testing. I'll make sure to copy over any of the manual merging like what py_console_script_binary was doing

@rickeylev rickeylev changed the title docs: make readthedocs render a bit nicer and port some docs over to Sphinx docs: make readthedocs render a bit nicer and port docs over to Sphinx Oct 19, 2023
@rickeylev rickeylev added this pull request to the merge queue Oct 19, 2023
Merged via the queue into main with commit 327b4e3 Oct 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Setup ReadTheDocs
2 participants