emacs-orgmode
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]