* How to reinject custom function into derived backend which doesn't implement it, ex : footnote in ox-slimhtml backend.
@ 2020-10-02 20:26 rey-coyrehourcq
2021-04-27 20:42 ` Bastien
2021-04-27 21:25 ` Nicolas Goaziou
0 siblings, 2 replies; 3+ messages in thread
From: rey-coyrehourcq @ 2020-10-02 20:26 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 1637 bytes --]
Hi,
I'm trying to develop my own `publish.el` for some research project linked to reproductibility.
I chose ox-slimhtml [0] as derived backend to limit and simplify the html/css outputs generated by vanilla html
backend/publish.
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
: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
org-html-footnote-reference is never called.
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 ?
If you have some higlight on this, or solution on this problem, i'm interested.
[0] https://github.com/balddotcat/ox-slimhtml
[1] https://orgmode.org/manual/Advanced-Export-Configuration.html
Best
--
Sébastien Rey-Coyrehourcq
Research Engineer UMR IDEES
02.35.14.69.30
{Stronger security for your email, follow EFF tutorial : https://ssd.eff.org/}
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: How to reinject custom function into derived backend which doesn't implement it, ex : footnote in ox-slimhtml backend.
2020-10-02 20:26 How to reinject custom function into derived backend which doesn't implement it, ex : footnote in ox-slimhtml backend rey-coyrehourcq
@ 2021-04-27 20:42 ` Bastien
2021-04-27 21:25 ` Nicolas Goaziou
1 sibling, 0 replies; 3+ messages in thread
From: Bastien @ 2021-04-27 20:42 UTC (permalink / raw)
To: rey-coyrehourcq; +Cc: emacs-orgmode
Hi,
rey-coyrehourcq <sebastien.rey-coyrehourcq@univ-rouen.fr> writes:
> I'm trying to develop my own `publish.el` for some research project
> linked to reproductibility.
You didn't receive much feedback - sorry for that.
Did you make progress about your project?
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: How to reinject custom function into derived backend which doesn't implement it, ex : footnote in ox-slimhtml backend.
2020-10-02 20:26 How to reinject custom function into derived backend which doesn't implement it, ex : footnote in ox-slimhtml backend rey-coyrehourcq
2021-04-27 20:42 ` Bastien
@ 2021-04-27 21:25 ` Nicolas Goaziou
1 sibling, 0 replies; 3+ messages in thread
From: Nicolas Goaziou @ 2021-04-27 21:25 UTC (permalink / raw)
To: rey-coyrehourcq; +Cc: emacs-orgmode
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-04-27 21:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-02 20:26 How to reinject custom function into derived backend which doesn't implement it, ex : footnote in ox-slimhtml backend rey-coyrehourcq
2021-04-27 20:42 ` Bastien
2021-04-27 21:25 ` Nicolas Goaziou
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).