RFR: JDK-8325004: Support a "table-of-contents" for some Markdown spec docs

Magnus Ihse Bursie ihse at openjdk.org
Wed Jan 31 10:05:01 UTC 2024


On Wed, 31 Jan 2024 00:49:09 GMT, Jonathan Gibbons <jjg at openjdk.org> wrote:

> Please review a small change, at least as a "proof of concept", to allow customized options to be given to `pandoc` based on the module and filename for a spec.
> 
> The goal is to allow a Markdown spec file to have an auto-generated table-of-contents, by including the `--toc` option when running pandoc for specific documents.
> 
> There may be better ways to achieve this goal; while I have a working knowledge of this makefile, I'm not an expert. In particular, I tried to find a way to defer the evaluation of the option, so that the declaration of the value did not have to appear before its use in the macros.  But I could only get it to work as presented here.
> 
> No other support for a TOC is needed, since we already generate TOCs for other pages, like tool guides (man pages.)

... wait a moment now. 

I thought I'd already added a mechanism to let the markdown file itself request a TOC?

make/Docs.gmk line 640:

> 638: # Customization for specific files
> 639: 
> 640: jdk.javadoc_doc-comment-spec.md_TOC := --toc

Since this is a method to add any kind of options to pandoc, please call it _OPTIONS instead of _TOC.

Or, if you really want to make it toc-specific, you should do something like:

jdk.javadoc_doc-comment-spec.md_TOC := true

and check the boolean value for this and add `--toc` as appropriate. (That does seem like a worse solution to me.)

make/Docs.gmk line 662:

> 660:             DEST := $(DOCS_OUTPUTDIR)/specs/, \
> 661:             CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
> 662:             OPTIONS := $($m_$(notdir $f)_TOC) -V include-before='$(SPECS_TOP)' -V include-after='$(SPECS_BOTTOM_$($m_$f_NOF_SUBDIRS))', \

I'd like you to calculate a variable for this, a few lines above (can't mark it in github review mode 😞), like:

        $(eval $m_$f_OPTIONS := $($m_$(notdir $f)_OPTIONS) \


and then use that variable instead in the OPTIONS line.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/17642#issuecomment-1918776133
PR Review Comment: https://git.openjdk.org/jdk/pull/17642#discussion_r1472583444
PR Review Comment: https://git.openjdk.org/jdk/pull/17642#discussion_r1472581520


More information about the build-dev mailing list