Cross referencing in Ddoc

Vladimir Panteleev vladimir at thecybershadow.net
Tue Dec 31 02:05:46 PST 2013


On Tuesday, 31 December 2013 at 09:29:20 UTC, Sönke Ludwig wrote:
> My favorite solution would be to introduce a simple 
> #identifier.chain or
> @identifier.chain syntax to let the compiler or documentation 
> generator
> insert the proper links or macro calls. Using a sepecial $(REF
> identifier.chain) pseudo macro, like Jacob suggested, would 
> work as
> well, but I can't see how the additional syntax/visual/typing 
> overhead
> is justified for such a common feature - at least when trying 
> to find an
> optimal solution, compared to the current macro based system it 
> would of
> course still be a big improvement.

I agree that a good compromise would be to lighten the syntactic 
overhead.

How about using the $(D) macro instead of $(REF)? This macro 
syntax-highlights its parameter as D code, and in Phobos it is 
already used for identifiers, so I think a good solution would be 
to find and create cross-reference links only for $(D contents).

Also, I'd like to mention a previous idea I posted here: this 
problem, and several other problems we have with DDoc, would be 
gone if we'd put what we already have with what we already have, 
and allow writing D code that gets interpreted to translate 
documentation comments into documentation output, using our 
existing CTFE capabilities. This way, the entire DDoc syntax can 
be reimplemented using "library" D code, interpreted by the 
compiler during documentation generation, and anyone could build 
upon it or completely replace it with another syntax.

P.S. How come your user agent (Thunderbird) is not emitting 
format=flowed messages? According to [1], it supports 
format=flowed, and can only be disabled via editing option 
strings.

[1]: 
http://kb.mozillazine.org/Plain_text_e-mail_(Thunderbird)#Flowed_format


More information about the Digitalmars-d mailing list