Re: How to reinject custom function into derived backend which doesn't implement it, ex : footnote in ox-slimhtml backend.
Hello, rey-coyrehourcq 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
Re: How to reinject custom function into derived backend which doesn't implement it, ex : footnote in ox-slimhtml backend.
Hi, rey-coyrehourcq 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?
How to reinject custom function into derived backend which doesn't implement it, ex : footnote in ox-slimhtml backend.
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/} signature.asc Description: This is a digitally signed message part