ox-html: Export attributes specified with :attr_html for links

* lisp/ox-html.el (org-html-link): Export :attr_html from link.
This commit is contained in:
Jens Lechtenboerger 2018-12-08 16:44:06 +01:00 committed by Nicolas Goaziou
parent e9108043e1
commit 3b5e26651b
1 changed files with 18 additions and 12 deletions

View File

@ -3045,19 +3045,25 @@ INFO is a plist holding contextual information. See
"#" "#"
(org-publish-resolve-external-link option path t)))))) (org-publish-resolve-external-link option path t))))))
(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 (attributes-plist
(let* ((parent (org-export-get-parent-element link)) (org-combine-plists
(link (let ((container (org-export-get-parent link))) ;; Extract attributes from parent's paragraph. HACK: Only
(if (and (eq (org-element-type container) 'link) ;; do this for the first link in parent (inner image link
(org-html-inline-image-p link info)) ;; for inline images). This is needed as long as
container ;; attributes cannot be set on a per link basis.
link)))) (let* ((parent (org-export-get-parent-element link))
(and (eq (org-element-map parent 'link 'identity info t) link) (link (let ((container (org-export-get-parent link)))
(org-export-read-attribute :attr_html parent)))) (if (and (eq 'link (org-element-type container))
(org-html-inline-image-p link info))
container
link))))
(and (eq link (org-element-map parent 'link #'identity info t))
(org-export-read-attribute :attr_html 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_html link)))
(attributes (attributes
(let ((attr (org-html--make-attribute-string attributes-plist))) (let ((attr (org-html--make-attribute-string attributes-plist)))
(if (org-string-nw-p attr) (concat " " attr) "")))) (if (org-string-nw-p attr) (concat " " attr) ""))))