1
0
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-11-21 06:55:35 +00:00

ox-texinfo: Fix automatic @ref titles

* lisp/ox-texinfo.el (org-texinfo--@ref): Fix an incorrect assumption
that Texinfo uses node names for automatic link text.  It does not.
Instead, it uses the corresponding section title.  For example, if a
node is named `a' its section is named `A', the Org link to the node
`a' written as `[[...][xxx]]' ends up being rendered as "A", which
means the link description the Org user provided is ignored.
This commit is contained in:
Rudolf Adamkovič 2024-09-12 00:19:55 +02:00 committed by Ihor Radchenko
parent 07dd3bcae6
commit 4829bacffe
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
2 changed files with 30 additions and 1 deletions

View File

@ -1311,7 +1311,7 @@ nil."
(replace-regexp-in-string
"[ \t]*:+" ""
(replace-regexp-in-string "," "@comma{}" description)))))
(if (or (not title) (equal title node-name))
(if (not title)
(format "@ref{%s}" node-name)
(format "@ref{%s, , %s}" node-name title))))

View File

@ -345,5 +345,34 @@ body
(should-not (org-element-contents section))
(should (eq first-heading (org-element-parent section)))))))
;;; References
(ert-deftest test-ox-texinfo/references ()
"Test references with manual and automatic descriptions."
(should
(org-test-with-temp-text
(string-join
(list "* A"
":PROPERTIES:"
":ALT_TITLE: B"
":END:"
"[[A]]"
"[[A][B]]"
"[[A][C]]"
" ....")
"\n")
(let ((export-buffer "*Test Texinfo Export*")
(org-export-show-temporary-export-buffer nil))
(org-export-to-buffer 'texinfo export-buffer
nil nil nil nil nil
#'texinfo-mode)
(with-current-buffer export-buffer
(goto-char (point-min))
(and
(re-search-forward "@ref{B}")
(re-search-forward "@ref{B, , B}")
(re-search-forward "@ref{B, , C}")))))))
(provide 'test-ox-texinfo)
;;; test-ox-texinfo.el end here