-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Documentation conversion into Mkdocs #5384
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
base: live-docs
Are you sure you want to change the base?
Conversation
…d break
into individual scripts.
- Tidy up imports etc. while doing so.
- Move code generation from `./codegen` to `./bin/codegen`.
- Move `plot-schema.json` to `./resources` rather than burying it under the
`codegen` folder.
- Add `Makefile` to run commands instead of putting everything in `commands.py`.
- Run `ruff` directly for checking and formatting rather than launching a
subprocess from Python as `commands.py` did.
- Modify `.gitignore to ignore `docs` and `docs_tmp`. (Will eventually want to
include `docs` or overwrite `doc`.)
- Minor reformatting of `README.md`.
- Update `CONTRIBUTING.md` to describe relocation of commands and code
generation to `bin`.
- `CONTRIBUTING.md` documents `--local`, `--devrepo` and `--devbranch` options
for updating JavaScript bundle that `commands.py` didn't seem to provide.
- Add `mkdocs.yml` configuration file for `mkdocs`.
- Most of this file was vibe coded using Claude.
- `mkdocs` does not support reading configuration from `pyproject.toml`, so
we need the extra config file.
- Use `material` theme.
- Read hand-written Markdown from `pages` and write output to `docs`.
- Generate module index pages on the fly using `mkdocs-gen-files` plugin.
(See discussion of `bin/generate_reference_pages.py` below.)
- Set docstring style to `google` (even though much of our documentation
isn't formatted that way).
- Add placeholder Markdown files in `pages` that include files from the root
directory (README, code of conduct, contributors' guide, license).
- Remove relative links between these pages because they don't work when
the content is transcluded one directory lower.
- Modify docstring in `plotly/_subplots.py` to escape closing `]` with backslash
to avoid confusing `mkdocs` Markdown.
- Here and elsewhere the escape is written `\\]` because we need `\]` in the
actual string. We could convert the docstrings to literal strings prefixed
with `r` to avoid the double backslash.
- Have also escaped some `[` as `\\[` for the same reason.
- Similar change to `plotly/basedatatypes.py`.
- Reformat line breaks in docstrings in `plotly/express/_core.py`.
- Modify `pyproject.toml` to install `mkdocs` and related packages for dev.
- Modify `pyproject.toml` to install `pydoclint` for checking documentation.
- Currently reporting a *lot* of errors.
- Update `uv.lock` to match.
Add `plotly.express` docstrings
preload _plotly_utils to display full reference content for plotly.colors
- Add `bin/run_markdown.py` (with help from Claude).
- Runs Python chunks embedded in Markdown, writing result as Markdown.
- Has option to embed interactive figures as well as generate PNG.
- Modify `Makefile` to run the script on selected files for testing purposes.
- Commented-out target runs on all.
To do:
- [ ] Figure out why `bin/run_markdown.py` fails with "too many open files" for large numbers of input files.
- [ ] Modify `Makefile` to allow select re-running as well as batch runs.
- [ ] Modify `bin/run_markdown.py` to use a single Kaleido sub-process to speed up image generation.
- Updates `pyproject.toml` to install packages previously listed in `doc/requirements.txt`. - Removes `doc/requirements.txt`. - Run `python bin/check-all-md.py doc/python/*.md` to re-run all examples.
Exclude code blocks that aren't run
Changes were made to line 2037, in the case where a node is valType info_array in the JSON with dimension: 2 (eg. groups in _node.py line 137). This fixes the issue where markdown interprets it as a hyperlink. This line adds '[][]' to the description after the description passed in the JSON file as part of the validation process. Now, markdown correctly interprets the brackets as consecutive brackets instead.
All three cases in 'InfoArrayValidator' no longer encounter '[][]' errors. For examples, see '_node.py' groups property, '_image.py' zmax property, '_dimension.py' constraintrange property. Keep the newline between "...specified as" and "* ..." to avoid rendering a code block. Note: Python now raises a SyntaxWarning due to '\['.
Changes were made to line 2037, in the case where a node is valType info_array in the JSON with dimension: 2 (eg. groups in _node.py line 137). This fixes the issue where markdown interprets it as a hyperlink. This line adds '[][]' to the description after the description passed in the JSON file as part of the validation process. Now, markdown correctly interprets the brackets as consecutive brackets instead.
All three cases in 'InfoArrayValidator' no longer encounter '[][]' errors. For examples, see '_node.py' groups property, '_image.py' zmax property, '_dimension.py' constraintrange property. Keep the newline between "...specified as" and "* ..." to avoid rendering a code block. Note: Python now raises a SyntaxWarning due to '\['.
For examples, see '_annotation.py' property axref.
Update link text descriptions
…n 'Visualizing Biological Data' section to match live site, and add SEO meta tags
…ss/_doc.py' from the main repo
| plotly==6.3.0 | ||
| anywidget | ||
| cufflinks==0.17.3 | ||
| dash-bio |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One of the tests is failing because this is missing. I think we can restore it for now and completely remove it once we take down the old docs
| see the "Setup" section below for more details. | ||
|
|
||
| - Documentation is found in `doc/`, and its structure is described in [its README file](doc/README.md). | ||
| - Documentation is found in `doc/`, and its structure is described in its README file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we update the readme to have the new doc build process.
And add a github action that runs all the commands required to build the docs and save them as an artifact.
| PROJECT_ROOT = Path(__file__).parent.parent.parent | ||
| PLOT_SCHEMA_RELATIVE = Path("resources") / "plot-schema.json" | ||
| PLOT_SCHEMA = PROJECT_ROOT / PLOT_SCHEMA_RELATIVE | ||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this change needed in codegen for docs?
|
@LiamConnors @daexs The See lines 326-330 of These lines should be added at the end of There is also a missing import statement. |
|
Actually, hmm. It looks like the entire To be honest I'm not very enthusiastic about mixing codegen changes in with this PR. I realize there are some changes to the codegen which are required in order for Mkdocs to work properly, but I would prefer to keep the codegen changes to only what is strictly necessary for the docs to work, and keep any other codegen changes for another PR. |
|
In any case, the import subprocess
...
def reformat_code(outdir):
"""Reformat Python code using settings in pyproject.toml."""
subprocess.call(["ruff", "format", *make_paths(outdir)])So the immediate issue can be fixed by adding that function to |
|
@daexs There are two changes I had to make in order to build the docs successfully on my machine:
|
Converted the plotly.py documentation build into Mkdocs
\\\\[i\\\\]\\\\[{i}\\\\]ensures that Mkdocs will correctly render this portion of the docstring into[i][i].plotly/plotly.py/README.mdand index pages are placed in each individual category of examples underOverview.