Hi,
I try to understand what the filter system is for and why the transcoders itself doesn't suffice. So I take an example and want to see how the filters are used in real exporter. I look at ox-latex.el and try to make sense of the filters
1. There are only two filters are used:
:filters-alist '((:filter-options . org-latex-math-block-options-filter)
(:filter-parse-tree . org-latex-math-block-tree-filter))
The purpose of org-latex-math-block-options-filter seems to be converting whatever in the property list of :author, :date, :title to strings of latex commands(please correct me if I am wrong). But what is the purpose of org-latex-math-block-tree-filter? The org-latex--wrap-latex-math-block is quite sophisticate and I don't get what it's doing.
-----------------------------------------------------
(defun org-latex-math-block-options-filter (info backend)
(dolist (prop '(:author :date :title) info)
(plist-put info prop
(org-latex--wrap-latex-math-block (plist-get info prop) info))))
----------------------------------------------------
(defun org-latex-math-block-tree-filter (tree backend info)
(org-latex--wrap-latex-math-block tree info))
----------------------------------------------------
2. For the filters of the form :filter-TYPE, there is also a transcoder for processing the same TYPE. For example, for bold, there are :filter-bold, but bold is also processed in the transcoder specified in the transcoder alist when the backend is defined(by org-export-define-backend). When shall we use a transcode and when shall we use a filter?
Thank you.
Shiyuan