From: Nicolas Goaziou <n.goaziou@gmail.com>
To: Rainer Stengele <rainer.stengele@online.de>
Cc: Bastien <bzg@gnu.org>, emacs-orgmode@gnu.org
Subject: Re: Show TODO item in table of contents
Date: Wed, 06 Nov 2013 15:29:28 +0100 [thread overview]
Message-ID: <87ppqdbo3b.fsf@gmail.com> (raw)
In-Reply-To: <527A013D.8000105@online.de> (Rainer Stengele's message of "Wed, 06 Nov 2013 09:43:41 +0100")
[-- Attachment #1: Type: text/plain, Size: 196 bytes --]
Hello,
Rainer Stengele <rainer.stengele@online.de> writes:
> In html export include todo state words in table of contents.
Would the following patch do the job?
Regards,
--
Nicolas Goaziou
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ox-html-Add-TODO-keyword-to-TOC-entries.patch --]
[-- Type: text/x-diff, Size: 3428 bytes --]
From 7b85dbbc22e73766ac92295d2b37ae692b20d289 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <n.goaziou@gmail.com>
Date: Wed, 6 Nov 2013 15:26:53 +0100
Subject: [PATCH] ox-html: Add TODO keyword to TOC entries
* lisp/ox-html.el (org-html--format-toc-headline): TOC entries are
closer to regular headline formatting.
---
lisp/ox-html.el | 54 +++++++++++++++++++++++++++++++-----------------------
1 file changed, 31 insertions(+), 23 deletions(-)
diff --git a/lisp/ox-html.el b/lisp/ox-html.el
index afc2437..84a3f45 100644
--- a/lisp/ox-html.el
+++ b/lisp/ox-html.el
@@ -1969,34 +1969,42 @@ and value is its relative level, as an integer."
(defun org-html--format-toc-headline (headline info)
"Return an appropriate table of contents entry for HEADLINE.
INFO is a plist used as a communication channel."
- (let* ((headline-number (org-export-get-headline-number headline info))
- (section-number
- (and (not (org-export-low-level-p headline info))
- (org-export-numbered-headline-p headline info)
- (concat (mapconcat 'number-to-string headline-number ".") ". ")))
+ (let* ((level (+ (org-export-get-relative-level headline info)
+ (1- org-html-toplevel-hlevel)))
+ (todo (and (plist-get info :with-todo-keywords)
+ (let ((todo (org-element-property :todo-keyword headline)))
+ (and todo (org-export-data todo info)))))
+ (todo-type (and todo (org-element-property :todo-type headline)))
+ (priority (and (plist-get info :with-priority)
+ (org-element-property :priority headline)))
+ (text (org-export-data-with-backend
+ (org-export-get-alt-title headline info)
+ ;; Create an anonymous back-end that will ignore any
+ ;; footnote-reference, link, radio-target and target
+ ;; in table of contents.
+ (org-export-create-backend
+ :parent 'html
+ :transcoders '((footnote-reference . ignore)
+ (link . (lambda (object c i) c))
+ (radio-target . (lambda (object c i) c))
+ (target . ignore)))
+ info))
(tags (and (eq (plist-get info :with-tags) t)
(org-export-get-tags headline info))))
(format "<a href=\"#%s\">%s</a>"
- ;; Label.
(org-export-solidify-link-text
(or (org-element-property :CUSTOM_ID headline)
- (concat "sec-" (mapconcat 'number-to-string
- headline-number "-"))))
- ;; Body.
- (concat section-number
- (org-export-data-with-backend
- (org-export-get-alt-title headline info)
- ;; Create an anonymous back-end that will ignore
- ;; any footnote-reference, link, radio-target and
- ;; target in table of contents.
- (org-export-create-backend
- :parent 'html
- :transcoders '((footnote-reference . ignore)
- (link . (lambda (object c i) c))
- (radio-target . (lambda (object c i) c))
- (target . ignore)))
- info)
- (and tags "   ") (org-html--tags tags)))))
+ (concat "sec-"
+ (mapconcat
+ #'number-to-string
+ (org-export-get-headline-number headline info)
+ "-"))))
+ (apply (if (functionp org-html-format-headline-function)
+ (lambda (todo todo-type priority text tags &rest ignore)
+ (funcall org-html-format-headline-function
+ todo todo-type priority text tags))
+ #'org-html-format-headline)
+ todo todo-type priority text tags :section-number nil))))
(defun org-html-list-of-listings (info)
"Build a list of listings.
--
1.8.4.2
next prev parent reply other threads:[~2013-11-06 14:29 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-04 14:31 Show TODO item in table of contents Rainer Stengele
2013-11-04 21:48 ` Bastien
2013-11-05 8:06 ` Rainer Stengele
2013-11-05 16:33 ` Bastien
2013-11-06 8:43 ` Rainer Stengele
2013-11-06 11:22 ` Bastien
2013-11-06 14:29 ` Nicolas Goaziou [this message]
2013-11-06 14:56 ` Bastien
2013-11-06 15:13 ` Nicolas Goaziou
2013-11-06 16:00 ` Rainer Stengele
2013-11-22 4:26 ` Bernt Hansen
2013-11-22 8:50 ` Nicolas Goaziou
2013-11-22 22:48 ` Bernt Hansen
2013-11-23 19:38 ` Rainer Stengele
2013-11-24 9:11 ` Nicolas Goaziou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ppqdbo3b.fsf@gmail.com \
--to=n.goaziou@gmail.com \
--cc=bzg@gnu.org \
--cc=emacs-orgmode@gnu.org \
--cc=rainer.stengele@online.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).