rst-to-myst
rst-to-myst copied to clipboard
Target ids are sanitised, so may not align with e.g. references in `ref` roles
Describe the bug
Underscores _
inside a target header seem to get converted into hyphens -
, but not for the references. E.g. this .rst
snippet:
.. _test_snippet:
.. code-block:: Python
# This is a test snippet.
Dude, check out that :ref:`test snippet <test_snippet>`!
Gets converted into:
(test-snippet)=
```{code-block} Python
# This is a test snippet.
```#
Dude, check out that {ref}`test snippet <test_snippet>`!
Expected behavior
Either the underscores should be preserved, or both the target header and references should be converted into hyphens, in case this is preferred.
Environment
- Python Version [e.g. 3.7.1]: 3.8.6
- Package versions or output of
jupyter-book --version
:$ pip freeze | grep myst myst-nb==0.13.0a1 myst-parser==0.14.0a2 rst-to-myst==0.1.2
- Operating System: macOS Big Sur 11.3.1
Heya, docutils id creation is defined here: https://github.com/chrisjsewell/docutils/blob/8adab0660b2097b4f3c32cef7e5ff4cb3c72b084/docutils/docutils/nodes.py#L2196; basically every non-alphanumeric character gets converted to a -
, and so actually test_snippet
should still match test-snippet
(although let me know if you think this is not the case)
I'm going to mark this therefore as an documentation/improvement issue, not a bug; it would be nice to align them, but its a bit tricky to achieve in the code