A server offers direct restful read/write access to pages it owns and proxy access to pages held elsewhere in federated space. A page is owned if it was created with the server or has been cloned and edited such that it is believed to be the most authoritative copy of a page previously owned elsewhere. A server operates as a proxy to the rest of the federated wiki. In this role it reformats data and metadata providing a unified experience. It is welcome to collect behavioral statistics in order to improve this experience by anticipating permitted peer-to-peer server operations.
In summary, the server's client side exists to:
- Offer to a user a browsing experience that is independent of any specific server.
- Support writing, editing and curating of one server in a way that offers suitable influence over others.
Working with Browserify
If you do want to check in changes, install node v0.6.x
- On Linux download the source from GitHub
- On Windows get the installer from the main node.js site.
- On Mac you should be able to choose either.
Once node is installed come back to this directory and run:
npm installTo install CoffeeScript, Browserify, and all their dependencies.
You can now use:
npm startTo build the main client.
npm testTo build the test client.
These commands build client.js and test/testclient.js from client.coffee and testclient.coffee respectively. They use their entry files to require the rest of the coffee script they need from the source CS files in /lib.
We also have a cool automated talking (Mac only) Perl build script that uses
a globally installed browserify via
npm install -g browserify, it watches
for changes, builds the clients automatically, and gives a verbal report
when you have syntax errors.
All the client tests can be run by visiting /runtests.html on your server or by running the full ruby test suite. Information about the libraries we are using for testing can be found at: