-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathREADME
171 lines (130 loc) · 5.12 KB
/
README
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
November
========
November is Copyright (C) 2008-2009, the November contributors (as listed in
AUTHORS).
LICENSE INFORMATION
-------------------
November is free software; you can redistribute it and/or modify it under the
terms of the Artistic License 2.0. (Note that, unlike the Artistic License
1.0, version 2.0 is GPL compatible by itself, hence there is no benefit to
having an Artistic 2.0 / GPL disjunction.)
CONTRIBUTING
------------
We'll hand out commit bits liberally. If you want to contribute, create an
account on github.org and send your github handle to Johan
([email protected]). Patches are ok too, if you prefer those. See
docs/COMMITTERS if these thoughts intrigue you.
PREREQUISITES
-------------
You'll need Parrot and Rakudo. Check them out from the Parrot svn repository
and follow the instructions in the checkout. Note that the latest 'stable
release' of Parrot/Rakudo often isn't new enough, since we tend to use features
developed after the latest release.
See instructions on the Rakudo web site:
<http://rakudo.org/how-to-get-rakudo>
You'll also need the projects listed in deps.proto, presently only
HTML::Template. It is preferrable to build HTML::Template before building
November.
$ pwd
/tmp
$ git clone git://github.com/viklund/november.git
$ git clone git://github.com/masak/html-template.git
$ export RAKUDO_DIR=$PARROT_DIR/languages/rakudo
$ export PERL6LIB=$RAKUDO_DIR:/tmp/november/lib:/tmp/html-template/lib
$ cd html-template/
$ perl Makefile.PL
$ make
$ cd ../november/
$ perl Makefile.PL
$ make
The package installer 'proto' (at <http://github.com/masak/proto>) does all of
the above for you automatically:
$ ./proto install november # installs Rakudo/Parrot, November & all its deps
REPOSITORY LAYOUT
-----------------
/ Perl 6 wiki implementation
│
├─data/ File database contents for an empty wiki instance
│
├─skins/ Default skins for the Perl 6 implementation
│
├─t/ Tests for the Perl 6 implementation
│
├─p5w/ Perl 5 reference implementation
│
├─docs/ Developer documentation for both p5w and p6w
│
├─talks/ Presentations and links to videos about November
│
└─logotype/ Graphics files for the November logotype
RUNNING NOVEMBER
----------------
Before building November you have to set the PARROT_DIR, RAKUDO_DIR and
PERL6LIB environment variables to include the lib/ subdirectory of the
November repository. In bash, that would look like this:
$ export PARROT_DIR=/path/to/parrot
$ export RAKUDO_DIR=/path/to/rakudo
$ export PERL6LIB=/path/to/repository/of/november/lib
After that, you can build as usual.
$ perl Makefile.PL
$ make # not required; speeds up startup times
$ make test # not required; requires Test::Harness v3.00 or higher
* Running November on the command line
This will generate the Main_Page on STDOUT:
$ ./test_wiki.sh
To specify which page to view you need to specify the path, as follows:
$ ./test_wiki.sh
$ ./test_wiki.sh /view/Another_Page
$ ./test_wiki.sh /all
$ ./test_wiki.sh /recent
$ ./test_wiki.sh /view/Main_Page
The above first and last commands are equivalent, since 'view' is the
default action, and 'Main_Page' is the default page for the 'view' action.
The other actions we have so far are 'edit', 'log_in', 'log_out'.
* Running November through a web server
We have only tested the following on the Apache web server. You need to put
these files and directories in some directory where Apache can execute it
(your cgi-bin/ dir for example):
wiki.sh
wiki
lib/Config.pm
lib/CGI.pm
lib/Dispatcher.pm
lib/Dispatcher/Rule.pm
lib/HTML/Template.pm
lib/HTML/Template/Grammar.pm
lib/November.pm
lib/November/Storage.pm
lib/November/Storage/File.pm
lib/Session.pm
lib/Tags.pm
lib/Text/Escape.pm
lib/Text/Markup/Wiki/Minimal.pm
lib/Text/Markup/Wiki/Minimal/Grammar.pm
lib/Text/Markup/Wiki/MediaWiki.pm
lib/URI.pm
lib/URI/Grammar.pm
lib/Utils.pm
skin/
Then put these directories somewhere else. Preferably someplace where apache
can't serve them over the net. And yes, skin/ should be in both places,
which is not optimal. We're working on that.
data/
skin/
Edit the Config.pm file and set the $.server_root variable to the directory
under which both skin/ and data/ are accessible (remember to include a
trailing slash). $.web_root has to be '' for the moment, we don't yet
support having November anywhere else, but hang in there.
If you have compiled November you can copy the .pir files instead of the .pm
files. Make sure that the files and directories below data/ are readable
and writable by the web server.
To set up Apache to handle all request by November, you can use mod_rewrite:
RewriteRule ^/([^\.]*)$ /cgi-bin/wiki.sh [PT]
If you are using Apache for other purposes as well, you might want to do
the rewriting differently.
After this, you can direct your browser to the wiki:
http://localhost/
CONTACT
-------
Google group: [email protected]
IRC channel: #november-wiki over at irc.freenode.org