-
Notifications
You must be signed in to change notification settings - Fork 0
/
Hacking.txt
69 lines (52 loc) · 2.47 KB
/
Hacking.txt
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
==============
Wikkid Hacking
==============
Everyone wants a wiki. Wiki's remember changes. It makes sense to have
a real DVCS backed wiki.
Design Goals
------------
I believe it is better to start with the ideals. So here goes...
* It should be easy and simple to download the source and use as a
Bazaar plugin
* Have full test coverage.
* Use other libraries rather than rolling our own.
* The rendering of pages needs to be abstracted from the http serving to
allow the plugin to be used elsewhere as a library (like Launchpad).
* Use zope interfaces to define clean boundaries between the path traversal,
rendering, and store access.
Directory Outline
-----------------
* **wikkid.contrib**: Third party libraries that aren't suitably packaged
* **wikkid.filestore**: Implementations of the underlying filestore.
Currently there is the Bazaar based one, and a simplistic filestore that
just uses some in-memory dictionaries.
* **wikkid.formatter**: The different formatters used to render the text files
as HTML. Currently there are formatters for Creold, ReST, textile, markdown
and Pygments.
* **wikkid.interface**: All the zope interface definitions are in this module.
* **wikkid.model**: The model objects representing the different things that
you end up hitting through file traversal, like missing pages, directories,
binary files and of course, wiki pages.
* **wikkid.skin**: Currently only the default skin, and code around the
loading and using of skins.
* **wikkid.tests**: All the tests live here.
* **wikkid.user**: Code specific to how we handle users. Pretty simplistic
right now.
* **wikkid.view**: The views on the model objects. These are the things
that actually make the magic happen.
Getting Involved
----------------
Contributing to Wikkid is easy.
Get a local copy of the trunk branch_, make your changes, and push your branch
to Launchpad_. If you don't have a Launchpad account, follow the
instructions to `create a new user`_ and add an SSH key.
.. _branch: https://launchpad.net/+branch/wikkid
.. _Launchpad: https://launchpad.net
.. _`create a new user`: https://help.launchpad.net/YourAccount/NewAccount
Once your branch is on Launchpad, propose the branch for merging, and the
other developers will get notified automagically.
Authentication
--------------
Use the `repoze.who`_ library. This acts as a WSGI middleware and
most importantly, it is written and maintained by someone else.
.. _`repoze.who`: http://static.repoze.org/whodocs/