Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[3.12] gh-127833: Docs: Add a grammar-snippet directive & replace productionlist (GH-127835)#129690

Closed
miss-islington wants to merge 1 commit into
python:3.12python/cpython:3.12from
miss-islington:backport-58a4357-3.12miss-islington/cpython:backport-58a4357-3.12Copy head branch name to clipboard
Closed

[3.12] gh-127833: Docs: Add a grammar-snippet directive & replace productionlist (GH-127835)#129690
miss-islington wants to merge 1 commit into
python:3.12python/cpython:3.12from
miss-islington:backport-58a4357-3.12miss-islington/cpython:backport-58a4357-3.12Copy head branch name to clipboard

Conversation

@miss-islington

@miss-islington miss-islington commented Feb 5, 2025

Copy link
Copy Markdown
Contributor

As a first step toward aligning the grammar documentation with Python's actual
grammar, this overrides the ReST productionlist directive to:

  • use : instead of the ::= symbol
  • add syntax highlighting for strings (using a Pygments highlighting class)

All links and link targets should be preserved. (Unfortunately, this reaches
into some Sphinx internals; I don't see a better way to do exactly what
Sphinx does.)

This also adds a new directive, grammar-snippet, which formats the snippet
almost exactly like what's in the source, modulo syntax highlighting and
keeping the backtick character to mark links to other rules.
This will allow formatting the snippets as in the grammar file
(file:///home/encukou/dev/cpython/Doc/build/html/reference/grammar.html).

The new directive is applied to two simple rules in toplevel_components.rst


(cherry picked from commit 58a4357)

Co-authored-by: Petr Viktorin encukou@gmail.com
Co-authored-by: Blaise Pabon blaise@gmail.com
Co-authored-by: William Ferreira wqferr@gmail.com
Co-authored-by: bswck bartoszpiotrslawecki@gmail.com
Co-authored-by: Adam Turner 9087854+aa-turner@users.noreply.github.com


📚 Documentation preview 📚: https://cpython-previews--129690.org.readthedocs.build/

…roductionlist` (pythonGH-127835)

As a first step toward aligning the grammar documentation with Python's actual
grammar, this overrides the ReST `productionlist` directive to:
- use `:` instead of the `::=` symbol
- add syntax highlighting for strings (using a Pygments highlighting class)

All links and link targets should be preserved. (Unfortunately, this reaches
into some Sphinx internals; I don't see a better way to do exactly what
Sphinx does.)

This also adds a new directive, `grammar-snippet`, which formats the snippet
almost exactly like what's in the source, modulo syntax highlighting and
keeping the backtick character to mark links to other rules.
This will allow formatting the snippets as in the grammar file
(file:///home/encukou/dev/cpython/Doc/build/html/reference/grammar.html).

The new directive is applied to two simple rules in toplevel_components.rst

---------
(cherry picked from commit 58a4357)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Blaise Pabon <blaise@gmail.com>
Co-authored-by: William Ferreira <wqferr@gmail.com>
Co-authored-by: bswck <bartoszpiotrslawecki@gmail.com>
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
@ambv

ambv commented Apr 8, 2025

Copy link
Copy Markdown
Contributor

3.12 is entering security-only fixes mode today.

@miss-islington miss-islington deleted the backport-58a4357-3.12 branch January 2, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.