Export attributes specified with :attr_rst for links (3b5e2665)

This commit is contained in:
Masanao Igarashi
2019-08-13 11:01:36 +09:00
parent 681a501b34
commit f60773e3b3

View File

@@ -964,19 +964,25 @@ INFO is a plist holding contextual information."
(concat (file-name-as-directory home) raw-path)))
(t raw-path)))
(t raw-path)))
;; Extract attributes from parent's paragraph. HACK: Only do
;; this for the first link in parent (inner image link for
;; inline images). This is needed as long as attributes
;; cannot be set on a per link basis.
(attributes-plist
(org-combine-plists
;; Extract attributes from parent's paragraph. HACK: Only
;; do this for the first link in parent (inner image link
;; for inline images). This is needed as long as
;; attributes cannot be set on a per link basis.
(let* ((parent (org-export-get-parent-element link))
(link (let ((container (org-export-get-parent link)))
(if (and (eq (org-element-type container) 'link)
(org-rst-inline-image-p link info))
(if (and (eq 'link (org-element-type container))
(org-html-inline-image-p link info))
container
link))))
(and (eq (org-element-map parent 'link 'identity info t) link)
(org-export-read-attribute :attr_rst parent))))
(and (eq link (org-element-map parent 'link #'identity info t))
(org-export-read-attribute :attr_ parent)))
;; Also add attributes from link itself. Currently, those
;; need to be added programmatically before `org-html-link'
;; is invoked, for example, by backends building upon HTML
;; export.
(org-export-read-attribute :attr_rst link)))
(attributes
(let ((attr (org-rst--make-attribute-string attributes-plist)))
(if (org-string-nw-p attr) (concat "\n" attr "\n") ""))))