My setup: ;;; Minimal setup to load latest 'org-mode' ;; activate debugging (setq debug-on-error t debug-on-signal nil debug-on-quit nil)
;; add latest org-mode to load path (add-to-list 'load-path (expand-file-name "~/.emacs.d/elpa/org-20151123/")) (add-to-list 'load-path (expand-file-name "~/.emacs.d/elpa/org-20151123/" t)) What I did: (require 'ox-publish) (setq org-publish-project-alist '( ("org-notes" :base-directory "~/org/" :base-extension "org" :publishing-directory "~/public_html/" :recursive t :publishing-function org-html-publish-to-html :headline-levels 4 ; Just the default for this project. :auto-preamble t ;; :html-preamble "Howdy" ; does work :html-preamble (concat "Howdy") ) ("org-static" :base-directory "~/org/" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf" :publishing-directory "~/public_html/" :recursive t :publishing-function org-publish-attachment ) ("org" :components ("org-notes" "org-static")))) What I expected: All off the above code is from http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html except for the :html-preamble part. I want to add my own preamble by using a function. :html-preamble sets org-html-preamble (the options are: nil, t, string, function that must return a string). When using a string (:html-preamble "Howdy") it works. When using a function that returns a string (:html-preamble (concat "Howdy")) it doesn't work. I'm not entirely sure if this is a bug or if I'm missing something but hopefully the mailing-list can help me out :) Thanks in advance, Pillow ------------------------------------------------------------------------ Emacs : GNU Emacs 25.0.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.5) of 2015-10-09 Package: Org-mode version 8.3.2 (8.3.2-39-gd537a3-elpa @ /home/pillow/.emacs.d/elpa/org-20151123/) current state: ============== (setq org-src-lang-modes '(("ocaml" . tuareg) ("elisp" . emacs-lisp) ("ditaa" . artist) ("asymptote" . asy) ("dot" . fundamental) ("sqlite" . sql) ("calc" . fundamental) ("C" . c) ("cpp" . c++) ("C++" . c++) ("screen" . shell-script)) org-tab-first-hook '(org-hide-block-toggle-maybe org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-sparse-tree-default-date-type 'scheduled-or-deadline org-latex-default-packages-alist '(("AUTO" "inputenc" t) ("T1" "fontenc" t) ("" "fixltx2e" nil) ("" "graphicx" t) ("" "longtable" nil) ("" "float" nil) ("" "wrapfig" nil) ("" "rotating" nil) ("normalem" "ulem" t) ("" "amsmath" t) ("" "textcomp" t) ("" "marvosym" t) ("" "wasysym" t) ("" "amssymb" t) ("" "hyperref" nil) "\\tolerance=1000") org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-command-hook) org-occur-hook '(org-first-headline-recenter) org-metaup-hook '(org-babel-load-in-session-maybe) org-html-format-drawer-function '(lambda (name contents) contents) org-clock-into-drawer nil org-latex-format-inlinetask-function 'ignore org-confirm-shell-link-function 'yes-or-no-p org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default org-latex-text-markup-alist '((bold . "\\textbf{%s}") (code . verb) (italic . "\\emph{%s}") (strike-through . "\\sout{%s}") (underline . "\\uline{%s}") (verbatim . protectedtexttt)) org-latex-format-headline-function 'org-latex-format-headline-default-function org-after-todo-state-change-hook '(org-clock-out-if-current) org-latex-format-drawer-function '(lambda (name contents) contents) org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-agenda-before-write-hook '(org-agenda-add-entry-text) org-babel-pre-tangle-hook '(save-buffer) org-html-allow-name-attribute-in-anchors t org-latex-logfiles-extensions '("aux" "idx" "log" "out" "toc" "nav" "snm" "vrb") org-export-copy-to-kill-ring 'if-interactive org-mode-hook '(#[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-show-block-all append local] 5] #[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes) org-archive-hook '(org-attach-archive-delete-maybe) org-ascii-format-drawer-function '(lambda (name contents width) contents) org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe) org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-hide-inline-tasks org-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-html-mathjax-template "<script type=\"text/javascript\" src=\"%PATH\"></script>\n<script type=\"text/javascript\">\n<!--/*--><![CDATA[/*><!--*/\n MathJax.Hub.Config({\n // Only one of the two following lines, depending on user settings\n // First allows browser-native MathML display, second forces HTML/CSS\n :MMLYES: config: [\"MMLorHTML.js\"], jax: [\"input/TeX\"],\n :MMLNO: jax: [\"input/TeX\", \"output/HTML-CSS\"],\n extensions: [\"tex2jax.js\",\"TeX/AMSmath.js\",\"TeX/AMSsymbols.js\",\n \"TeX/noUndefined.js\"],\n tex2jax: {\n inlineMath: [ [\"\\\\(\",\"\\\\)\"] ],\n displayMath: [ ['$$','$$'], [\"\\\\[\",\"\\\\]\"], [\"\\\\begin{displaymath}\",\"\\\\end{displaymath}\"] ],\n skipTags: [\"script\",\"noscript\",\"style\",\"textarea\",\"pre\",\"code\"],\n ignoreClass: \"tex2jax_ignore\",\n processEscapes: false,\n processEnvironments: true,\n preview: \"TeX\"\n },\n showProcessingMessages: true,\n displayAlign: \"%ALIGN\",\n displayIndent: \"%INDENT\",\n\n \"HTML-CSS\": {\n scale: %SCALE,\n availableFonts: [\"STIX\",\"TeX\"],\n preferredFont: \"TeX\",\n webFont: \"TeX\",\n imageFont: \"TeX\",\n showMathMenu: true,\n },\n MMLorHTML: {\n prefer: {\n MSIE: \"MML\",\n Firefox: \"MML\",\n Opera: \"HTML\",\n other: \"HTML\"\n }\n }\n });\n/*]]>*///-->\n</script>" org-html-mathjax-options '((path "http://orgmode.org/mathjax/MathJax.js") (scale "100") (align "center") (indent "2em") (mathml nil)) org-export-with-creator 'comment org-html-creator-string "<a href=\"http://www.gnu.org/software/emacs/\">Emacs</a> 25.0.50.2 (<a href=\"http://orgmode.org\">Org</a> mode 8.2.10)" org-latex-with-hyperref "\\hypersetup{\n pdfauthor={%a},\n pdftitle={%t},\n pdfkeywords={%k},\n pdfsubject={%d},\n pdfcreator={%c}, \n pdflang={%L}}\n" org-timer-default-timer 0 org-babel-process-comment-text 'org-babel-trim org-babel-tangle-lang-exts '(("emacs-lisp" . "el")) org-confirm-elisp-link-function 'yes-or-no-p org-metadown-hook '(org-babel-pop-to-session-maybe) org-latex-listings-langs '((emacs-lisp "Lisp") (lisp "Lisp") (clojure "Lisp") (c "C") (cc "C++") (fortran "fortran") (perl "Perl") (cperl "Perl") (python "Python") (ruby "Ruby") (html "HTML") (xml "XML") (tex "TeX") (latex "[LaTeX]TeX") (shell-script "bash") (gnuplot "Gnuplot") (ocaml "Caml") (caml "Caml") (sql "SQL") (sqlite "sql")) org-effort-durations '(("h" . 60) ("d" . 480) ("w" . 2400) ("m" . 9600) ("y" . 96000)) org-html-format-headline-function 'ignore org-structure-template-alist '(("s" "#+BEGIN_SRC ?\n\n#+END_SRC" "<src lang=\"?\">\n\n</src>") ("e" "#+BEGIN_EXAMPLE\n?\n#+END_EXAMPLE" "<example>\n?\n</example>") ("q" "#+BEGIN_QUOTE\n?\n#+END_QUOTE" "<quote>\n?\n</quote>") ("v" "#+BEGIN_VERSE\n?\n#+END_VERSE" "<verse>\n?\n</verse>") ("V" "#+BEGIN_VERBATIM\n?\n#+END_VERBATIM" "<verbatim>\n?\n</verbatim>") ("c" "#+BEGIN_CENTER\n?\n#+END_CENTER" "<center>\n?\n</center>") ("l" "#+BEGIN_LaTeX\n?\n#+END_LaTeX" "<literal style=\"latex\">\n?\n</literal>") ("L" "#+LaTeX: " "<literal style=\"latex\">?</literal>") ("h" "#+BEGIN_HTML\n?\n#+END_HTML" "<literal style=\"html\">\n?\n</literal>") ("H" "#+HTML: " "<literal style=\"html\">?</literal>") ("a" "#+BEGIN_ASCII\n?\n#+END_ASCII" "") ("A" "#+ASCII: " "") ("i" "#+INDEX: ?" "#+INDEX: ?") ("I" "#+INCLUDE: %file ?" "<include file=%file markup=\"?\">")) org-export-creator-string "Emacs 25.0.50.2 (Org mode 8.2.10)" org-html-format-inlinetask-function 'ignore org-clock-out-hook '(org-clock-remove-empty-clock-drawer) org-src-fontify-natively nil org-publish-project-alist '(("org-notes" :base-directory "~/org/" :base-extension "org" :publishing-directory "~/public_html/" :recursive t :publishing-function org-html-publish-to-html :headline-levels 4 :auto-preamble t :html-preamble (concat "Howdy")) ("org-static" :base-directory "~/org/" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf" :publishing-directory "~/public_html/" :recursive t :publishing-function org-publish-attachment) ("org" :components ("org-notes" "org-static"))) )