Mercurial > hg > decoupage
annotate README.txt @ 64:613ffeec2be5
return exceptions rather than just raise them; needed for wsgiref and who knows what other servers
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Wed, 15 Dec 2010 09:30:32 -0800 |
| parents | 9ba237db4cde |
| children | 5330cd62e179 |
| rev | line source |
|---|---|
|
0
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
1 decoupage |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
2 ========= |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
3 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
4 what is it? |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
5 ----------- |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
6 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
7 decoupage is a static file server that allows for index pages |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
8 configurable with genshi templates and .ini files. I mainly wrote it |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
9 because i was tired of using apache for serving my website and |
| 18 | 10 generating index.html files by hand. Decoupage provides views into |
| 11 the filesystem. | |
| 12 | |
|
0
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
13 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
14 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
15 how do i use it? |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
16 ---------------- |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
17 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
18 Set up a `paste <http://pythonpaste.org>`_ .ini file that specifies the |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
19 directory to serve (``decoupage.directory``) and, optionally, a |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
20 configuration file .ini file (``decoupage.configuraton``) which |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
21 specifies the labels for the files based on directory. An example of a |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
22 `paste <http://pythonpaste.org>`_ .ini file is in |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
23 ``decoupage.ini``. Note the ``[app:decoupage]`` section:: |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
24 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
25 [app:decoupage] |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
26 paste.app_factory = decoupage.factory:factory |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
27 decoupage.directory = %(here)s/example |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
28 decoupage.configuration = %(here)s/example.ini |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
29 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
30 The labels for files are in ``example.ini``, specified by sections as |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
31 directories:: |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
32 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
33 [/] |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
34 foo.txt = a file about cats |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
35 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
36 [/cats] |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
37 lilly.txt = lilly |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
38 hobbes.txt = a file about Hobbes |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
39 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
40 You can specify the entire layout from here. Alternately, you can |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
41 have an ``index.ini`` in a directory which, if present, overrides the |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
42 default configuration. Such a file is in the ``fleem`` subdirectory |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
43 of ``example``:: |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
44 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
45 /template = index.html |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
46 fleem.txt = some fleem for ya |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
47 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
48 Try it out! Install decoupage and run ``paster serve decoupage.ini`` |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
49 and point your browser to the URL it gives you. |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
50 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
51 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
52 how do i do more with decoupage? |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
53 -------------------------------- |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
54 |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
55 Since filenames can't start with a ``/`` (just try it!), the |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
56 functionality of decoupage may be extended with ``/`` commands in a |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
57 section. This is done by adding a setuptools ``entry_point`` to |
|
fa2005f769eb
adding decoupage from http://my-svn.assembla.com/svn/arbez/decoupage r355
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
58 ``[decoupage.formatters]``. See the decoupage ``setup.py`` and |
| 18 | 59 ``decoupage.formatters`` for examples. For instance, |
| 60 | |
| 61 Running `decoupage-formatters` from the command line gives the list of | |
| 62 formatters that are available (which are pluggable setuptools extension points | |
| 63 at [decoupage.formatters]). For example: /include = site.html could | |
| 64 include the site.html genshi template at the top of the body. | |
| 65 | |
| 27 | 66 Formatters: |
| 67 | |
| 28 | 68 sort: |
| 69 determines how to sort the files in a directory; | |
| 70 right now only by case-insensitive alphabetically | |
| 71 * reverse : reverse the order of the sorting | |
| 72 | |
| 18 | 73 all: |
| 74 only pass files of a certain pattern; | |
| 75 the inverse of ignore | |
| 76 calling all with no arguments means only files with descriptions | |
| 77 are used | |
| 78 | |
| 28 | 79 title: |
| 80 splits a description into a title and a description via a | |
| 81 separator in | |
| 82 the description. The template will now have an additional | |
| 83 variable, | |
| 84 'title', per file | |
| 85 Arguments: | |
| 86 * separator: what separator to use (':' by default) | |
| 87 | |
| 88 describe: | |
| 89 obtain the description from the filename | |
| 90 the file extension (if any) will be dropped and | |
| 91 spaces will be substituted for underscores | |
| 92 | |
| 93 ignore: | |
| 94 ignore files of a glob patterns. | |
| 95 These files will not be linked to in the template. | |
| 96 e.g. /ignore = .* *.pdf # don't list dotfiles and PDFs | |
| 97 | |
| 18 | 98 include: include a file at the top of the body |
| 28 | 99 css: specify CSS used (whitespace separated list) |
| 18 | 100 |
| 27 | 101 Decoupage also makes use of other special intrinsic keywords: |
| 102 | |
| 28 | 103 formatters: ordered list of formatters to apply |
| 104 | |
| 105 inherit: inherit configuration from a certain directory (instead of | |
| 106 the parent | |
| 107 | |
| 108 transform: a list of transformers for contenttransformer | |
| 36 | 109 |
| 110 | |
| 111 TODO | |
| 112 ---- | |
| 113 | |
| 114 * allow transformers to be configurable on a per-directory basis | |
| 115 * add a ``?format=rss`` query string argument | |
| 116 * add a ``?template=foo.html`` query string argument |
