Sébastien Vauban <zthjwsqqa...@spammotel.com> writes: > Hello, > > I'd like to use Org exclusively for composing and then publishing my Web site. > I've done it so far with Emacs Muse, but I have a strong deepish attraction to > go the Org way, for many different reasons you must be aware of -- more than I > am... > > The features I need are: > > - Conditional CSS [if IE] > - Favicon
Both can be achieved through the #+STYLE: options. Multiple lines possible. Those lines are added to the `<head>' section of the resulting documents. Also, you might take a look into the documentation for org-publish-project-alist in http://orgmode.org/manual/Sample-configuration.html#Sample-configuration > - JavaScript for Google Analytics > - Date in the copyright > - Contextual navigation menu #+begin_html your menu here #+end_html #+begin_html your analytics script here #+end_html Regards, Sebastian > I'll come back into more details to these. > > All of these were coded in the header or footer of each page with Muse. What > was good, is that I could write: > > > (setq muse-project-alist > `( > ("My-Muse-Public-Website" > ("~/Public/Websites/Muse/source/" :default "index") > (:base "xhtml" > :path "~/Public/Websites/Muse/publish/" > :header "~/Public/Websites/Muse/source/header.html" > :footer "~/Public/Websites/Muse/source/footer.html")))) > > Hence, specifying file names instead of file contents for both the header and > footer. This is good, as I don't have to change my .emacs file every time I > wanna change the way my pages have to look like. Such a feature would be nice > for Org as well. Is it scheduled? Can we achieve the same result otherwise? > > Regarding the above features: > > - Conditional CSS [if IE] > > Can be coded in the common header string. OK. > > - Favicon > > Can be coded in the common header string -- if it's a common one for all my > Web site. How can we specify on a per page basis? This more or less comes > down to the recent addition of the `keywords' and `description' meta tags > (thanks Carsten). > > - JavaScript for Google Analytics > > Can be coded in the common header string. OK. > > - Date in the copyright > > Can be coded in the common footer string. Well, it would be nice if it could > be computed somehow, and be for example (depending of user prefs) the date > when the file (or page) has been changed. > > Hence, it's not specifically a data that's common to every page of my Web > site. How can we do this? > > This is what I did with Emacs Muse, embedding Emacs Lisp in the footer: > > > Last Updated: > <lisp> > (format-time-string muse-footer-date-format > (nth 5 (file-attributes (muse-current-file)))) > </lisp> > > but I think this is not currently possible with Org, right? Is there some > other solution? > > - Contextual navigation menu > > Finally, the only real problem that I see (the above being nice-to-have's) > is the following: I want to have a common navigation menu, but whose current > page is highlighted. To do so, I just have to add the class `current' to > the current entry, but this means the navigation menu is not constant > between pages! > > I did that with Muse doing so: > > > (setq nav-menu '((\"Home\" . \"index.html\") > (\"About Me\" . ( (\"CV\" . > \"curriculum-vitae.html\") > (\"PGP Public Key\" . > \"pgp-public-key.html\") > (\"Contact Me\" . > \"contact-me.html\"))) > (\"Resources\" . ( (\"Ubuntu\" . > \"ubuntu.html\") > (\"Emacs\" . > \"dot-emacs.html\"))))) > > and in the footer file: > > > <div id=\"navigation\"> > <h2>Navigation</h2> > <lisp>(my-muse-generate-nav-menu)</lisp> > </div> > > with the following (ugly -- caus' it should be written in a recursive way!) > definition for `my-muse-generate-nav-menu': > > > (defun my-muse-generate-nav-menu () > (let* ((html-menu "") > (cur-path-muse (muse-current-file)) > (cur-path-html > (replace-regexp-in-string "\\.muse" ".html" cur-path-muse))) > (setq html-menu "<ul>\n") > (while nav-menu > (progn > (if (not (listp (cdr (car nav-menu)))) > (setq html-menu > (concat html-menu > "<li><a href=\"" (cdr (car nav-menu)) > "\" title=\"" (caar nav-menu) "\"" > (if (string-match > (concat ".*" (cdr (car nav-menu)) "$") > cur-path-html) > " class=\"current\"" > "") > ">" (caar nav-menu) "</a></li>\n")) > (progn > (setq html-menu > (concat html-menu > "<li>" (caar nav-menu) "\n" "<ul>\n")) > > (setq nav-submenu (cdr (car nav-menu))) > (while nav-submenu > (setq html-menu > (concat html-menu > "<li><a href=\"" (cdr (car nav-submenu)) > "\" title=\"" (caar nav-submenu) "\"" > (if (string-match > (concat ".*" (cdr (car nav-submenu)) > "$") > cur-path-html) > " class=\"current\"" > "") > ">" (caar nav-submenu) "</a></li>\n")) > (setq nav-submenu (cdr nav-submenu))) > > (setq html-menu (concat html-menu "</ul>\n</li>\n")))) > (setq nav-menu (cdr nav-menu)))) > (setq html-menu (concat html-menu "</ul>")) > html-menu)) > > How can I do such a thing in Org? > > THANK YOU VERY MUCH for all the hints or help you can provide me with! > > I really want to go the Org way for all my composed stuff... > > Best regards, > Seb -- Sebastian Rose, EMMA STIL - mediendesign, Niemeyerstr.6, 30449 Hannover Tel.: +49 (0)511 - 36 58 472 Fax: +49 (0)1805 - 233633 - 11044 mobil: +49 (0)173 - 83 93 417 Email: s.r...@emma-stil.de, sebastian_r...@gmx.de Http: www.emma-stil.de _______________________________________________ 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