[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