-
Notifications
You must be signed in to change notification settings - Fork 9
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
Consistently handle storage of target/reference labels #10
Comments
Maybe something like storing them in |
Note one thing from docutils I found a little confusing, is that nodes can have both fields: Then for references, in transforms I'm not sure just yet, how much of this kind of logic we should be thinking to use. |
I have taken a first crack at this. I used the concept of I have stored the target object on the token as you suggest, but it also needs to be accessible from the state. I have a used a namespaced env for this (
|
Most directives allow for a
name
option for referencing them, then for roles we have e.g.{ref}`text<label>`
and the equivalent Markdown syntax like[text](label)
.Then we also have the target syntax in myst:
(label)=
(a reference implementation is currently here: https://github.com/executablebooks/myst-vs-code/blob/83460fc5f14517e8d6c6b7eb5581d814389fbc7c/src/mdPlugins.ts#L32, but perhaps we should move that into this package, they also get a little trick as we also need to "propogate" them down to the next block token, see: https://github.com/chrisjsewell/rst-language-server#transformsreferencespropagatetargets).Essentially we want to be able to easily "scan" down the markdown-it token stream, and pull out all these targets and references, along with their map (a.k.a. position in the source text) and probably index in the token stream
cc @rowanc1
The text was updated successfully, but these errors were encountered: