Hello again! A follow-up on the patches below:
> From: Protesilaos Stavrou <i...@protesilaos.com> > Date: Fri, 26 Apr 2024 10:55:50 +0300 > [... 41 lines elided] > Thank you! I just tried it. I encountered two problems with it, which I > am addressing with the two attached patches (feel free to modify as > needed). In short: > > 1. The footnote definitions at the bottom of the file were still using > the ordinal HTML id, which did not correspond to the href with the > label. > > 2. If the file had a mixture of labeled and anonymous/unlabeled > footnotes, then the export would break as it would be passing a nil > value to 'string-to-number'. > > Please let me know how to proceed. Since we are now using labels for the HTML export, I think it makes sense to optionally use those for the anchor tags as well. See the attached patch for a possible way of doing this. As always, you are welcome to make any further changes. -- Protesilaos Stavrou https://protesilaos.com
>From 681db0934e55ae6c2971ccfbfd9de7c0828506c9 Mon Sep 17 00:00:00 2001 Message-Id: <681db0934e55ae6c2971ccfbfd9de7c0828506c9.1714119282.git.i...@protesilaos.com> From: Protesilaos Stavrou <i...@protesilaos.com> Date: Fri, 26 Apr 2024 11:14:28 +0300 Subject: [PATCH] Provide option to use footnote label as the HTML anchor text * lisp/ox-html.el (org-html-footnote-use-label-for-anchor-text): Define new user option. (org-html-footnote-section, org-html-footnote-reference): Use the new option. --- lisp/ox-html.el | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lisp/ox-html.el b/lisp/ox-html.el index 0237e61..804a464 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -699,6 +699,17 @@ (defcustom org-html-footnote-separator "<sup>, </sup>" :group 'org-export-html :type 'string) +(defcustom org-html-footnote-use-label-for-anchor-text nil + "When non-nil, use the footnote label as the anchor text. +When nil, use the number of the footnote as the anchor text. + +- For footnotes, this is the format: [fn:LABEL]. +- For inline footnotes, it is this: [fn:LABEL: Some text]." + :group 'org-export-html + :version "30.1" + :package-version '(Org . "9.7") + :type 'boolean) + ;;;; Headline (defcustom org-html-toplevel-hlevel 2 @@ -1900,7 +1911,9 @@ (defun org-html-footnote-section (info) (if label (format "fn.%s" label) (format "fn.%d" n)) - n + (if (and org-html-footnote-use-label-for-anchor-text label) + label + n) (format " class=\"footnum\" href=\"#fnr.%s\" role=\"doc-backlink\"" (or label n)) info)) (contents (org-trim (org-export-data def info)))) @@ -2768,7 +2781,11 @@ (defun org-html-footnote-reference (footnote-reference _contents info) (format (plist-get info :html-footnote-format) (org-html--anchor - id n (format " class=\"footref\" href=\"#fn.%s\" role=\"doc-backlink\"" (or label n)) info))))) + id + (if (and org-html-footnote-use-label-for-anchor-text label) + label + n) + (format " class=\"footref\" href=\"#fn.%s\" role=\"doc-backlink\"" (or label n)) info))))) ;;;; Headline -- 2.39.2