Giter Site home page Giter Site logo

november's Introduction

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 parrot site:

 <http://www.parrotcode.org/>

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

november's People

Contributors

ilyabelikin avatar viklund avatar szabgab avatar omega avatar perlpilot avatar

Stargazers

Angus H. avatar  avatar

Watchers

 avatar James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.