[-- Attachment #1: Type: text/plain, Size: 776 bytes --] Hi! Well, the subject says it all -- attached is a rough patch to allow more flexibility with the HTML export; I use it like this: (defun rotty/homepage-preamble (opt-plist) (insert "<div id=\"header\">") (insert " <div id=\"navbar\"> <a class=\"menu\" href=\"/\">Home</a> | <a class=\"menu\" href=\"/Writings.html\">Writings</a> | <a class=\"menu\" href=\"/Software.html\">Software</a> | <a class=\"menu\" href=\"/blog/\">Blog</a> </div> ") (insert (format "<h1 class=\"title\"><a href=\"/\">rotty</a> > %s</h1>\n" (plist-get opt-plist :title))) (insert "</div>\n") (insert "<div id=\"inner\">\n")) Note that this is my first real patch to org-mode, so be gentle ;-). [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: t_html-export-amble-funtions.diff --] [-- Type: text/x-diff, Size: 2014 bytes --] From: Andreas Rottmann <a.rottmann@gmx.at> Subject: [PATCH] Allow functions for {pre/post}amble --- lisp/org-html.el | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lisp/org-html.el b/lisp/org-html.el index ee72065..be4ddfd 100644 --- a/lisp/org-html.el +++ b/lisp/org-html.el @@ -606,6 +606,7 @@ PUB-DIR is set, use this as the publishing directory." (file-name-sans-extension (file-name-nondirectory buffer-file-name))) "UNTITLED")) + (custom-plist (org-combine-plists (list :title title) opt-plist)) (html-table-tag (plist-get opt-plist :html-table-tag)) (quote-re0 (concat "^[ \t]*" org-quote-string "\\>")) (quote-re (concat "^\\(\\*+\\)\\([ \t]+" org-quote-string "\\>\\)")) @@ -745,7 +746,7 @@ lang=\"%s\" xml:lang=\"%s\"> date author description keywords style)) - (insert (or (plist-get opt-plist :preamble) "")) + (org-export-html-insert-plist-item opt-plist :preamble custom-plist) (when (plist-get opt-plist :auto-preamble) (if title (insert (format org-export-html-title-format @@ -1372,7 +1373,7 @@ lang=\"%s\" xml:lang=\"%s\"> (if org-export-html-with-timestamp (insert org-export-html-html-helper-timestamp)) - (insert (or (plist-get opt-plist :postamble) "")) + (org-export-html-insert-plist-item opt-plist :postamble custom-plist) (insert "\n</div>\n</body>\n</html>\n")) (unless (plist-get opt-plist :buffer-will-be-killed) @@ -1425,6 +1426,14 @@ lang=\"%s\" xml:lang=\"%s\"> (kill-buffer (current-buffer))) (current-buffer))))) +(defun org-export-html-insert-plist-item (plist key &rest args) + (let ((item (plist-get plist key))) + (cond ((functionp item) + (apply item args)) + (item + (insert item))))) + + (defun org-export-html-format-href (s) "Make sure the S is valid as a href reference in an XHTML document." (save-match-data -- tg: (0795e42..) t/html-export-amble-funtions (depends on: master) [-- Attachment #3: Type: text/plain, Size: 16 bytes --] Regards, Rotty [-- Attachment #4: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Hi Andreas,
I like the patch and have applied it.
This is on the border of something where I need a copyright assignment.
Mind to send one to the FSF?
- Carsten
On Jul 3, 2009, at 11:06 PM, Andreas Rottmann wrote:
> Hi!
>
> Well, the subject says it all -- attached is a rough patch to allow
> more
> flexibility with the HTML export; I use it like this:
>
> (defun rotty/homepage-preamble (opt-plist)
> (insert "<div id=\"header\">")
> (insert
> "
> <div id=\"navbar\">
> <a class=\"menu\" href=\"/\">Home</a>
> | <a class=\"menu\" href=\"/Writings.html\">Writings</a>
> | <a class=\"menu\" href=\"/Software.html\">Software</a>
> | <a class=\"menu\" href=\"/blog/\">Blog</a>
> </div>
> ")
> (insert (format
> "<h1 class=\"title\"><a href=\"/\">rotty</a> > %s</
> h1>\n"
> (plist-get opt-plist :title)))
> (insert "</div>\n")
> (insert "<div id=\"inner\">\n"))
>
> Note that this is my first real patch to org-mode, so be gentle ;-).
>
> From: Andreas Rottmann <a.rottmann@gmx.at>
> Subject: [PATCH] Allow functions for {pre/post}amble
>
>
> ---
> lisp/org-html.el | 13 +++++++++++--
> 1 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/lisp/org-html.el b/lisp/org-html.el
> index ee72065..be4ddfd 100644
> --- a/lisp/org-html.el
> +++ b/lisp/org-html.el
> @@ -606,6 +606,7 @@ PUB-DIR is set, use this as the publishing
> directory."
> (file-name-sans-extension
> (file-name-nondirectory buffer-file-name)))
> "UNTITLED"))
> + (custom-plist (org-combine-plists (list :title title) opt-
> plist))
> (html-table-tag (plist-get opt-plist :html-table-tag))
> (quote-re0 (concat "^[ \t]*" org-quote-string "\\>"))
> (quote-re (concat "^\\(\\*+\\)\\([ \t]+" org-quote-string "\\>\
> \)"))
> @@ -745,7 +746,7 @@ lang=\"%s\" xml:lang=\"%s\">
> date author description keywords
> style))
>
> - (insert (or (plist-get opt-plist :preamble) ""))
> + (org-export-html-insert-plist-item opt-plist :preamble
> custom-plist)
>
> (when (plist-get opt-plist :auto-preamble)
> (if title (insert (format org-export-html-title-format
> @@ -1372,7 +1373,7 @@ lang=\"%s\" xml:lang=\"%s\">
>
> (if org-export-html-with-timestamp
> (insert org-export-html-html-helper-timestamp))
> - (insert (or (plist-get opt-plist :postamble) ""))
> + (org-export-html-insert-plist-item opt-plist :postamble
> custom-plist)
> (insert "\n</div>\n</body>\n</html>\n"))
>
> (unless (plist-get opt-plist :buffer-will-be-killed)
> @@ -1425,6 +1426,14 @@ lang=\"%s\" xml:lang=\"%s\">
> (kill-buffer (current-buffer)))
> (current-buffer)))))
>
> +(defun org-export-html-insert-plist-item (plist key &rest args)
> + (let ((item (plist-get plist key)))
> + (cond ((functionp item)
> + (apply item args))
> + (item
> + (insert item)))))
> +
> +
> (defun org-export-html-format-href (s)
> "Make sure the S is valid as a href reference in an XHTML document."
> (save-match-data
> --
> tg: (0795e42..) t/html-export-amble-funtions (depends on: master)
>
> Regards, Rotty
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Carsten Dominik <carsten.dominik@gmail.com> writes: > Hi Andreas, > > I like the patch and have applied it. > > This is on the border of something where I need a copyright assignment. > Mind to send one to the FSF? > Nope, I did one a few years ago for Guile; I guess they have to re-send me the forms for org-mode, or ist there a way to extend the copyright assignment without the paperwork? Regards, Rotty -- Andreas Rottmann -- <http://yi.org/rotty/>