Hi, I've been using the new html exporter (org-e-html) recently, and I'm surprised that it does not add tables of contents by default. Is there a user variable which I can customize to change this default? Currently the only way I see to add a table of contents is to add a TOC keyword to the buffer. Thanks, -- Eric Schulte http://cs.unm.edu/~eschulte
Eric Schulte <eric.schulte@gmx.com> wrote:
> Hi,
>
> I've been using the new html exporter (org-e-html) recently, and I'm
> surprised that it does not add tables of contents by default. Is there
> a user variable which I can customize to change this default? Currently
> the only way I see to add a table of contents is to add a TOC keyword to
> the buffer.
>
org-export-with-toc perhaps?
Nick
[-- Attachment #1: Type: text/plain, Size: 1070 bytes --] Nick Dokos <nicholas.dokos@hp.com> writes: > Eric Schulte <eric.schulte@gmx.com> wrote: > >> Hi, >> >> I've been using the new html exporter (org-e-html) recently, and I'm >> surprised that it does not add tables of contents by default. Is there >> a user variable which I can customize to change this default? Currently >> the only way I see to add a table of contents is to add a TOC keyword to >> the buffer. >> > > org-export-with-toc perhaps? > > Nick > Nope, With this variable set to t the e-html backend does *not* produce a table of contents. To demonstrate, run the following from the command line with the attached Org-mode file (although any file will do) saved to /tmp/example.org. # -*- shell-script -*- emacs --batch -l path/to/org-mode/lisp/org-element.el \ -l path/to/org-mode/contrib/lisp/org-export.el \ -l path/to/org-mode/contrib/lisp/org-e-html.el \ /tmp/example.org \ --eval '(let ((org-export-with-toc t)) (org-export-to-file (quote e-html) "/tmp/example.html"))' [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: example.org --] [-- Type: text/x-org, Size: 541 bytes --] #+Title: example file * foo Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit tempor tellus. Donec pretium posuere tellus. Proin quam nisl, tincidunt et, mattis eget, convallis nec, purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla posuere. Donec vitae dolor. Nullam tristique diam non turpis. Cras placerat accumsan nulla. Nullam rutrum. Nam vestibulum accumsan nisl. * bar | one | two | | three | four | * baz ** sub one - one - two ** sub two - three - four [-- Attachment #3: Type: text/plain, Size: 46 bytes --] -- Eric Schulte http://cs.unm.edu/~eschulte
Eric Schulte <eric.schulte@gmx.com> wrote:
> Nick Dokos <nicholas.dokos@hp.com> writes:
>
> > Eric Schulte <eric.schulte@gmx.com> wrote:
> >
> >> Hi,
> >>
> >> I've been using the new html exporter (org-e-html) recently, and I'm
> >> surprised that it does not add tables of contents by default. Is there
> >> a user variable which I can customize to change this default? Currently
> >> the only way I see to add a table of contents is to add a TOC keyword to
> >> the buffer.
> >>
> >
> > org-export-with-toc perhaps?
> >
> > Nick
> >
>
> Nope,
>
> With this variable set to t the e-html backend does *not* produce a
> table of contents. To demonstrate, run the following from the command
> line with the attached Org-mode file (although any file will do) saved
> to /tmp/example.org.
>
> # -*- shell-script -*-
> emacs --batch -l path/to/org-mode/lisp/org-element.el \
> -l path/to/org-mode/contrib/lisp/org-export.el \
> -l path/to/org-mode/contrib/lisp/org-e-html.el \
> /tmp/example.org \
> --eval '(let ((org-export-with-toc t)) (org-export-to-file (quote e-html) "/tmp/example.html"))'
Try setting it to 4: org-e-html.el says (around line 1475)
--8<---------------cut here---------------start------------->8---
;; table of contents
(let ((depth (plist-get info :with-toc)))
(when (wholenump depth) (org-e-html-toc depth info)))
--8<---------------cut here---------------end--------------->8---
even though that contradicts the docstring for the variable.
Nick
[-- Attachment #1: Type: text/plain, Size: 1769 bytes --] Nick Dokos <nicholas.dokos@hp.com> writes: > Eric Schulte <eric.schulte@gmx.com> wrote: > >> Nick Dokos <nicholas.dokos@hp.com> writes: >> >> > Eric Schulte <eric.schulte@gmx.com> wrote: >> > >> >> Hi, >> >> >> >> I've been using the new html exporter (org-e-html) recently, and I'm >> >> surprised that it does not add tables of contents by default. Is there >> >> a user variable which I can customize to change this default? Currently >> >> the only way I see to add a table of contents is to add a TOC keyword to >> >> the buffer. >> >> >> > >> > org-export-with-toc perhaps? >> > >> > Nick >> > >> >> Nope, >> >> With this variable set to t the e-html backend does *not* produce a >> table of contents. To demonstrate, run the following from the command >> line with the attached Org-mode file (although any file will do) saved >> to /tmp/example.org. >> >> # -*- shell-script -*- >> emacs --batch -l path/to/org-mode/lisp/org-element.el \ >> -l path/to/org-mode/contrib/lisp/org-export.el \ >> -l path/to/org-mode/contrib/lisp/org-e-html.el \ >> /tmp/example.org \ >> --eval '(let ((org-export-with-toc t)) (org-export-to-file (quote e-html) "/tmp/example.html"))' > > Try setting it to 4: org-e-html.el says (around line 1475) > > > --8<---------------cut here---------------start------------->8--- > ;; table of contents > (let ((depth (plist-get info :with-toc))) > (when (wholenump depth) (org-e-html-toc depth info))) > --8<---------------cut here---------------end--------------->8--- > > even though that contradicts the docstring for the variable. > Indeed, setting this variable to 4 does result in TOC generation. I'd recommend the attached patch. Thanks, [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Better-use-of-default-org-export-with-toc-value.patch --] [-- Type: text/x-patch, Size: 993 bytes --] From 228c4bbdd2fc145b135de233632e8884d1d53cd7 Mon Sep 17 00:00:00 2001 From: Eric Schulte <eric.schulte@gmx.com> Date: Thu, 23 Aug 2012 12:41:52 -0600 Subject: [PATCH] Better use of default org-export-with-toc value * contrib/lisp/org-e-html.el (org-e-html-template): Default value of t for org-export-with-toc has no impact, so instead when t set TOC depth to 4. --- contrib/lisp/org-e-html.el | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/lisp/org-e-html.el b/contrib/lisp/org-e-html.el index 4e9d398..ee0f247 100644 --- a/contrib/lisp/org-e-html.el +++ b/contrib/lisp/org-e-html.el @@ -1473,6 +1473,7 @@ original parsed data. INFO is a plist holding export options." <h1 class=\"title\">%s</h1>\n" (org-export-data (plist-get info :title) info)) ;; table of contents (let ((depth (plist-get info :with-toc))) + (when (eq t depth) (setq depth 4)) (when (wholenump depth) (org-e-html-toc depth info))) ;; document contents contents -- 1.7.12 [-- Attachment #3: Type: text/plain, Size: 46 bytes --] -- Eric Schulte http://cs.unm.edu/~eschulte
Eric Schulte <eric.schulte@gmx.com> wrote:
> I'd recommend the attached patch.
>
> Thanks,
>
> From 228c4bbdd2fc145b135de233632e8884d1d53cd7 Mon Sep 17 00:00:00 2001
> From: Eric Schulte <eric.schulte@gmx.com>
> Date: Thu, 23 Aug 2012 12:41:52 -0600
> Subject: [PATCH] Better use of default org-export-with-toc value
>
> * contrib/lisp/org-e-html.el (org-e-html-template): Default value of t
> for org-export-with-toc has no impact, so instead when t set TOC depth
> to 4.
> ---
> contrib/lisp/org-e-html.el | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/contrib/lisp/org-e-html.el b/contrib/lisp/org-e-html.el
> index 4e9d398..ee0f247 100644
> --- a/contrib/lisp/org-e-html.el
> +++ b/contrib/lisp/org-e-html.el
> @@ -1473,6 +1473,7 @@ original parsed data. INFO is a plist holding export options."
> <h1 class=\"title\">%s</h1>\n" (org-export-data (plist-get info :title) info))
> ;; table of contents
> (let ((depth (plist-get info :with-toc)))
> + (when (eq t depth) (setq depth 4))
> (when (wholenump depth) (org-e-html-toc depth info)))
> ;; document contents
> contents
In the t case, the depth should probably be set to org-export-headline-levels,
instead of 4.
Nick
Hello,
Nick Dokos <nicholas.dokos@hp.com> writes:
> Eric Schulte <eric.schulte@gmx.com> wrote:
>
>> I'd recommend the attached patch.
>>
>> Thanks,
>>
>> From 228c4bbdd2fc145b135de233632e8884d1d53cd7 Mon Sep 17 00:00:00 2001
>> From: Eric Schulte <eric.schulte@gmx.com>
>> Date: Thu, 23 Aug 2012 12:41:52 -0600
>> Subject: [PATCH] Better use of default org-export-with-toc value
>>
>> * contrib/lisp/org-e-html.el (org-e-html-template): Default value of t
>> for org-export-with-toc has no impact, so instead when t set TOC depth
>> to 4.
>> ---
>> contrib/lisp/org-e-html.el | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/contrib/lisp/org-e-html.el b/contrib/lisp/org-e-html.el
>> index 4e9d398..ee0f247 100644
>> --- a/contrib/lisp/org-e-html.el
>> +++ b/contrib/lisp/org-e-html.el
>> @@ -1473,6 +1473,7 @@ original parsed data. INFO is a plist holding export options."
>> <h1 class=\"title\">%s</h1>\n" (org-export-data (plist-get info :title) info))
>> ;; table of contents
>> (let ((depth (plist-get info :with-toc)))
>> + (when (eq t depth) (setq depth 4))
>> (when (wholenump depth) (org-e-html-toc depth info)))
>> ;; document contents
>> contents
>
>
> In the t case, the depth should probably be set to org-export-headline-levels,
> instead of 4.
This should be fixed in master. Note that the #+TOC: support is still
incomplete.
Thanks for the report. Cc'ing Jambunathan for the heads up.
Regards,
--
Nicolas Goaziou