public
Description: A wiki engine written in Perl 6
Homepage:
Clone URL: git://github.com/viklund/november.git
viklund (author)
Tue Jun 23 14:35:31 -0700 2009
commit  3be6afd61e505a25998b4afa6f6ec4dae945d2f0
tree    7dfca3b85f732c6a78ed62cf13dfb9d01d942ef5
parent  e03a79b2f8a220f186ae1cc9f4ea1cedf55a2192
name age message
file .gitignore Fri May 01 13:47:00 -0700 2009 [.gitignore] everything in data/cache/ [masak]
file AUTHORS Loading commit data...
file LICENSE Fri Aug 15 03:12:26 -0700 2008 tweaked README, added LICENSE [Carl Masak]
file Makefile.PL
file Makefile.in
file README Thu May 07 09:28:15 -0700 2009 [README] updated Rakudo installation instructio... [masak]
directory bin/ Tue Jun 23 14:28:05 -0700 2009 Added password hashing. Closes #13. [viklund]
directory data/ Fri Mar 20 08:32:32 -0700 2009 Added data/cache dir [viklund]
file deps.proto Sun Feb 15 06:54:04 -0800 2009 removed HTML::Template not all tests pass anym... [masak]
directory docs/ Mon Apr 13 14:38:40 -0700 2009 [docs/LOOKINTO] removed 'caching' viklund++ ha... [masak]
directory lib/
directory logotype/ Sat Aug 30 10:26:13 -0700 2008 [logotype] added the november logotype, created... [masak]
directory p5w/ Tue Mar 31 13:26:31 -0700 2009 [p5w] implemented edit conflict prevention Now... [masak]
directory skins/
directory t/
directory talks/ Tue May 19 14:24:54 -0700 2009 [talks/] added talk from Nordic Perl Workshop 2... [masak]
file test_wiki.sh.in Tue Mar 17 20:23:49 -0700 2009 Check RAKUDO_DIR for perl6.pbc [viklund]
file wiki Sun Jun 21 10:36:37 -0700 2009 BUILD-methods everywhere instead of init(). Clo... [viklund]
file wiki.sh.in Tue Mar 17 20:23:49 -0700 2009 Check RAKUDO_DIR for perl6.pbc [viklund]
README
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
(johan.viklund@gmail.com).  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: november-wiki@googlegroups.com
IRC channel: #november-wiki over at irc.freenode.org