[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to reinject custom function into derived backend which doesn't i
From: |
Nicolas Goaziou |
Subject: |
Re: How to reinject custom function into derived backend which doesn't implement it, ex : footnote in ox-slimhtml backend. |
Date: |
Tue, 27 Apr 2021 23:25:09 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Hello,
rey-coyrehourcq <sebastien.rey-coyrehourcq@univ-rouen.fr> writes:
> Actually footnotes are not defined in ox-slimhtml, so as i read in the org
> documentation [1] ),
> i try to add this capacity by simply calling vanilla ox-html function
> org-html-footnote-reference into translate-alist :
>
> (org-export-define-derived-backend 'ox-slimhtml-publish-to-html 'slimhtml
The first argument of `org-export-define-derived-backend' should be the
name of the new back-end, as a symbol, not the function used to publish.
E.g,
(org-export-define-derived-backend 'slimhtml-improved 'slimhtml
....)
> :translate-alist '((bold . ox-slimhtml-bold)
>
> (footnote-reference . org-html-footnote-reference)
> (verse-block . org-html-
> verse-block)
> (special-block . org-html-special-block)))
>
> Using the vanilla ox-html export function, everything is awesome and footnote
> appear in my html, normal.
>
> :publishing-function org-blog-publish-to-html
>
> But if i switch to ":publishing-function ox-slimhtml-publish-to-html"
> the function
You need to define your own publishing function with the help of
`org-publish-org-to' and make it use `slimhtml-improved. Here you're
re-using plain slimhtml, without your additions. E.g.,
(defun ox-slimhtml-improved-publish-to-html (plist filename pub-dir)
"Publish an org file to html.
PLIST is the property list for the given project. FILENAME
is the filename of the Org file to be published. PUB-DIR is
the publishing directory.
Return output file name."
(let ((html-extension (or (plist-get plist :html-extension)
org-html-extension)))
(org-publish-org-to 'slimhtml-improved
filename
(if (and html-extension (not (string= ""
html-extension)))
(concat "." html-extension) "")
plist
pub-dir)))
Then you can set :publishing-function to `org-slimhtml-publish-to-html'.
> There is something i don't understand in the processing of "translate-alist",
> so perhaps if the derived backend doesn't
> implement a footnote-reference function, i cannot extend it ?
You should be able to extend it.
Regards,
--
Nicolas Goaziou