slidonoscopy is a software to create individual HTML based slideshows based on local data (text, images, videos...) and (optionally) remote Ical calendars. Dependencies: ============= slidonoscopy is written in node.js and requires some additional modules: * connect * express * walk * watch-tree * node-ical Currently a few patches to node-ical and watch-tree are required. node-ical has to be updated to parse recurring rules. watch-tree needs a patch to support node 0.6. You can check out those updated packages from: git://l.unchti.me/watch-tree git://l.unchti.me/node-ical Usage: ====== Edit config.js to reflect the location of your slideshows und metadata/event files. Slideshows are to be created under $dir with one directory per slideshow. $dir---slideshow1 -- events.js | |___ slide1.jpg | |___ slide2.jpg | |___ video.mkv | |___ desc.js | |___ template.html | |___slideshow2 -- events.js | |___ slide.jpg | |___ template.html | |___slideshow3 -- events.js |___ template.html The template is a simple HTML file where the key words $EVENTS and $IMAGES will be exchanged at runtime with the appropriate events and slides (as lists). Just execute $ node main.js to run slidenoscopy. The server will listen on port 8080 and will serve all slideshows under slides/$name. Retrieving anything else will display a list of all available slideshows. Events: ======= Events are substituted into the template either from a file or a remote ical calendar. Using an ical calendar is recommended as it allows defining recurring events. For using a remote calendar the events.js file should contain the following fields: { "type": "ical", "url": "https://sublab.org:5232/calendars/events", "before": 0, "after": 11160 } The time offsets (seconds) are used to fetch past and future events from the calendar. All fields of each event are put into a div inside the event list element with the classes eventField and the name of the field. The example slideshows don't show those fields by default, but selectively enable known fields like summary and start time. Slides: ======= Slides are created from each file in a subdirectory in the root directory defined in config.js (as described above). Slides consist of a media file (movies or images) and optionally a corresponding description. All media files should have the same size (at least with the default themes) to ensure a smooth transition between slides. Descriptions are defined in desc.js as follows: [ { "file": "IMGP4596.jpg", "head": "Kicker", "text": "unser toller Profikicker" }, { "file": "IMG.jpg", "head": "foobar", "text": "barfoo" } ] The heading is put into a div inside the media tag (img or video) with the class slideHead. The description text is put into div inside the media tag with the class slideText.