Sébastien Miquel <sebastien.miq...@posteo.eu> writes: > Ihor Radchenko writes: >>>> The traditional user-facing approach for toggling staff in export is >>>> setting export options. >>> Indeed. Then I suggest that such use be described in the manual. >>> Having the user create a whole new option in order to toggle a >>> `chikenize` package seems a bit unwieldy, however. >> What do you suggest instead of creating a new option? > > Timothy's patch supports having a feature depend on a variable. I was > thinking here of a user variable (instead of an already defined org > variable) that could be toggled per document. > > It is fairly orthogonal to the original purpose of the patch, but it > does scratch an annoying itch of mine: there's very little support in > org to minutely tweak the export on a per document basis, beyond the > default options.
Defining a new option is easy: (org-export-define-derived-backend 'my-html 'html :options-alist '((:my-option "MY_OPTION_KEYWORD" nil "my-option" my-option-variable))) Then, you can either #+:BIND: my-option-variable t or #+OPTIONS: my-option:t or #+MY_OPTION_KEYWORD: t Of course, you will also need to plug support of :my-option as needed via filters or altering transcoders. Timothy, since you are going to provide a macro for altering the existing backends, it would also make sense to generalize it for altering other aspects of the backends, like option-alist, filters-alist, and menu-entry. > One way to do this (easier than setting up a new option), is to define > any variable, make the feature depend on it, and set it using the > `#+bind` keyword. Combined with these export features, this could be > used to easily tweak the LaTeX preamble, per document. > > If we find this use case to be legitimate and useful, I suggested > earlier making it even easier with a `#+org_export_features` keyword. > It would only take a list of feature names, and not require any > variable tied to the feature. I do not see much point compared to option alist, which is more flexible. And you can always define a feature with condition to match against "#\\+org_export_features.+my-feature". -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>