Browse Source

ox-md.el (org-md-headline): Add anchors when exporting with a table of contents

* ox-md.el (org-md-headline): When exporting with a HTML table
of contents, add HTML anchors to Markdown headlines.

Thanks to Marko Dimjašević for reporting this.
Bastien Guerry 11 years ago
parent
commit
34c2365081
1 changed files with 10 additions and 2 deletions
  1. 10 2
      lisp/ox-md.el

+ 10 - 2
lisp/ox-md.el

@@ -182,6 +182,14 @@ a communication channel."
 	    (and (plist-get info :with-priority)
 		 (let ((char (org-element-property :priority headline)))
 		   (and char (format "[#%c] " char)))))
+	   (anchor
+	    (when (plist-get info :with-toc)
+	      (org-html--anchor
+	       (or (org-element-property :CUSTOM_ID headline)
+		   (concat "sec-"
+			   (mapconcat 'number-to-string
+				      (org-export-get-headline-number
+				       headline info) "-"))))))
 	   ;; Headline text without tags.
 	   (heading (concat todo priority title)))
       (cond
@@ -202,12 +210,12 @@ a communication channel."
 		       (replace-regexp-in-string "^" "    " contents)))))
        ;; Use "Setext" style.
        ((eq org-md-headline-style 'setext)
-	(concat heading tags "\n"
+	(concat heading tags anchor "\n"
 		(make-string (length heading) (if (= level 1) ?= ?-))
 		"\n\n"
 		contents))
        ;; Use "atx" style.
-       (t (concat (make-string level ?#) " " heading tags "\n\n" contents))))))
+       (t (concat (make-string level ?#) " " heading tags anchor "\n\n" contents))))))
 
 
 ;;;; Horizontal Rule