summaryrefslogtreecommitdiff
path: root/README
blob: 4cc1f3103d455a499b48dd1211a5cb70496714b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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.