Re: publish_parts and table of contents?

Tony Narlock <[email protected]>
Newsgroups gmane.text.docutils.user
Message-ID <CAC8GGzOPRYo=jK=_zYS_FCs0Z1ryjuF0==m766XE6z0MLdTUNQ@mail.gmail.com>
Thanks for your help on this.

This is *way* trickier than it looks, with all due respect. Clocked in
almost two days on this so far.

Just trying to get the table of contents separate from html_body.
Seriously considering adding ..contents:: to the source, building HTML and
ripping out the ToC via LXML.

Love reStructuredText and docutils (been having quite a few internal
successes lately), but this particular task feels like going against the
grain.

On July 21, 2017 at 3:39:58 PM, Guenter Milde via Docutils-users (
[email protected]) wrote:

On 2017-07-21, Tony Narlock wrote:

> So here is where I am:
> https://gist.github.com/tony/1a03b7668c9e33672f4465dd63c6076b

No time to look.

> On July 20, 2017 at 11:54:07 AM, Guenter Milde via Docutils-users (
> On 2017-07-20, Tony Narlock wrote:
>> On July 19, 2017 at 5:27:15 PM, Guenter Milde via Docutils-users (

>> ...


> > I suppose rather than messing with "parts", you can use the publish_*
> > functions in a wrapper script:
>
> > Don't use ``.. contents..`` in the source.
>
> > 1. Parse the rst source with publish_doctree()
>
> > Returns a doctree object.
>
>
> > 2. Export doctree to HTML with publish_from_doctree()

Does this work?

Yes, this just gives CSS + HTML for way more than I need. Am I supposed to
see anything special in the HTML or are you just checking that
publish_doctree+publish_from_doctree works (it does).

Way more than html_body (all I need, aside from ToC). And I’m not sure what
I can do with this content?




> > 3. Run the toc-generating transform on the doctree.
> > Returns a "toc doctree".

> Where would it be?

In docutils/transforms/parts.py



> Am I applying the transform correctly in the paste?

>> 4. Export the "toc doctree" with publish_from_doctree().

> Assuming I’m running the transform correctly, I see no difference in the
> output.

So I suppose you don't apply it correctly.

The idea is to collect generate a TOC by travelling over the doctree in
the same manner as it is done by the "Contents" transform.

Therefore, it should be possible to use
docutils.transforms.parts.Contents.build_contents() and pass it the
startnode of the doctree returned by "publish_parts".

>> This is just an idea, not tested and detailled.

Günter



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Docutils-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/docutils-users

Please use "Reply All" to reply to the list.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.