Commit 55fd2c9
docs: convert reStructuredText sources to MyST markdown (#1579)
* docs: convert restructuredText sources to MyST markdown
Phase 2 of the documentation-site refresh. Run `rst2myst convert` over
every human-authored .rst file under docs/source/ and remove the
originals. The result:
- 33 .rst files become 33 .md files (user guide, contributor guide,
index, links).
- Headings, paragraphs, hyperlinks, code blocks, admonitions, and
toctree directives all map cleanly to MyST syntax.
- Cross-reference anchors round-trip through MyST as `(label)=`
blocks. The converter kebab-cased the labels (e.g. `(io-csv)=`),
but every `{ref}` target in the corpus still uses the underscore
form from the original RST (`{ref}\`CSV <io_csv>\``) and so do the
Python docstrings that AutoAPI pulls in. Rewrite the anchors back
to the underscore form so the existing references resolve.
- 86 `{eval-rst}` blocks remain — they all wrap `.. ipython::`
directives, which have no first-class MyST equivalent. They render
identically and don't block the build.
conf.py changes:
- Enable `colon_fence` and `deflist` MyST extensions (rst-to-myst
emits these on a few files, particularly execution-metrics.md).
- Keep `.rst` in `source_suffix` even though no human-authored RST
remains: sphinx-autoapi generates RST under autoapi/ at build time
and Sphinx needs the suffix registered to parse it.
AGENTS.md: update the two .rst paths called out under "Aggregate and
Window Function Documentation" to point at the .md equivalents.
Verified by building locally — `build succeeded`, no warnings, all
internal cross-references resolve, the ipython examples on the
landing page and basics page still execute.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: fix Apache license header format in converted markdown files
RST-to-MD conversion emitted MyST `%` comment syntax with blank line
between each header line, which renders as visible text. Replace with
canonical `<!--- ... -->` HTML comment block matching upstream
apache/datafusion and this repo's existing markdown files.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: fix broken cross-reference links in distributing-work
The RST -> MyST conversion left two intra-page links as undefined
reference-style links, which CommonMark renders as literal bracketed
text (no Sphinx warning, so the --fail-on-warning build still passed).
Point both at the auto-generated heading anchors instead.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: execute examples via myst-nb; native tables and validated refs
Removes the last RST-syntax islands from the converted MyST markdown so
the docs are markdown-native for both human and LLM authors.
Executable examples (A): replace IPython.sphinxext.ipython_directive with
myst-nb. The 83 `{eval-rst}` + `.. ipython:: python` blocks become native
`{code-cell} ipython3` blocks, and the 14 pages that carry them gain
jupytext/kernelspec front matter so myst-nb runs them. conf.py routes .md
through myst-nb with nb_execution_mode="force" and
nb_execution_raise_on_error=True, so a failing example now fails the build.
myst-nb gives each page its own kernel instead of the IPython directive's
single namespace shared across all documents in build order. That isolation
surfaced expressions.md, which only ever worked by inheriting `col`/`lit`
from an earlier-built page — it now imports them itself. It also changes the
execution working directory to each page's own folder, so build.sh symlinks
the example data next to every page that reads it by relative name and
registers the python3 kernel; CI now calls build.sh so it matches local.
Tables (B): the 3 `.. list-table::` directives become GFM markdown tables.
Cross-references (C): the two intra-page links in distributing-work.md that
the conversion left as undefined markdown references (and that built green
while rendering literal brackets) become `{ref}` roles backed by explicit
`(label)=` targets, so a future break fails the build instead of shipping
silently.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: render DataFrame cell outputs as text, not the HTML widget
myst-nb prefers a cell's `_repr_html_` over its text repr. A datafusion
DataFrame's HTML repr is a Jupyter-oriented widget — inline styles plus an
injected <script> — that renders at the wrong width in the docs theme.
Set nb_mime_priority_overrides so the html builder prefers text/plain. The
35 cells that end in a bare DataFrame now show the same readable ASCII
table the old IPython directive produced, with no per-cell `.show()` edits
and no dependence on the package-generated HTML staying theme-compatible.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs(aggregations): use .alias() on grouping(), drop obsolete workaround
apache/datafusion#21411 is resolved — `.alias()` now works directly on a
`grouping()` expression. Removed the note describing the limitation and the
with_column_renamed workaround in the rollup and grouping_sets examples,
aliasing the grouping columns inline instead. Verified on the current
branch: the aliased aggregates execute and produce the named columns.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: use a dark-mode variant of the logo
The header logo was the same SVG in both color modes; the light-colored
wordmark was hard to read on the dark theme. Point the theme's image_dark
at a new original_dark.svg whose wordmark uses light strokes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: restore right-hand on-this-page TOC, collapsible
The theme refresh emptied secondary_sidebar_items, dropping the
on-this-page table of contents that the previous site showed. Bring it
back on the right, wrapped in a native <details> so readers can fold it
away on the longer guide pages. Adds a custom page-toc-collapsible
secondary-sidebar template and styles the <summary> toggle (no JS).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: let readers hide the right TOC sidebar for full-width content
Follow-up to restoring the on-this-page TOC: "collapsible" should hide the
entire right-hand frame, not just fold the list. Replace the <details>
wrapper with a floating toggle button (toc-toggle.js) that hides the whole
secondary sidebar via a body class; the flex article container then
reclaims the width (its 60em cap is lifted while hidden). The preference is
remembered across pages in localStorage, and the button is suppressed below
the theme's breakpoint where the sidebar is already collapsed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* fix(deps): pin typing-extensions to one version so uv.lock parses in CI
Adding the myst-nb docs stack pulled a newer typing-extensions only on
Python < 3.11, splitting it into two locked versions. Our own
`typing-extensions; python_full_version < '3.13'` dependency then spanned
that split, which uv recorded as a multi-version edge without a `version`
field — a form older uv builds (the one in CI's pinned setup-uv) reject
with "missing source field but has more than one matching package".
Add a [tool.uv] constraint-dependencies pin of typing-extensions>=4.15.0
so it resolves to a single version across all supported Pythons, removing
the fork and the under-specified edge. Relocked; uv lock --locked is clean
and no multi-version package has a marker-only edge.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs(deps): drop pickleshare and explicit ipython from docs group
Both were only needed by the old IPython.sphinxext.ipython_directive,
which myst-nb replaced. pickleshare (IPython %store, abandoned 2018) has
no remaining consumer. ipython is now pulled transitively by ipykernel
and myst-nb, so the explicit floor is redundant. Relocked.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Apply reviewer's suggestion to fix CI error
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent c0ac93b commit 55fd2c9
78 files changed
Lines changed: 7289 additions & 5927 deletions
File tree
- .github/workflows
- docs
- source
- _static
- images
- contributor-guide
- user-guide
- common-operations
- dataframe
- io
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
552 | 552 | | |
553 | 553 | | |
554 | 554 | | |
555 | | - | |
556 | | - | |
557 | | - | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
558 | 559 | | |
559 | 560 | | |
560 | 561 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
| 87 | + | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
| 90 | + | |
91 | 91 | | |
92 | 92 | | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
39 | 54 | | |
40 | 55 | | |
41 | 56 | | |
Loading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
52 | | - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
53 | 56 | | |
54 | 57 | | |
55 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
56 | 65 | | |
57 | 66 | | |
58 | | - | |
| 67 | + | |
59 | 68 | | |
60 | 69 | | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
61 | 85 | | |
62 | 86 | | |
63 | 87 | | |
| |||
120 | 144 | | |
121 | 145 | | |
122 | 146 | | |
123 | | - | |
| 147 | + | |
124 | 148 | | |
125 | 149 | | |
126 | 150 | | |
| |||
138 | 162 | | |
139 | 163 | | |
140 | 164 | | |
141 | | - | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
142 | 169 | | |
143 | 170 | | |
144 | 171 | | |
| |||
164 | 191 | | |
165 | 192 | | |
166 | 193 | | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
167 | 198 | | |
168 | 199 | | |
169 | 200 | | |
170 | 201 | | |
171 | 202 | | |
172 | 203 | | |
173 | 204 | | |
174 | | - | |
175 | | - | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
0 commit comments