On Thu, Jan 6, 2022 at 1:27 PM Juan Manuel Macías <maciasch...@posteo.net> wrote: > I think one possibility would be using a parse tree export filter: > > #+BIND: org-export-filter-parse-tree-functions (katex-verbatim) > #+begin_src emacs-lisp :exports results :results none > (defun katex-verbatim (tree backend info) > (when (org-export-derived-backend-p backend 'latex) > (org-element-map tree 'special-block > (lambda (block) > (when (equal "katex" (org-element-property :type block)) > (let ((cont (org-element-interpret-data (org-element-contents > block))) > (create-export-snippet ;; idea from Nicolas Goaziou > (lambda (v) > (org-element-create 'export-snippet (list :back-end > "latex" :value v))))) > (apply #'org-element-set-contents > block > (list (funcall create-export-snippet cont)))))) > info) > tree)) > #+end_src > > #+begin_katex > E = -J \sum_{i=1}^N s_i s_{i+1} > #+end_katex > > ==> > > \begin{katex} > E = -J \sum_{i=1}^N s_i s_{i+1} > \end{katex}
Wow, thanks for that complete code. I didn't know about the parse tree functions. I was thinking if below is possible as any user running my exporter would need to use this feature easily. #+begin_katex :verbatim t E = -J \sum_{i=1}^N s_i s_{i+1} #+end_katex Is it possible to do anything inside the org-hugo-special-block function that's defined in the exporter?