emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] TOC local for specified heading and its subheadings (in HTML exp


From: Sacha Chua
Subject: Re: [O] TOC local for specified heading and its subheadings (in HTML export)?
Date: Fri, 27 Nov 2015 23:58:17 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (windows-nt)

"D. C. Toedt" <address@hidden> writes:

Hello, D. C., all!

> # ============= The next line is the desired feature: Generate a TOC list
> (with links) of all subheadings in the specified heading
> =====================
> #+TOC: headlines 1 local ConfInfoClauses

This is totally a partial implementation since I've only bothered to
make it work for HTML export, but someone can make it work nicely for
everything else. =)

I think it will permit the use of lines like:

#+TOC: headlines 1 id:ConfInfoClauses

diff --git a/lisp/ox-html.el b/lisp/ox-html.el
index effd387..3b0e239 100644
--- a/lisp/ox-html.el
+++ b/lisp/ox-html.el
@@ -2651,8 +2651,18 @@ CONTENTS is nil.  INFO is a plist holding contextual 
information."
         ((string-match "\\<headlines\\>" value)
          (let ((depth (and (string-match "\\<[0-9]+\\>" value)
                            (string-to-number (match-string 0 value))))
-               (localp (org-string-match-p "\\<local\\>" value)))
-           (org-html-toc depth info (and localp keyword))))
+               (localp (org-string-match-p "\\<local\\>" value))
+               (local-id (and (string-match "\\<id:\\(.+\\)\\>" value)
+                              (match-string 1 value))))
+           (org-html-toc depth info
+                         (or
+                          (and local-id
+                               (car (org-element-map (plist-get info 
:parse-tree)
+                                        'headline
+                                      (lambda (element)
+                                        (and (string= (org-element-property 
:CUSTOM_ID element) local-id)
+                                             element)))))
+                          (and localp keyword)))))
         ((string= "listings" value) (org-html-list-of-listings info))
         ((string= "tables" value) (org-html-list-of-tables info))))))))
 
D. C., are you okay with applying patches to your local copy, or do
you need someone to clean it up and merge it into core?

I have copyright assignment papers on file. Feel free to do what you
want with the code!

Sacha




reply via email to

[Prev in Thread] Current Thread [Next in Thread]