~bzg/worg

dcb2c11ceeb0328de4a8634c9f627250d8b95867 — Ihor Radchenko a month ago f1486f4
org-faq.org (How can I preserve faces...): Update answer

* org-faq.org (How can I preserve faces when I export an agenda from
the command line?): Fix the answer, making sure that the instructions
actually work on the latest Org mode.

Link: https://list.orgmode.org/orgmode/PS2P216MB113830307EE638A1FF044F55A024A@PS2P216MB1138.KORP216.PROD.OUTLOOK.COM/
1 files changed, 29 insertions(+), 22 deletions(-)

M org-faq.org
M org-faq.org => org-faq.org +29 -22
@@ 3643,41 3643,48 @@ full list.
#+index: Export!Agenda
#+index: Export!Faces

Normally, when you export an org file or an agenda view from within
emacs, htmlize will convert your face definitions to direct color css
styles inlined into each =<span>= object, resulting in an HTML output
that preserves the general look of your Org buffers and agenda views.
Normally, when you export an agenda view from within Emacs, htmlize
will convert your face definitions to direct color CSS styles inlined
into each =<span>= object, resulting in an HTML output that preserves
the general look of your Org buffers and agenda views.

Let's say you generate an export from the command line, such as the
following:

: emacs -batch -l ~/.emacs -eval '(org-batch-agenda "e")'

or

: emacs -batch -l ~/.emacs -eval '(org-publish-all)'
: emacs -batch -l ~/.emacs.d/init.el \
: -eval '(progn \
:         (org-agenda nil "a") \
:         (org-agenda-write "~/agenda.html"))'

In such an instance, the exported HTML will contain only very basic
color styles. The reason is that when Emacs is run in batch mode, it
does not have a display and therefore only rudimentary face
definitions.  If you'd like to use more complex styles, you'll have to
make sure that the export process only assigns classes instead of
direct color values.  This can be done by binding the variable
=org-export-htmlize-output-style= to =css= for the duration of the
export, for example with

: emacs -batch -l ~/.emacs
:   -eval '(let ((org-export-htmlize-generate-css (quote css)))
:            (org-batch-agenda "e"))'
supply custom CSS styles to make these classes look any way you like.
To generate face definitions for a CSS file based on any faces you are
currently using in Emacs, you can use the following command:

Then you can use a style file to make these classes look any way you
like.  To generate face definitions for a CSS file based on any faces
you are currently using in Emacs, you can use the following command:
#+begin_src emacs-lisp
(defun org-html-htmlize-generate-css-for-agenda ()
  "Create the CSS for all font definitions in the current Emacs session.
Unlike `org-html-htmlize-generate-css', do not prepend
`org-html-htmlize-font-prefix' to face names."
  (interactive)
  (require 'ox-html)
  (let ((org-html-htmlize-font-prefix ""))
    (org-html-htmlize-generate-css)))
#+end_src

: M-x org-export-htmlize-generate-css RET
: M-x org-html-htmlize-generate-css-for-agenda RET

This will generate a =<style>...</style>= section, the content of
which you can add to your style file.
which you can manually copy to your style file:

: emacs -batch -l ~/.emacs.d/init.el \
: -eval '(let ((org-agenda-export-html-style \
:               "<link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\">")) \
:         (org-agenda nil "a") \
:         (org-agenda-write "~/agenda.html"))'

** How can I avoid dark color background when exporting agenda to ps format?
   :PROPERTIES: