emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Robert H. Klein" <roklein@roklein.de>
To: Kaushal Modi <kaushal.modi@gmail.com>
Cc: emacs-org list <emacs-orgmode@gnu.org>
Subject: Re: Conditionally formatting org-html-postamble-format
Date: Wed, 27 Jan 2016 20:55:36 +0100	[thread overview]
Message-ID: <20160127205536.5fb468ca@lt70.mpip-mainz.mpg.de> (raw)
In-Reply-To: <CAFyQvY1Ndshc_50kPp9XjxXbXHNMU_sUw1+QW-tLGa3Cwe0sRQ@mail.gmail.com>

Hi Kaushal,

> Thanks for the reply.
> 
> > how about using a postamble function instead of
> > html-postamble-format  
> 
> Does it mean that I need to look into modifying the
> org-html--build-pre/postamble function?
> 
> If so, I will start looking into it but it will take a while as it
> full of elisp that I have never used (until today maybe):
> format-spec, plist-get and a lot of assoc's and assq's :)

No, I have two functions, one for the preamble, one for the postamble,
both returning a string.  In the project alist I set :html-preamble
and :html-postamble to those functions (beware of typos):


  ;; pre- and postamble for html export
  (defun linux-e-preamble (info)
    (with-temp-buffer
      (insert-file-contents "~/linuxdocs/html/preamble.html")    
      (let ((title (car (plist-get info :title))))
        (when title
          (if (stringp title)
              (let ((case-fold-search t)) ; case-insensitive
                (goto-char (point-min))
                (while (search-forward "<org-title />" nil t)
                  (replace-match title))))))
      (buffer-string)))

  (defun linux-e-postamble (info)
    (with-temp-buffer
      (insert-file-contents "~/linuxdocs/html/postamble.html")    
      (buffer-string)))

  ;; add linux to org-publish-poject-alist
  (add-to-list 'org-publish-project-alist
               '("linux-e-html"
                 :base-directory "~/linuxdocs"
                 :base-extension "org"
                 :publishing-directory "~/public_html/linuxdocs"
                 :publishing-function org-html-publish-to-html
                 :html-head "<link rel=\"stylesheet\" type=\"text/css\"
  href=\"css/linuxdocs.css\" />" :html-head-include-default-style nil
                 :html-head-include-scripts nil
                 :html-preamble linux-e-preamble
                 :html-postamble linux-e-postamble
                 ))


Best regards
Robert

  parent reply	other threads:[~2016-01-27 19:55 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-26 21:46 Conditionally formatting org-html-postamble-format Kaushal Modi
2016-01-27 18:26 ` Robert H. Klein
2016-01-27 18:35   ` Kaushal Modi
2016-01-27 19:51     ` Nick Dokos
2016-01-27 19:55     ` Robert H. Klein [this message]
2016-01-28  4:36       ` Kaushal Modi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160127205536.5fb468ca@lt70.mpip-mainz.mpg.de \
    --to=roklein@roklein.de \
    --cc=emacs-orgmode@gnu.org \
    --cc=kaushal.modi@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).