Improving ddoc

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Fri Jan 2 01:40:51 PST 2015


On 1/1/15 2:38 PM, Jacob Carlborg wrote:
> On 2014-12-31 20:50, Andrei Alexandrescu wrote:
>
>> In wake of the recent discussions on improving ddoc syntax we're looking
>> at doing something about it. Please discuss any ideas you might have
>> here. Thanks!
>
> I think there are two big issues with Ddoc: its syntax and its lack of
> functionality. I think the major reason for these issues is that Ddoc is
> a general text macro tool. Personally I would just throw out Ddoc and
> start completely fresh, I know that is too extreme so I'm not suggesting
> that.

Sounds great, thanks.

> I think the solution is to use Ddoc as it is today, with full support
> for Github flavored Markdown added and a couple of other enhancements.

Full support would probably break a lot of extant documentation.

> The reason is listed below:
>
> I'm not going to argue so much about the syntax since many others have
> already done so.
>
> The functionality that I feel is missing:
>
> * Automatically generating cross-references

Nice.

> * Inhering documentation. Methods that override some other method should
> automatically inherit the documentation of the overridden method, unless
> there's already documentation present for that method or explicitly
> disable the inheritance with a command.

Nice!

> * A list of summary with all symbols should be automatically generated
> for a module

Shouldn't we leave that to postprocessing?

> * Documentation for private symbols should be generated but hidden by
> default in the output with a button to show them

Nice.

> * A nice tree view with all packages and modules with filter for all
> symbols

This seems like a matter of styling, not functionality.

> * Automatically create links to the source code for each symbol. This
> could either be to syntax highlighted source code Ddoc generates or to
> Github. There could be a flag (or some other way) to specify which
> Github project to link to

Nice.

> * Simplified signatures. Template constraints and default values which
> are special symbols like __FILE__ or __LINE__ should be hidden by default

Nice.

> The following should automatically be generated for a given class:
>
> * Links to all base classes and interfaces of a class
> * Links to all symbols from all base classes and interfaces
> * Links to all known subclasses
>
> That are just a couple of suggestions. Just take a look at some existing
> documentation for other language and see what's missing [1], [2].
>
> [1]
> http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Foverview-summary.html
>
>
> [2] http://www.scala-lang.org/api/current/#scala.collection.Iterable

Looks like a great list, thanks.


Andrei



More information about the Digitalmars-d mailing list