|
@@ -890,8 +890,8 @@ PUB-DIR is set, use this as the publishing directory."
|
|
|
(string-match "\\S-" (plist-get opt-plist :link-up))
|
|
|
(plist-get opt-plist :link-up)))
|
|
|
(link-home (and (plist-get opt-plist :link-home)
|
|
|
- (string-match "\\S-" (plist-get opt-plist :link-home))
|
|
|
- (plist-get opt-plist :link-home)))
|
|
|
+ (string-match "\\S-" (plist-get opt-plist :link-home))
|
|
|
+ (plist-get opt-plist :link-home)))
|
|
|
(dummy (setq opt-plist (plist-put opt-plist :title title)))
|
|
|
(html-table-tag (plist-get opt-plist :html-table-tag))
|
|
|
(quote-re0 (concat "^[ \t]*" org-quote-string "\\>"))
|
|
@@ -960,7 +960,7 @@ PUB-DIR is set, use this as the publishing directory."
|
|
|
""))
|
|
|
table-open type
|
|
|
table-buffer table-orig-buffer
|
|
|
- ind item-type starter didclose
|
|
|
+ ind item-type starter
|
|
|
rpl path attr desc descp desc1 desc2 link
|
|
|
snumber fnc item-tag initial-number
|
|
|
footnotes footref-seen
|
|
@@ -1072,73 +1072,73 @@ lang=\"%s\" xml:lang=\"%s\">
|
|
|
(push "<ul>\n<li>" thetoc)
|
|
|
(setq lines
|
|
|
(mapcar '(lambda (line)
|
|
|
- (if (and (string-match org-todo-line-regexp line)
|
|
|
- (not (get-text-property 0 'org-protected line)))
|
|
|
- ;; This is a headline
|
|
|
- (progn
|
|
|
- (setq have-headings t)
|
|
|
- (setq level (- (match-end 1) (match-beginning 1)
|
|
|
- level-offset)
|
|
|
- level (org-tr-level level)
|
|
|
- txt (save-match-data
|
|
|
- (org-html-expand
|
|
|
- (org-export-cleanup-toc-line
|
|
|
- (match-string 3 line))))
|
|
|
- todo
|
|
|
- (or (and org-export-mark-todo-in-toc
|
|
|
- (match-beginning 2)
|
|
|
- (not (member (match-string 2 line)
|
|
|
- org-done-keywords)))
|
|
|
+ (if (and (string-match org-todo-line-regexp line)
|
|
|
+ (not (get-text-property 0 'org-protected line)))
|
|
|
+ ;; This is a headline
|
|
|
+ (progn
|
|
|
+ (setq have-headings t)
|
|
|
+ (setq level (- (match-end 1) (match-beginning 1)
|
|
|
+ level-offset)
|
|
|
+ level (org-tr-level level)
|
|
|
+ txt (save-match-data
|
|
|
+ (org-html-expand
|
|
|
+ (org-export-cleanup-toc-line
|
|
|
+ (match-string 3 line))))
|
|
|
+ todo
|
|
|
+ (or (and org-export-mark-todo-in-toc
|
|
|
+ (match-beginning 2)
|
|
|
+ (not (member (match-string 2 line)
|
|
|
+ org-done-keywords)))
|
|
|
; TODO, not DONE
|
|
|
- (and org-export-mark-todo-in-toc
|
|
|
- (= level umax-toc)
|
|
|
- (org-search-todo-below
|
|
|
- line lines level))))
|
|
|
- (if (string-match
|
|
|
- (org-re "[ \t]+:\\([[:alnum:]_@#%:]+\\):[ \t]*$") txt)
|
|
|
- (setq txt (replace-match " <span class=\"tag\"> \\1</span>" t nil txt)))
|
|
|
- (if (string-match quote-re0 txt)
|
|
|
- (setq txt (replace-match "" t t txt)))
|
|
|
- (setq snumber (org-section-number level))
|
|
|
- (if org-export-with-section-numbers
|
|
|
- (setq txt (concat snumber " " txt)))
|
|
|
- (if (<= level (max umax umax-toc))
|
|
|
- (setq head-count (+ head-count 1)))
|
|
|
- (if (<= level umax-toc)
|
|
|
- (progn
|
|
|
- (if (> level org-last-level)
|
|
|
- (progn
|
|
|
- (setq cnt (- level org-last-level))
|
|
|
- (while (>= (setq cnt (1- cnt)) 0)
|
|
|
- (push "\n<ul>\n<li>" thetoc))
|
|
|
- (push "\n" thetoc)))
|
|
|
- (if (< level org-last-level)
|
|
|
- (progn
|
|
|
- (setq cnt (- org-last-level level))
|
|
|
- (while (>= (setq cnt (1- cnt)) 0)
|
|
|
- (push "</li>\n</ul>" thetoc))
|
|
|
- (push "\n" thetoc)))
|
|
|
- ;; Check for targets
|
|
|
- (while (string-match org-any-target-regexp line)
|
|
|
- (setq line (replace-match
|
|
|
- (concat "@<span class=\"target\">" (match-string 1 line) "@</span> ")
|
|
|
- t t line)))
|
|
|
- (while (string-match "<\\(<\\)+\\|>\\(>\\)+" txt)
|
|
|
- (setq txt (replace-match "" t t txt)))
|
|
|
- (setq href
|
|
|
- (replace-regexp-in-string
|
|
|
- "\\." "_" (format "sec-%s" snumber)))
|
|
|
- (setq href (or (cdr (assoc href org-export-preferred-target-alist)) href))
|
|
|
- (push
|
|
|
- (format
|
|
|
- (if todo
|
|
|
- "</li>\n<li><a href=\"#%s\"><span class=\"todo\">%s</span></a>"
|
|
|
- "</li>\n<li><a href=\"#%s\">%s</a>")
|
|
|
- href txt) thetoc)
|
|
|
-
|
|
|
- (setq org-last-level level))
|
|
|
- )))
|
|
|
- line)
|
|
|
+ (and org-export-mark-todo-in-toc
|
|
|
+ (= level umax-toc)
|
|
|
+ (org-search-todo-below
|
|
|
+ line lines level))))
|
|
|
+ (if (string-match
|
|
|
+ (org-re "[ \t]+:\\([[:alnum:]_@:]+\\):[ \t]*$") txt)
|
|
|
+ (setq txt (replace-match " <span class=\"tag\"> \\1</span>" t nil txt)))
|
|
|
+ (if (string-match quote-re0 txt)
|
|
|
+ (setq txt (replace-match "" t t txt)))
|
|
|
+ (setq snumber (org-section-number level))
|
|
|
+ (if org-export-with-section-numbers
|
|
|
+ (setq txt (concat snumber " " txt)))
|
|
|
+ (if (<= level (max umax umax-toc))
|
|
|
+ (setq head-count (+ head-count 1)))
|
|
|
+ (if (<= level umax-toc)
|
|
|
+ (progn
|
|
|
+ (if (> level org-last-level)
|
|
|
+ (progn
|
|
|
+ (setq cnt (- level org-last-level))
|
|
|
+ (while (>= (setq cnt (1- cnt)) 0)
|
|
|
+ (push "\n<ul>\n<li>" thetoc))
|
|
|
+ (push "\n" thetoc)))
|
|
|
+ (if (< level org-last-level)
|
|
|
+ (progn
|
|
|
+ (setq cnt (- org-last-level level))
|
|
|
+ (while (>= (setq cnt (1- cnt)) 0)
|
|
|
+ (push "</li>\n</ul>" thetoc))
|
|
|
+ (push "\n" thetoc)))
|
|
|
+ ;; Check for targets
|
|
|
+ (while (string-match org-any-target-regexp line)
|
|
|
+ (setq line (replace-match
|
|
|
+ (concat "@<span class=\"target\">" (match-string 1 line) "@</span> ")
|
|
|
+ t t line)))
|
|
|
+ (while (string-match "<\\(<\\)+\\|>\\(>\\)+" txt)
|
|
|
+ (setq txt (replace-match "" t t txt)))
|
|
|
+ (setq href
|
|
|
+ (replace-regexp-in-string
|
|
|
+ "\\." "_" (format "sec-%s" snumber)))
|
|
|
+ (setq href (or (cdr (assoc href org-export-preferred-target-alist)) href))
|
|
|
+ (push
|
|
|
+ (format
|
|
|
+ (if todo
|
|
|
+ "</li>\n<li><a href=\"#%s\"><span class=\"todo\">%s</span></a>"
|
|
|
+ "</li>\n<li><a href=\"#%s\">%s</a>")
|
|
|
+ href txt) thetoc)
|
|
|
+
|
|
|
+ (setq org-last-level level))
|
|
|
+ )))
|
|
|
+ line)
|
|
|
lines))
|
|
|
(while (> org-last-level (1- org-min-level))
|
|
|
(setq org-last-level (1- org-last-level))
|
|
@@ -1300,79 +1300,79 @@ lang=\"%s\" xml:lang=\"%s\">
|
|
|
desc2 (if (match-end 2) (concat type ":" path) path)
|
|
|
descp (and desc1 (not (equal desc1 desc2)))
|
|
|
desc (or desc1 desc2))
|
|
|
- ;; Make an image out of the description if that is so wanted
|
|
|
+ ;; Make an image out of the description if that is so wanted
|
|
|
(when (and descp (org-file-image-p
|
|
|
- desc org-export-html-inline-image-extensions))
|
|
|
- (save-match-data
|
|
|
- (if (string-match "^file:" desc)
|
|
|
- (setq desc (substring desc (match-end 0)))))
|
|
|
- (setq desc (org-add-props
|
|
|
+ desc org-export-html-inline-image-extensions))
|
|
|
+ (save-match-data
|
|
|
+ (if (string-match "^file:" desc)
|
|
|
+ (setq desc (substring desc (match-end 0)))))
|
|
|
+ (setq desc (org-add-props
|
|
|
(concat "<img src=\"" desc "\"/>")
|
|
|
'(org-protected t))))
|
|
|
(cond
|
|
|
((equal type "internal")
|
|
|
- (let
|
|
|
- ((frag-0
|
|
|
- (if (= (string-to-char path) ?#)
|
|
|
- (substring path 1)
|
|
|
- path)))
|
|
|
- (setq rpl
|
|
|
+ (let
|
|
|
+ ((frag-0
|
|
|
+ (if (= (string-to-char path) ?#)
|
|
|
+ (substring path 1)
|
|
|
+ path)))
|
|
|
+ (setq rpl
|
|
|
(org-html-make-link
|
|
|
- opt-plist
|
|
|
- ""
|
|
|
- ""
|
|
|
- (org-solidify-link-text
|
|
|
- (save-match-data (org-link-unescape frag-0))
|
|
|
- nil)
|
|
|
- desc attr nil))))
|
|
|
+ opt-plist
|
|
|
+ ""
|
|
|
+ ""
|
|
|
+ (org-solidify-link-text
|
|
|
+ (save-match-data (org-link-unescape frag-0))
|
|
|
+ nil)
|
|
|
+ desc attr nil))))
|
|
|
((and (equal type "id")
|
|
|
(setq id-file (org-id-find-id-file path)))
|
|
|
;; This is an id: link to another file (if it was the same file,
|
|
|
;; it would have become an internal link...)
|
|
|
(save-match-data
|
|
|
(setq id-file (file-relative-name
|
|
|
- id-file
|
|
|
- (file-name-directory org-current-export-file)))
|
|
|
+ id-file
|
|
|
+ (file-name-directory org-current-export-file)))
|
|
|
(setq rpl
|
|
|
- (org-html-make-link opt-plist
|
|
|
- "file" id-file
|
|
|
- (concat (if (org-uuidgen-p path) "ID-") path)
|
|
|
- desc
|
|
|
- attr
|
|
|
- nil))))
|
|
|
+ (org-html-make-link opt-plist
|
|
|
+ "file" id-file
|
|
|
+ (concat (if (org-uuidgen-p path) "ID-") path)
|
|
|
+ desc
|
|
|
+ attr
|
|
|
+ nil))))
|
|
|
((member type '("http" "https"))
|
|
|
- ;; standard URL, can inline as image
|
|
|
- (setq rpl
|
|
|
- (org-html-make-link opt-plist
|
|
|
- type path nil
|
|
|
- desc
|
|
|
- attr
|
|
|
- (org-html-should-inline-p path descp))))
|
|
|
+ ;; standard URL, can inline as image
|
|
|
+ (setq rpl
|
|
|
+ (org-html-make-link opt-plist
|
|
|
+ type path nil
|
|
|
+ desc
|
|
|
+ attr
|
|
|
+ (org-html-should-inline-p path descp))))
|
|
|
((member type '("ftp" "mailto" "news"))
|
|
|
- ;; standard URL, can't inline as image
|
|
|
- (setq rpl
|
|
|
- (org-html-make-link opt-plist
|
|
|
- type path nil
|
|
|
- desc
|
|
|
- attr
|
|
|
- nil)))
|
|
|
+ ;; standard URL, can't inline as image
|
|
|
+ (setq rpl
|
|
|
+ (org-html-make-link opt-plist
|
|
|
+ type path nil
|
|
|
+ desc
|
|
|
+ attr
|
|
|
+ nil)))
|
|
|
|
|
|
((string= type "coderef")
|
|
|
- (let*
|
|
|
- ((coderef-str (format "coderef-%s" path))
|
|
|
- (attr-1
|
|
|
- (format "class=\"coderef\" onmouseover=\"CodeHighlightOn(this, '%s');\" onmouseout=\"CodeHighlightOff(this, '%s');\""
|
|
|
+ (let*
|
|
|
+ ((coderef-str (format "coderef-%s" path))
|
|
|
+ (attr-1
|
|
|
+ (format "class=\"coderef\" onmouseover=\"CodeHighlightOn(this, '%s');\" onmouseout=\"CodeHighlightOff(this, '%s');\""
|
|
|
coderef-str coderef-str)))
|
|
|
- (setq rpl
|
|
|
+ (setq rpl
|
|
|
(org-html-make-link opt-plist
|
|
|
- type "" coderef-str
|
|
|
- (format
|
|
|
- (org-export-get-coderef-format
|
|
|
- path
|
|
|
- (and descp desc))
|
|
|
- (cdr (assoc path org-export-code-refs)))
|
|
|
- attr-1
|
|
|
- nil))))
|
|
|
+ type "" coderef-str
|
|
|
+ (format
|
|
|
+ (org-export-get-coderef-format
|
|
|
+ path
|
|
|
+ (and descp desc))
|
|
|
+ (cdr (assoc path org-export-code-refs)))
|
|
|
+ attr-1
|
|
|
+ nil))))
|
|
|
|
|
|
((functionp (setq fnc (nth 2 (assoc type org-link-protocols))))
|
|
|
;; The link protocol has a function for format the link
|
|
@@ -1381,55 +1381,55 @@ lang=\"%s\" xml:lang=\"%s\">
|
|
|
(funcall fnc (org-link-unescape path) desc1 'html))))
|
|
|
|
|
|
((string= type "file")
|
|
|
- ;; FILE link
|
|
|
- (save-match-data
|
|
|
- (let*
|
|
|
- ((components
|
|
|
- (if
|
|
|
- (string-match "::\\(.*\\)" path)
|
|
|
- (list
|
|
|
- (replace-match "" t nil path)
|
|
|
- (match-string 1 path))
|
|
|
- (list path nil)))
|
|
|
-
|
|
|
- ;;The proper path, without a fragment
|
|
|
- (path-1
|
|
|
- (first components))
|
|
|
-
|
|
|
- ;;The raw fragment
|
|
|
- (fragment-0
|
|
|
- (second components))
|
|
|
-
|
|
|
- ;;Check the fragment. If it can't be used as
|
|
|
- ;;target fragment we'll pass nil instead.
|
|
|
- (fragment-1
|
|
|
- (if
|
|
|
- (and fragment-0
|
|
|
- (not (string-match "^[0-9]*$" fragment-0))
|
|
|
- (not (string-match "^\\*" fragment-0))
|
|
|
- (not (string-match "^/.*/$" fragment-0)))
|
|
|
- (org-solidify-link-text
|
|
|
- (org-link-unescape fragment-0))
|
|
|
- nil))
|
|
|
- (desc-2
|
|
|
- ;;Description minus "file:" and ".org"
|
|
|
- (if (string-match "^file:" desc)
|
|
|
- (let
|
|
|
- ((desc-1 (replace-match "" t t desc)))
|
|
|
- (if (string-match "\\.org$" desc-1)
|
|
|
- (replace-match "" t t desc-1)
|
|
|
- desc-1))
|
|
|
- desc)))
|
|
|
-
|
|
|
- (setq rpl
|
|
|
- (if
|
|
|
+ ;; FILE link
|
|
|
+ (save-match-data
|
|
|
+ (let*
|
|
|
+ ((components
|
|
|
+ (if
|
|
|
+ (string-match "::\\(.*\\)" path)
|
|
|
+ (list
|
|
|
+ (replace-match "" t nil path)
|
|
|
+ (match-string 1 path))
|
|
|
+ (list path nil)))
|
|
|
+
|
|
|
+ ;;The proper path, without a fragment
|
|
|
+ (path-1
|
|
|
+ (first components))
|
|
|
+
|
|
|
+ ;;The raw fragment
|
|
|
+ (fragment-0
|
|
|
+ (second components))
|
|
|
+
|
|
|
+ ;;Check the fragment. If it can't be used as
|
|
|
+ ;;target fragment we'll pass nil instead.
|
|
|
+ (fragment-1
|
|
|
+ (if
|
|
|
+ (and fragment-0
|
|
|
+ (not (string-match "^[0-9]*$" fragment-0))
|
|
|
+ (not (string-match "^\\*" fragment-0))
|
|
|
+ (not (string-match "^/.*/$" fragment-0)))
|
|
|
+ (org-solidify-link-text
|
|
|
+ (org-link-unescape fragment-0))
|
|
|
+ nil))
|
|
|
+ (desc-2
|
|
|
+ ;;Description minus "file:" and ".org"
|
|
|
+ (if (string-match "^file:" desc)
|
|
|
+ (let
|
|
|
+ ((desc-1 (replace-match "" t t desc)))
|
|
|
+ (if (string-match "\\.org$" desc-1)
|
|
|
+ (replace-match "" t t desc-1)
|
|
|
+ desc-1))
|
|
|
+ desc)))
|
|
|
+
|
|
|
+ (setq rpl
|
|
|
+ (if
|
|
|
(and
|
|
|
- (functionp link-validate)
|
|
|
- (not (funcall link-validate path-1 current-dir)))
|
|
|
+ (functionp link-validate)
|
|
|
+ (not (funcall link-validate path-1 current-dir)))
|
|
|
desc
|
|
|
- (org-html-make-link opt-plist
|
|
|
- "file" path-1 fragment-1 desc-2 attr
|
|
|
- (org-html-should-inline-p path-1 descp)))))))
|
|
|
+ (org-html-make-link opt-plist
|
|
|
+ "file" path-1 fragment-1 desc-2 attr
|
|
|
+ (org-html-should-inline-p path-1 descp)))))))
|
|
|
|
|
|
(t
|
|
|
;; just publish the path, as default
|
|
@@ -1563,12 +1563,10 @@ lang=\"%s\" xml:lang=\"%s\">
|
|
|
(setq ind (if org-empty-line-terminates-plain-lists
|
|
|
0
|
|
|
(1+ (or (car local-list-indent) 1)))))
|
|
|
- (setq didclose nil)
|
|
|
(while (and in-local-list
|
|
|
(or (and (= ind (car local-list-indent))
|
|
|
(not starter))
|
|
|
(< ind (car local-list-indent))))
|
|
|
- (setq didclose t)
|
|
|
(org-close-li (car local-list-type))
|
|
|
(insert (format "</%sl>\n" (car local-list-type)))
|
|
|
(pop local-list-type) (pop local-list-indent)
|
|
@@ -1597,17 +1595,14 @@ lang=\"%s\" xml:lang=\"%s\">
|
|
|
(insert (cond
|
|
|
((equal (car local-list-type) "d")
|
|
|
(format "<dt>%s</dt><dd>\n" (or item-tag "???")))
|
|
|
- (t "<li>\n"))))
|
|
|
- (didclose
|
|
|
- ;; we did close a list, normal text follows: need <p>
|
|
|
- (org-open-par)))
|
|
|
+ (t "<li>\n")))))
|
|
|
(if (string-match "^[ \t]*\\[\\([X ]\\)\\]" line)
|
|
|
(setq line
|
|
|
(replace-match
|
|
|
(if (equal (match-string 1 line) "X")
|
|
|
"<b>[X]</b>"
|
|
|
"<b>[<span style=\"visibility:hidden;\">X</span>]</b>")
|
|
|
- t t line))))
|
|
|
+ t t line))))
|
|
|
|
|
|
;; Horizontal line
|
|
|
(when (string-match "^[ \t]*-\\{5,\\}[ \t]*$" line)
|