From: Pierre de Buyl <pdebuyl@ulb.ac.be>
To: emacs-orgmode@gnu.org
Subject: Re: [Orgmode] S5 export
Date: Fri, 3 Jun 2011 07:38:35 -0400 [thread overview]
Message-ID: <853CA2B4-BD3A-4CB6-953E-775CEEDBBCDA@ulb.ac.be> (raw)
In-Reply-To: <AAB99C57-C1B0-4C78-90BD-3D9FE1E4958A@ulb.ac.be>
[-- Attachment #1: Type: text/plain, Size: 805 bytes --]
Hello Eric,
This is amazing, actual emacs lisp code from my explanations, thanks
a lot!
If welcomed, I have a few comments related to how I currently use
this function (I have a talk coming soon :-) )
- If all "star" headlines become slides, it quickly leads to
awkward layouts with empty slides below one star headings.
I made a modification to the code to choose only one star
headings as slides. This way, level 2 headings can be used as "in
slide" headings.
I used an (if (looking-at "^\\* ") XXX) in the preprocess hook
for that.
- An actual "title page" seems more appropriate, so I added one
with "title author date" as h1,h2 and h3 headings.
The css need to be tweaked a little bit to get nice results.
My modified org-export-as-s5 function is attached.
[-- Attachment #2: org-export-as-s5.el --]
[-- Type: application/octet-stream, Size: 2393 bytes --]
(defun org-export-as-s5
(arg &optional hidden ext-plist to-buffer body-only pub-dir)
"Wrap `org-export-as-html' in setting for S5 export."
(interactive "P")
(flet ((join (lst) (mapconcat #'identity lst "\n"))
(sheet (href media id)
(org-fill-template
(concat "<link rel=\"stylesheet\" href=\"%href\""
" type=\"text/css\" media=\"%media\" id=\"%id\" />")
`(("href" . ,href)
("media" . ,media)
("id" . ,id)))))
(let ((org-export-html-style-extra
(join `("<!-- configuration parameters -->"
"<meta name=\"defaultView\" content=\"slideshow\" />"
"<meta name=\"controlVis\" content=\"hidden\" />"
"<!-- style sheet links -->"
,(sheet "ui/default/slides.css" "projection" "slideProj")
,(sheet "ui/default/outline.css" "screen" "outlineStyle")
,(sheet "ui/default/print.css" "print" "slidePrint")
,(sheet "ui/default/opera.css" "projection" "operaFix")
"<!-- S5 JS -->"
,(concat "<script src=\"ui/default/slides.js\" "
"type=\"text/javascript\"></script>"))))
(org-export-html-toplevel-hlevel 1)
(org-export-headline-levels 2)
(org-export-preprocess-hook
(list
(lambda ()
(let ((class "slide"))
(org-map-entries
(lambda ()
(save-excursion ;; from `org-export-remember-html-container-classes'
(org-back-to-heading t)
(if (looking-at "^\\* ")
(put-text-property (point-at-bol) (point-at-eol)
'html-container-class class))))))
)))
(org-export-html-final-hook
(list
(lambda ()
(save-excursion
(replace-regexp
(regexp-quote "<div id=\"content\">")
(mapconcat #'identity
`("<div class=\"layout\">"
"<div id=\"controls\"><!-- no edit --></div>"
"<div id=\"currentSlide\"><!-- no edit --></div>"
"<div id=\"header\"></div>"
"<div id=\"footer\">"
,(format "<h1>%s - %s</h1>" author title)
"</div>"
"</div>"
""
"<div class=\"presentation\">"
"<div class=\"slide\">"
,(format "<h1> %s </h1>
<h3> %s </h3>
<h3> %s </h3>" title author date)
"</div>") "\n"))))
(lambda ()
(save-excursion
(replace-regexp
(regexp-quote "<div id=\"table-of-contents\">")
"<div id=\"table-of-contents\" class=\"slide\">"))))))
(org-export-as-html arg hidden ext-plist to-buffer body-only pub-dir))))
[-- Attachment #3: Type: text/plain, Size: 3650 bytes --]
I also posted an example online. It it exported from the file s5-
test.org with the function defined in the attached file. The css is
very slightly modified.
The "scientific content" of the talk is incomplete, this is normal :-/
http://homepages.ulb.ac.be/~pdebuyl/lectures/s5-test.html
http://homepages.ulb.ac.be/~pdebuyl/lectures/s5-test.org
For those reading, I'll mention that using the html export, as done
here, allows to include syntax-highlighted code and LaTeX equations
very easily.
Regards,
Pierre
Le 1 juin 11 à 18:41, Eric Schulte a écrit :
> Hi Pierre,
>
> I've taken your very thorough S5 instructions and converted them
> into a
> single `org-export-as-s5' function. The attached archive file
> holds an
> s5.org Org-mode file which defines this function, as well as the ui
> directory required for S5, and an html file which results from calling
> the `org-export-as-s5' function in the s5.org file.
>
> For now the results are also posted up at
> http://cs.unm.edu/~eschulte/notes/s5/s5.org
> http://cs.unm.edu/~eschulte/notes/s5/s5.html
>
> Thanks for the clear explanation which lead to such an easy
> translation
> into elisp. Please let me know if you think this should be
> augmented in
> any way, or if the defined function throws any errors on your system.
>
> Best -- Eric
>
> <s5.tar.bz2>
> Pierre de Buyl <pdebuyl@ulb.ac.be> writes:
>
>> Hello,
>>
>> After a lot a reading of org-exp.el and org-html.el I finally figured
>> out the
>> existence of the "HTML_CONTAINER_CLASS" property.
>>
>> I could then figure a minimal way to make a s5 presentation.
>> Minimal in the sens of minimum difference with the html exporter.
>>
>> After setting a few STYLE and OPTIONS lines in an org file,
>> three steps are needed:
>> 1. Set the HTML_CONTAINER_CLASS to "slide" on level 1 headings
>> 2. Set org-export-html-toplevel-hlevel to "1", so that slide titles
>> behave properly
>> 3. Replace in the html output
>> <div id="content">
>> by
>> <div class="layout">
>> <div id="controls"><!-- DO NOT EDIT --></div>
>> <div id="currentSlide"><!-- DO NOT EDIT --></div>
>> <div id="header"></div>
>> <div id="footer">
>> <h1>Interactive Python plotting</h1>
>> </div>
>> </div>
>>
>> <div class="presentation">
>>
>> You need the "ui" directory from the S5 archive to make it work
>> indeed, http://meyerweb.com/eric/tools/s5/ .
>> I attach an example org file and the resulting html (which was
>> tweaked
>> according to step 3).
>>
>> Pierre
>>
>>
>>
>>
>>
>> Le 3 févr. 11 à 12:23, Bastien a écrit :
>>
>>> Hi Pierre,
>>>
>>> Pierre de Buyl <pdebuyl@chem.utoronto.ca> writes:
>>>
>>>> S5 allows one to present a slideshow in a web browser, even full
>>>> screen for
>>>> some browsers.
>>>> I know that the topic has come here already, but I actually hacked
>>>> the
>>>> excellent org-html.el export file to produde a S5 slideshow with
>>>> org.
>>>
>>> This looks useful.
>>>
>>> By reading your code, I see org-export-as-s5 is a variation over
>>> org-export-as-html.
>>>
>>> I would welcome an approach where we factor out some elements of
>>> org-export-as-html, so that exporting to s5 would just require the
>>> user to customize those elements.
>>>
>>> Does that seem reasonable to you? Would you volunteer to make
>>> org-export-as-html a bit more general? Even a precise comparison
>>> of org-export-as-s5 against org-export-as-html would be helpful at
>>> this point.
>>>
>>> Thanks!
>>>
>>> --
>>> Bastien
>>
>
> --
> Eric Schulte
> http://cs.unm.edu/~eschulte/
next prev parent reply other threads:[~2011-06-03 11:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-04 14:31 S5 export Pierre de Buyl
2011-02-03 17:23 ` Bastien
2011-02-03 18:48 ` Achim Gratz
2011-02-11 11:22 ` Bastien
2011-06-01 12:41 ` [Orgmode] " Pierre de Buyl
2011-06-01 18:21 ` Pierre de Buyl
2011-06-01 21:31 ` Eric Schulte
2011-06-01 22:41 ` Eric Schulte
[not found] ` <AAB99C57-C1B0-4C78-90BD-3D9FE1E4958A@ulb.ac.be>
2011-06-03 11:38 ` Pierre de Buyl [this message]
2011-06-03 12:48 ` Eric Schulte
2011-06-03 13:45 ` Pierre de Buyl
2011-06-03 15:02 ` Eric Schulte
2011-06-03 13:15 ` Christian Moe
2011-06-03 15:05 ` Eric Schulte
-- strict thread matches above, loose matches on Subject: below --
2011-06-05 8:29 Rustom Mody
2011-06-05 15:18 ` Eric Schulte
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=853CA2B4-BD3A-4CB6-953E-775CEEDBBCDA@ulb.ac.be \
--to=pdebuyl@ulb.ac.be \
--cc=emacs-orgmode@gnu.org \
/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).