Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upRFC: Links to Rust items in documentation text #792
Comments
steveklabnik
referenced this issue
Feb 2, 2015
Closed
RFC: Links to Rust items in documentation text #9864
steveklabnik
added
the
A-wishlist
label
Feb 2, 2015
lifthrasiir
referenced this issue
May 17, 2015
Closed
It is hard to find arrays out in the TRPL #25535
This comment has been minimized.
This comment has been minimized.
Mange
commented
Dec 13, 2017
|
I'd be interested in seeing this RFC get some more activity, now that 1.0 is far behind us. I hope it's okay to resurrect old RFCs like this. This is my first time, so I apologize if this is not the way to go. Regarding the placeholder syntax. Perhaps overloading normal Markdown links is the way to go, as to not introduce anything non-standard to the Markdown syntax? One could attach special meaning to a new See [`FooEnum`](ref:FooEnum)'s [`Bar`][bar] variant.
[bar]: ref:FooEnum::BarIf this is too much work for references, perhaps a shortcut could be made like this: See [`FooEnum`]'s [`Bar`][FooEnum::Bar] variant.where the compiler would auto-insert references to links with backticks on them, resulting in the following complete markdown: See [`FooEnum`]'s [`Bar`][FooEnum::Bar] variant.
[FooEnum]: ref:FooEnum
[FooEnum::Bar]: ref:FooEnum::BarI personally think that would be a bad idea for a first go at this as it might paint us into a corner later, but putting it out there anyway. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Mange
commented
Dec 19, 2017
|
Thank you. I didn't realize that this wasn't the newest RFC on the matter. I see that #1946 is merged now. Does that mean that this RFC should be closed? |
This comment has been minimized.
This comment has been minimized.
|
Yep, I believe it should be! |
steveklabnik commentedFeb 2, 2015
Tuesday Oct 15, 2013 at 07:57 GMT
For earlier discussion, see rust-lang/rust#9864
This issue was labelled with: A-rustdoc, I-enhancement in the Rust repository
(The syntax should be decided on.
<<<>>>is just a bad-by-design placeholder so that it gets changed.)The text in
<<<...>>>would be interpreted as a module-relative path (unless prefixed by::which makes it crate-relative), since I imagine intra-module links are the most common. And each<<<foo::bar>>>would get replaced by either[bar](rustdoc generated link)or[foo::bar](rustdoc generated link)or something (possibly/preferably linking each component of the path in the latter case).Issues
I'm very unsure about:
useproposal below doesn't work withuse Trait::static_methodor with types either);<<<foo.method>>>and fields<<<foo.field>>>.Other tools
'Foo.Bar':py:mod:foo``{@link #foo(type, type)}{text here][rdoc-ref:Foo::Bar](These aren't necessarily correct, and I'm sure there are many many more possible syntaxes.)
Implementation
One possibility for implementation by rustdoc just throwing the contents of each
<<<>>>into a use statement in the current module like (from the top of the example above):where
unique_name_...would be designed in so that it can never occur in user code (e.g. containing non-ident characters). After running resolve, rustdoc could go in an extract the value of each name. Notably, the optional.<ident>gets stripped, and has to be extracted by the rustdoc code itself, and this would also mean that documentation could result in a compile error if any of these links doesn't resolve properly (which is quite sensible IMO).A nicer method would be if resolve could be queried for individual items after running as a whole.