S5 1.2a2
Published 18 years, 5 months pastThe alpha 2 release of S5 1.2 is now available (177KB ZIP file; also available for previewing in the testbed). There isn’t any major change here, but I did add some notable enhancements to the notes window. These are:
- On any slide with incrementals, an indicator of incremental progress will appear in square brackets next to the overall slide show progress on the title line. It’s a little crude, I admit, but it serves the purpose well enough.
- Clicking on the title of either the Elapsed Time or Remaining Time counters will “minimize” them. Click a minimized title to maximize the box. The actual minimum and maximum effects are purely CSS-driven, hooked onto a
collapsed
class name. I’m still pondering the best way to handle this feature, so the class name may change, as for that matter may the mechanism by which one can min/max the boxes. Suggestions are welcome. - Keypresses and clicks are passed from the note window back to the slide show. In other words, the slide show fully is fully operable from either the slide show window or the notes window. The only difference is that the notes window doesn’t have the navigation links and popup navigation menu (said difference to disappear in a future release).
That’s it. In the process, though, I uncovered a bug that shows up in Safari 1.3.1 and 2.0, where it’s ignoring the show-first
feature for incrementals. I’m going to assume that the problem lies in the getIncrementals()
function, though of course I could be wrong. If anyone can spot the error and provide a fix, I’d be grateful.
Update 2 Mar 06: in addition to the Safari problem, I’ve discovered that IE/Win doesn’t seem to share event information between windows. Thus, if you try to run the slide show from the notes window, errors get thrown. I managed to fix this in clicker()
by adding a test for notes-window events, but trap()
has a very different structure and I’m not sure how to fix it. Thus the testbed in IE/Win currently lets you advance the slide show from the notes window by clicking the mouse button, but keyboard navigation throws an error. If anyone can tell me how to get around this, even with a pointer to a good article on passing events from one window to another, I’d be very grateful.
Comments (15)
Hey Eric,
I’m getting a 404 on the now available link.
Thanks for building, maintaining and improving S5. It’s the only thing I’ve used in my presentations, and the best part is, I only have to put it together once, then the original can be shared, printed, etc. by anyone.
Oops! Sorry of being such a nitpicker, but you’re missing the filename’s leading letter in the link. Anyway, thanks for sharing.
Sheldon and djn: thanks for pointing out the error. Typo is fixed. Duh me!
Hi Eric,
I’ve just been looking at S5 in the testbed. Any time I resize the window by dragging the bottom right corner around I get a Javascript error: “line 467, char 4, invalid argument”.
If I resize using maixmise and restore down buttons then there’s no problem.
I’m using IE6 with XP SP2.
Thought you’d like to know. Otherwise it’s a great product. I’m about to mention it to the other students on my MSc course.
Cheers,
Nick
Nick: I don’t get an error in IE6/Win2KPro, either when resizing the window or min/maxing it. Anyone else? I did find the notes-window event-handling errors I mentioned in my update to the post, though. So thanks!
Hi Eric,
Following your earlier response I downloaded the source code and had a little play. I can reliably generate the error I mentioned above, and it appears to be caused by some limit on the length of the styleSheet collection. It seems the createStyleSheet method (which gets called everytime the window scales) fails when the styleSheet collection gets to 31.
So I created a little test page to test this theory, which I have uploaded at http://www.elearningdeveloper.co.uk/test/test.htm. The page is blank HTML page which starts a loop once the page has loaded. Within the loop the script calls the createStyleSheet method and uses a try/catch branch to detect any errors and report back the state of the styleSheet collection if an error occurs. The loop is set to break if an error occurs or the styleSheet collection reaches 1000. Everytime I run the test, it fails at 31.
I’d be interested to see if anyone else notices a similar problem, or is it something peculiar to my machine?
Cheers,
Nick
Nick,
When I run your test I run into an error at 31 too. I’m on WinXP Pro, IE 6.0.2800.1106.spsp2.050301-1526.
Good luck,
Tom
It works fine in my system (Firefox 1.5). I have been long using html for portable presentations and lectures, and this system is a welcome tool to simplify the job. Thanks for offering it.
There is now S5 support in Docutils, which means that presentations can be written in reStructuredText, a WYSIWYG plaintext markup language (much easier to learn and use than raw HTML for most mortals). Many people used Docutils/S5 for their presentations at the recent PyCon 2006 (Python conference) in Dallas TX. I’ll be adding S5 1.2 support as it matures.
I’d like to suggest that S5 be opened up. I’m sure it will gather an active developer community. Right now, it’s a one-man project, and probably a very busy one man.
At minimum, a mailing list is needed; communicating via blog comments is less than ideal. I would also recommend a project repository (Subversion) and bug tracker. There are many web sites available for this, like sourceforge.net, or you could deploy the necessary services on this server (more work, but more control).
I would be happy to help; please contact me.
Hi Eric,
We’ve modified the TWiki slideshow plugin to use S5 as its presentation engine. It works fabulously and I just wanted to thank you for the tool.
I also had a suggestion/feature request. One of the most common things about a slideshow is an agenda/outline slide that is repeated at frequent intervals to show where we are w.r.t. the whole slide set. A very nice way to handle this can be seen here http://www.cwinters.com/pdf/workflow_pgh_pm.pdf. Could we incorporate something like this into S5. The outline can be defined in the beginning as a two level UL list, and displayed/updated using appropriate javascript/css.
What say?
I found out that the slides above were created by a Latex class called Beamer. The slides are divided by section/subsection (very natural in Latex) and the outline navigation is created from the slides titles. Btw, the outline is clickable. Beamer themes define where the outline is placed (side, top, etc.), what it shows (sections and/or subsections) and how it is formatted (two panes, tree, etc.).
Pankaj
Hi Eric, I learnod (copied) so much from your CSS examples, so I felt
guilty by not answering to this help request:
>> Update 2 Mar 06: in addition to the Safari problem, I”ve discovered
>> that IE/Win doesn”t seem to share event information between windows.
>> ……
>> If anyone can tell me how to get around this, even with a pointer to
>> a good article on passing events from one window to another, I”d be
>> very grateful
I finally found somebody having my exact same problem: sharing events between windows. I solved it in my environment, I hope to be of help with my solution.
I tried to explain this to Dean Edwards some time ago last year but my confusionary notes and my english not beeing my virtue made this pass obfuscated in the comments.
The line that solves this aspect in Dean great addEvent() is:
event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
Well I for myself have solved the same problem I had with events coming from different IFRAMES inside the main window, for dragging windows to be clear, in a MDIWindow like environment which I use in the IPORT Project (a real Visual Layout and Webdesign tool).
This is the URL with the code related to your problem:
http://javascript.nwbox.com/addEvent/
No style/graphics there, just pure tests (I do not have the time yet).
Look inside, the Javascript code is in “nwbox/nwevents.js”. You will see Dean Edwards pattern there but I believe I improved it in many ways (still need some testing).
Looking forward for your comments, I need some expert test/advice on this.
Diego
I’ve had the IE 6 bug when resizing. I assumed Nick was correct and that it was a limit on new stylesheets. I successfully implemented the following workaround:
– add a reference to an empty placeholder css file in the html document, making sure its the first stylesheet referenced.
– change the js reference in the IE exception to:
document.s5ss = document.styleSheets[0]; // placeholder css
//document.createStyleSheet();
//document.s5ss = document.styleSheets[document.styleSheets.length – 1];
this way it continually recycles the empty css sheet rather than generating new ones.