Ihor Radchenko <yanta...@posteo.net> writes: > Consider the following Org file: > > ------------ > [cite:@key] > #+print_bibliography: > That’s it! > ------------ > @key is not in the default bibliography and the bibliography processor is set > to basic > > Open the file and execute C-c C-e t U (export to ascii) > > An error is thrown and export fails when attempting to print the > bibliography.
The problem with error has been solved in another patch. However, the non-existing keys are exported awkwardly as "(, )". I suggest approaching the missing citations similar to LaTeX and highlight them with ??: (??, ????) by default. See the attached patch. WDYT?
>From dc26b1d84c7745080f26e0f194a4deb003a0f88f Mon Sep 17 00:00:00 2001 Message-Id: <dc26b1d84c7745080f26e0f194a4deb003a0f88f.1668573145.git.yanta...@posteo.net> From: Ihor Radchenko <yanta...@posteo.net> Date: Wed, 16 Nov 2022 12:29:17 +0800 Subject: [PATCH] oc-basic: Display ?? in place of missing citations on export * lisp/oc-basic.el (org-cite-basic--format-author-year): (org-cite-basic-export-citation): Display "????" for missing year and "??" for missing other fields. Reported-by: Ihor Radchenko <yanta...@posteo.net> Link: https://orgmode.org/list/871qr6kiuv.fsf@localhost --- lisp/oc-basic.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lisp/oc-basic.el b/lisp/oc-basic.el index 3ef7a37e3..fdfee849e 100644 --- a/lisp/oc-basic.el +++ b/lisp/oc-basic.el @@ -580,8 +580,8 @@ (defun org-cite-basic--format-author-year (citation format-cite format-ref info) (suffix (org-element-property :suffix ref))) (funcall format-ref prefix - (org-cite-basic--get-author k info) - (org-cite-basic--get-year k info) + (or (org-cite-basic--get-author k info) "??") + (or (org-cite-basic--get-year k info) "????") suffix))) (org-cite-get-references citation) org-cite-basic-author-year-separator) @@ -652,15 +652,17 @@ (defun org-cite-basic-export-citation (citation style _ info) (org-export-data (mapconcat (lambda (key) - (let ((author (org-cite-basic--get-author key info))) - (if caps (capitalize author) author))) + (or + (let ((author (org-cite-basic--get-author key info))) + (if caps (capitalize author) author)) + "??")) (org-cite-get-references citation t) org-cite-basic-author-year-separator) info))) ;; "noauthor" style. (`(,(or "noauthor" "na") . ,variant) (format (if (funcall has-variant-p variant 'bare) "%s" "(%s)") - (mapconcat (lambda (key) (org-cite-basic--get-year key info)) + (mapconcat (lambda (key) (or (org-cite-basic--get-year key info) "????")) (org-cite-get-references citation t) org-cite-basic-author-year-separator))) ;; "nocite" style. -- 2.35.1
-- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>