OLD | NEW |
1 # CMS # | 1 # CMS # |
2 | 2 |
3 We use this CMS for [adblockplus.org](https://github.com/adblockplus/web.adblock
plus.org/) | 3 We use this CMS for [adblockplus.org](https://github.com/adblockplus/web.adblock
plus.org/) |
4 and related websites. It converts a directory with content data into static | 4 and related websites. It converts a directory with content data into static |
5 files. You are free to use it for other projects but please keep in mind that we | 5 files. You are free to use it for other projects but please keep in mind that we |
6 make no stability guarantees whatsoever and might change functionality any time. | 6 make no stability guarantees whatsoever and might change functionality any time. |
7 | 7 |
8 ## How to use ## | 8 ## How to use ## |
9 | 9 |
10 ### Running the test server ### | 10 ### Running the test server ### |
(...skipping 15 matching lines...) Expand all Loading... |
26 | 26 |
27 Run the `runserver.py` script from your content directory, e.g.: | 27 Run the `runserver.py` script from your content directory, e.g.: |
28 | 28 |
29 python ../cms/runserver.py | 29 python ../cms/runserver.py |
30 | 30 |
31 Alternatively, the content directory could also be specified as command line | 31 Alternatively, the content directory could also be specified as command line |
32 parameter of `runserver.py`. This will start a local web server on port 5000, | 32 parameter of `runserver.py`. This will start a local web server on port 5000, |
33 e.g. the page the page `pages/example.md` will be accessible under | 33 e.g. the page the page `pages/example.md` will be accessible under |
34 `http://localhost:5000/en/example`. | 34 `http://localhost:5000/en/example`. |
35 | 35 |
| 36 Sometimes it is useful to test the interaction between some dynamic URL handlers |
| 37 as defined in the sitescripts repository with an otherwise static site that has |
| 38 been generated by our CMS. To do this clone the sitescripts repository and |
| 39 configure the required URL handlers in the `multiplexer` section of your |
| 40 sitescripts.ini file. Then launch the CMS test server making sure to specify the |
| 41 `PYTHONPATH` environment variable: |
| 42 |
| 43 PYTHONPATH=/path/to/sitescripts ../cms/runserver.py |
| 44 |
| 45 _(URL handlers from sitescripts will take precedence over static files and |
| 46 pages.)_ |
| 47 |
36 Note that the test server is inefficient and shouldn't be run in production. | 48 Note that the test server is inefficient and shouldn't be run in production. |
37 There you should generate static files as explained below. | 49 There you should generate static files as explained below. |
38 | 50 |
39 ### Generating the standalone test server ### | 51 ### Generating the standalone test server ### |
40 | 52 |
41 The standalone test server is a single binary, without any further dependencies. | 53 The standalone test server is a single binary, without any further dependencies. |
42 It can be copied to another system and will no longer require Python or any of | 54 It can be copied to another system and will no longer require Python or any of |
43 its modules. In order to generate the standalone test server you need all the | 55 its modules. In order to generate the standalone test server you need all the |
44 prerequisites required to run the test server and | 56 prerequisites required to run the test server and |
45 [PyInstaller](https://github.com/pyinstaller/pyinstaller/wiki). PyInstaller can | 57 [PyInstaller](https://github.com/pyinstaller/pyinstaller/wiki). PyInstaller can |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 filter is invoked. For more information on Jinja2 filters see | 326 filter is invoked. For more information on Jinja2 filters see |
315 [official documentation](http://jinja.pocoo.org/docs/dev/api/#writing-filters). | 327 [official documentation](http://jinja.pocoo.org/docs/dev/api/#writing-filters). |
316 | 328 |
317 ### Custom functions and variables ### | 329 ### Custom functions and variables ### |
318 | 330 |
319 The `globals` directory can define custom Jinja2 globals which will be available | 331 The `globals` directory can define custom Jinja2 globals which will be available |
320 in all Jinja2 templates. Typically, this is used for custom functions. The file | 332 in all Jinja2 templates. Typically, this is used for custom functions. The file |
321 name should match the name of the function or variable to be defined, and export | 333 name should match the name of the function or variable to be defined, and export |
322 a variable with that name. E.g. `globals/myfunction.py` can define a function | 334 a variable with that name. E.g. `globals/myfunction.py` can define a function |
323 called `myfunction` that will become available to all Jinja2 templates. | 335 called `myfunction` that will become available to all Jinja2 templates. |
OLD | NEW |