Browse Source

ox-html: Fix TOC entries

* lisp/ox-html.el (org-html--format-toc-headline): Add missing
  headline number in TOC entries.  This fixes commit
  4c94c4d062ce7aa28bc21301ec34857745029f5c.
Nicolas Goaziou 11 years ago
parent
commit
23e6c72133
1 changed files with 16 additions and 11 deletions
  1. 16 11
      lisp/ox-html.el

+ 16 - 11
lisp/ox-html.el

@@ -1980,7 +1980,8 @@ 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* ((todo (and (plist-get info :with-todo-keywords)
+  (let* ((headline-number (org-export-get-headline-number headline info))
+	 (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)))
@@ -2001,19 +2002,23 @@ INFO is a plist used as a communication channel."
 	 (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
-			  (org-export-get-headline-number headline info)
-			  "-"))))
-	    (apply (if (not (eq org-html-format-headline-function 'ignore))
-		       (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))))
+			 (mapconcat #'number-to-string headline-number "-"))))
+	    ;; Body.
+	    (concat
+	     (and (not (org-export-low-level-p headline info))
+		  (org-export-numbered-headline-p headline info)
+		  (concat (mapconcat #'number-to-string headline-number ".")
+			  ". "))
+	     (apply (if (not (eq org-html-format-headline-function 'ignore))
+			(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.