summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraaa bbb <dominik@powerbook-g4-12-van-aaa-bbb.local>2010-09-05 16:25:08 +0200
committeraaa bbb <dominik@powerbook-g4-12-van-aaa-bbb.local>2010-09-05 19:48:44 +0200
commite72fa4dcc57f2c01242ceccb66a66d226f0a467d (patch)
tree6e75b0024e0422c5cd12332c6a860145a15bcec2
parentf4143ddf1bd300004a1d1f245427a66a4d079677 (diff)
downloadorg-mode-e72fa4dcc57f2c01242ceccb66a66d226f0a467d.tar.gz
Honor special link formatting of custom links for ASCII export
-rw-r--r--lisp/org-ascii.el22
-rw-r--r--lisp/org.el6
2 files changed, 18 insertions, 10 deletions
diff --git a/lisp/org-ascii.el b/lisp/org-ascii.el
index c05d4fb..8bb8b5a 100644
--- a/lisp/org-ascii.el
+++ b/lisp/org-ascii.el
@@ -311,7 +311,7 @@ publishing directory."
:add-text (plist-get opt-plist :text))
"\n"))
thetoc have-headings first-heading-pos
- table-open table-buffer link-buffer link desc desc0 rpl wrap)
+ table-open table-buffer link-buffer link desc desc0 rpl wrap fnc)
(let ((inhibit-read-only t))
(org-unmodified
(remove-text-properties (point-min) (point-max)
@@ -446,12 +446,17 @@ publishing directory."
(setq rpl (concat "["
(or (match-string 3 line) (match-string 1 line))
"]"))
- (when (and desc0 (not (equal desc0 link)))
- (if org-export-ascii-links-to-notes
- (push (cons desc0 link) link-buffer)
- (setq rpl (concat rpl " (" link ")")
- wrap (+ (length line) (- (length (match-string 0 line)))
- (length desc)))))
+ (if (functionp (setq fnc (nth 2 (assoc type org-link-protocols))))
+ (setq rpl (or (save-match-data
+ (funcall fnc (org-link-unescape path)
+ desc0 'ascii))
+ rpl))
+ (when (and desc0 (not (equal desc0 link)))
+ (if org-export-ascii-links-to-notes
+ (push (cons desc0 link) link-buffer)
+ (setq rpl (concat rpl " (" link ")")
+ wrap (+ (length line) (- (length (match-string 0 line)))
+ (length desc))))))
(setq line (replace-match rpl t t line))))
(when custom-times
(setq line (org-translate-time line)))
@@ -482,7 +487,8 @@ publishing directory."
(org-format-table-ascii table-buffer)
"\n") "\n")))
(t
- (if (string-match "^\\([ \t]*\\)\\([-+*][ \t]+\\)\\(.*?\\)\\( ::\\)" line)
+ (if (string-match "^\\([ \t]*\\)\\([-+*][ \t]+\\)\\(.*?\\)\\( ::\\)"
+ line)
(setq line (replace-match "\\1\\3:" t nil line)))
(setq line (org-fix-indentation line org-ascii-current-indentation))
;; Remove forced line breaks
diff --git a/lisp/org.el b/lisp/org.el
index e7391d8..f67c8b0 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8141,11 +8141,13 @@ It should be a function accepting three arguments:
path the path of the link, the text after the prefix (like \"http:\")
desc the description of the link, if any, nil if there was no description
- format the export format, a symbol like `html' or `latex'.
+ format the export format, a symbol like `html' or `latex' or `ascii'..
The function may use the FORMAT information to return different values
depending on the format. The return value will be put literally into
-the exported file.
+the exported file. If the return value is nil, this means Org should
+do what it normally does with links which do not have EXPORT defined.
+
Org-mode has a built-in default for exporting links. If you are happy with
this default, there is no need to define an export function for the link
type. For a simple example of an export function, see `org-bbdb.el'."