MyST-NB
MyST-NB copied to clipboard
Error parsing relative path in `{glue}` role with subcommand
Describe the bug
If I use the {glue}
role with a specific subcommand (e.g. {glue:text}
), I get a warning that the key is not found, even when the path is specified correctly. For example, this: {glue:text}
demographics.md::num_respondents` gives the following warning:
WARNING: No key 'demographics.md:' found in glue data for this document. (use `path::key`, to glue from another document) [mystnb.glue] [mystnb.glue]
The structure of the warning to me implies that there is a problem with the parsing of colons here, as the demographics.md:
part of the warning is very suspicious.
Indeed when I remove the :text
subcommand from the {glue}
directive, the warning disappears: {glue}
demographics.md::num_respondents`.
Possibly related to #591
Reproduce the bug
For ease of reproduction, I recommend creating two new dummy files in the same directory of an existing myst-nb project:
- Create
foo.md
with the following contents:
---
jupytext:
formats: md:myst
text_representation:
format_name: myst
kernelspec:
display_name: Python 3
name: python3
---
# FOO
```{code-cell} ipython3
---
tags: [hide-input]
---
from myst_nb import glue
glue("answer", 42, display=False)
```
- Create
bar.md
with the following contents:
---
jupytext:
formats: md:myst
text_representation:
format_name: myst
kernelspec:
display_name: Python 3
name: python3
---
# BAR
This line warns and fails to link: {glue:text}`foo.md::answer`.
This line is fine: {glue}`foo.md::answer`.
- Add
foo
andbar
to the toctree - Then build the project:
make html
. This should give the warning:
<path/to>/bar.md:13: WARNING: No key 'foo.md:' found in glue data for this document. (use `path::key`, to glue from another document) [mystnb.glue] [mystnb.glue]
List your environment
I'm using myst-nb via sphinx directly without the jupyter-book CLI, so hopefully relevant info:
myst-nb 1.1.1
myst-parser 4.0.0
Sphinx 8.0.2