For now this will wrap based on the view with the assumption, based on
our discussions, that User Guide docs are based on antora and lib docs
are asciidocs. Should there turn out to be edge cases we will make some
adjustments.
Generated classes will be `source-docs-antora` and
`source-docs-asciidoc`.
Solves #1116
The code changes in `htmlhelper.py` remove the sponsorship links about
downloads from the release notes. This improves the clarity and focus of
the release notes by removing unnecessary information.
- Add documentation_url to LibraryVersion table
- Retrieve the documentation_url in the view
- If the documentation_url is not present, show the Version documentation_url
- Hide the "https://" in the template
- Add Celery task to retrieve the documentation_urls from the libraries page in S3 and match them to import_library_versions
- Add HTML helper function to extract the libraries and docs URLs from the HTML
- Add one-time command to import docs urls
- Load the documentation_urls in the command that loads all library-versions
- Add a min-release option to the command that loads library-versions
- Document the new command and changes to the existing command
This modernization occurs on the fly over potentially-cached S3 files. This
means, the legacy doc pages are fetched and cached just like any other S3
static content, and the modernization happens when the page is requested. This
way, we can safely render modern parts of the pages (like the header) and
account for dynamic state such as logged in users.
The resulting docs (also called FrankenDocs :-)) are processed using
BeautifulSoup and a fairly simple heuristic that can be found in the
`core/htmlhelper.py` module.