SlideShow
I reworked JimClark's slideshow action
Tested with:
Features
- 1.0 2005-03-25 - first version
1.1 2005-03-30 - revised thanks to some comments from NirSoffer.
Parse H1 tags instead of using the Slide macro.
- Improve navigation.
1.2 2005-03-31 rewrite by NirSoffer:
- fix bug with heading within pre,
- simplifying code
- auto correct slide number
- much more
Refactor into 2 classes, Slides and SlideShow
- Easy to customize design, subclass and override
- few methods to customize behavior.
- Parse page headers and set pragmas
- Disable conflicting section-number pragma
- Support any headers e.g #Author, #Status
- When slide number out of range, default to first slide
- Fixed bug when size of navigation changed
- Complete abstract output using the formatter
- Added required Dependencies variable
- Simplified more efficient parsing
- More efficient link creation
- Removed unneeded last slide link
- Improved navigation tooltips
- Default slide for pages with no heading
- Complete right to left support - both back forward icons and
- hotkeys are switched according to the user language.
- Disable link to editor if you can't edit
- Clear text links instead of funny text mode icons.
- Changed hotkeys to up, right and left arrow, which make sense and
- work everywhere. As a benefit, space and numbers can be use on interactive slides.
- Icons for "edit", "exit", "first", "back" and "previous" links.
- Additional links for "help", "agenda"
- Icons for "help" and "agenda"
- Additional hotkey for "exit", "help" and "agenda"
- Select box for easy navigation by slide headers
- Hide the navigation panel on mouseout
- Show next slide by clicking in the right-bottom corner
- Additional user defined tags:
- #Title
- The title of the slideshow
- #Agenda
- Number of the slide with the agenda
- #Author
- Name of the author
- #Date
- Date of the slideshow
- #Logo
- Path of an attachment
- #Stylesheet
- Name of the stylesheet
- #Title
- Show agenda in a popupbox.
- Show this help in a popupbox.
- Close popupboxes with double click or close icon
Usage
- Allows treatment of a wiki page as a set of slides. Displays a single slide at a time, along with a navigation aid.
Use the GoToSlide macro to create a individual navigation on a slide, like a agenda or index A slide show page looks like this:
- general introduction or comments
#Title Wild horses #Agenda 3 #Author Dschingis Khan #Date 01. Jan 2008 #Logo /path/to/a/image.png #Stylesheet projection = Slide 1 title = Slide 1 contents = = Slide with empty title = Slide 3 title = Slide 3 contents ...
The SlideShow action takes a parameter 'n', which is the (1-based) number of the slide to display. The display uses the large screen 'projection' media. Shortcuts:
- Exit: ESC-key Agenda: a Next slide: cursor-key, spacebar Previous slide: cursor-key
- a invisible area in the right bottom corner there mouse clicks move
- to the next page
- pulldown list with slide headers
- navigation footer
Configuration
Unpack the zip in your wiki path.
Add the following lines to your wikiconfig.py if you want to use icons for your navigation:
1 newsmileys = {
2 "(slideshow)": (16, 16, 0, "moin-slide.png"),
3 "(first)": (16, 16, 0, "moin-first.png"),
4 "(next)": (16, 16, 0, "moin-next.png"),
5 "(exit)": (16, 16, 0, "moin-exit.png"),
6 "(prev)": (16, 16, 0, "moin-prev.png"),
7 "(autoplay)": (16, 16, 0, "moin-play.png"),
8 "(stop)" : (16, 16, 0, "moin-stop.png"),
9 "(edit)" : (16, 16, 0, "moin-edit.png"),
10 "(index)" : (16, 16, 0, "moin-index.png"),
11 "(print)" : (16, 16, 0, "moin-print.png"),
12 "(goto)" : (16, 16, 0, "moin-goto.png"),
13 "(info)" : (16, 16, 0, "moin-info.png"),
14 "(close)" : (16, 16, 0, "moin-cancel.png"),
15 "(blank)" : (16, 16, 0, "blank.gif"),
16 }
17 config.smileys.update( newsmileys )
Screenshots
|
|
|
|
|
|
Download
TO-DO
Requests
I think it would be better to follow the model of s5 approach where the whole slideshow is loaded into a single HTML page and flipped through only with CSS. It's much faster, compared to the approach taken here which requires loading and renderering every page seperatly. -- TheAnarcat 2008-07-05 17:54:13
Comments
I can't get this to work at all. I installed the macro in my actions directory, but it seems I can't configure the smileys properly, because I get this when I run the slideshow action:
KeyError: '(index)'
I tried hooking up the smileys definition in my wikiconfig (it's farmconfig.py here) and there's no "config" object defined in there, nor is there a smileys object defined within the config class itself. To get it to work, i needed to add it to the moin.fcg script itself, after from MoinMoin import config. Then it worked. -- TheAnarcat 2008-07-05 17:54:13
Discussion
I tried to use it and stumbled over some problems:
- it doesn't work with moin 1.8 (likely also not for 1.7) due to some API changes in moin:
SlideShow_typos_moin18.diff - fixes some typos and makes some fixes needed to use the code with moin 1.8.0 (maybe more fixes are needed)
I've added this repackaged version with the above diffs and without .svn directories: SlideShow-1.4-1.zip -- PaulBoddie 2009-11-15 01:19:54
SlideShow appears to be in moin 1.9, but doesn't work with 1.8 - acquiring the formatter plugin seems to fail, producing HTML as plain text -- PaulBoddie 2009-11-15 21:53:14
I see that SinglePageSlideShow references work that may have been incorporated into the moin 1.9 built-in slideshow support -- PaulBoddie 2009-11-24 16:01:49
- there is "mysteel" stuff in the archive, but it does not have mysteel.py to be a complete theme
- image names overlap with moin's image names, so one can't simply copy mysteel/img to modernized/img
- there is also a big overlap/conflict in mysteel/css - maybe it would be easier to handle by just using a separate slideshow/ static files directory and separate the css of it from the css used by the theme
- source does not conform to PEP8 (I resisted from cleaning it up because that would've spoiled the diff)
- source uses CRLF line endings (moin uses just LF)
- using mercurial would be better for distributed revision control than svn