forked from pyblosxom/pyblosxom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
WHATSNEW
491 lines (324 loc) · 14 KB
/
WHATSNEW
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
===================
What's new in 1.5
===================
.. _whatsnew:
What's new in 1.5.3 (July 2013)
===================================
1. Minor fixes
2. Updated and improved documentation
3. Several plugin fixes and updates including Tags, Pagination, and Ajax comments
4. Improved tests
What's new in 1.5.2 (December 2011)
===================================
Pertinent to users:
1. Fixed a warning that pops up when doing ``pip install pyblosxom``
2. Removed debug logging from pycategories
What's new in 1.5.1 (December 2011)
===================================
Pertinent to users:
-------------------
1. Fixed a problem with the manifest so ``python setup.py install``
works again.
2. Fixed the WHATSNEW so it shows correct version and date for
1.5 release.
What's new in 1.5 (December 2011)
=================================
Pertinent to users:
-------------------
1. Renamed the project from PyBlosxom to Pyblosxom (no more CamelCase).
2. I moved all the plugins again in the git repository. This time, instead
I moved them from ``plugins/`` to ``Pyblosxom/plugins/`` so that they're
in the ``Pyblosxom.plugins`` module.
Because of this, you no longer have to copy core plugins into your plugins
directory. Instead of copying core plugin files, refer to the plugins
in your ``config.py`` file using their full Python path in the Pyblosxom
package.
For example, the pycalendar plugin is a core plugin that comes with
Pyblosxom and is now located in ``Pyblosxom/plugins/pycalendar.py`` in
git repository. Thus the module name is ``Pyblosxom.plugins.pycalendar``.
Your ``config.py`` file would look have this::
py["load_plugins"] = [
...
"Pyblosxom.plugins.pycalendar",
...
]
To switch from having core plugins in your ``plugin_dirs`` directories to
using the ones that come with Pyblosxom, all you need to do is:
1. change the entries for plugins that are core plugins that come with
Pyblosxom that are listed in the ``load_plugins`` list in your
``config.py`` from something like this::
py["load_plugins"] = [
...
"pycalendar",
...
]
to something like this::
py["load_plugins"] = [
...
"Pyblosxom.plugins.pycalendar",
...
]
2. test to make sure your blog still works
3. remove the plugin files for plugins you changed in ``load_plugins``
from your ``plugin_dirs`` directories
To get a list of all plugins that come with Pyblosxom, see Part 2
in the Pyblosxom documentation.
If you make these changes, then the next time you upgrade PyBlosxom, core
plugins will be upgraded automatically.
Further, documentation for core plugins is at the top of the individual
plugin files, but also in the documentation. This includes a list
of the plugins available in the core.
.. only:: text
You can see the plugin documentation in docs/plugins/.
.. only:: html
You can see the plugin documentation at :ref:`part-two`.
3. Plugins added: markdown_parser, readmore
4. Plugins changed:
pages
* Fixed documentation and error messages for ``pagesdir``.
* Fixed frontpage checking. Should catch / as well as /index
now.
* Adds more examples to documentation.
tags
* Increased tag cloud range from 3 sizes to 5.
* Adds truncate support.
* Fixes problems with initialization when building tags so that
it initializes plugins allowing them to do startup things.
This fixes problems with plugins that augment entry parsers.
rst
* renamed it to rst_parser so it's clearer what it is
pycategories
* fixed category_start/category_begin behavior for root category
* fixed the first example of settings in the documentation
the rest of the plugins: pep8 fixes and documentation updates
5. Plugins removed from Pyblosxom: commentAPI
6. Fixes error handling for loading plugins. When doing
``pyblosxom-cmd test`` and a plugin fails to load, it'll now tell
you. When using the debug renderer and a plugin fails to load,
it'll now tell you.
7. Lot of work on simplifying and improving the documentation.
8. Added a ``static_yearindexes`` setting. Set it to True to generate
year indexes and False to not generate year indexes.
Pertinent to developers
-----------------------
1. I removed all the extra infrastructure for testing plugins.
Plugins that come with the core are now in the Pyblosxom package
and their tests are in ``Pyblosxom/tests/``.
2. Adds *generate* subcommand to pyblosxom-cmd. This makes it easier
to test blogs and plugins that do things with entries.
3. Renamed ``PyBlosxomWSGIApp`` class to ``PyblosxomWSGIApp``.
4. Renamed ``PyBlosxom`` class to ``Pyblosxom``.
5. Moved the project from gitorious to github. The new git repository
is at `<http://github.com/willkg/pyblosxom>`_.
6. Removed ``VERSION_DATE`` and ``VERSION_SPLIT``. They're kind of
silly and don't really help much.
I moved the version to ``Pyblosxom/_version.py``. Use it like
this::
from Pyblosxom import __version__
print __version__
I updated the documentation accordingly.
What's new in 1.5 rc3 (June 2011)
=================================
Pertinent to users:
-------------------
1. PyBlosxom shows an error page if it crashes rather than forcing
you to go figure out what happened by finding the web server logs.
This should make configuring and debugging much easier.
2. Bunch of fixes to the documentation. If you see errors or things
that are unclear, let us know.
The documentation for the comments plugin still needs to be overhauled.
3. Bunch of other bug fixes.
4. Bunch of new plugins: magicword, pages, rst, check_nonhuman, and
check_blacklist.
5. Bunch of fixes to the comments plugin, tags and pycalendar plugins.
Tags plugin gains tags cloud functionality.
Comments plugin gains comment_disable_after_x_days feature.
If you're using them, update to the latest versions.
What's new in 1.5 rc2 (August 2010)
===================================
Pertinent to users:
-------------------
1. The static renderer has a new command line.
2. New entrytitle, acronym and paginate plugins.
3. Fixed problems in yearmonths plugin. Please update to the latest
version.
Pertinent to developers:
------------------------
1. New sortlist callback
What's new in 1.5 rc1 (January 2010)
====================================
Pertinent to users:
-------------------
1. Renamed ``pyblcmd`` to ``pyblosxom-cmd``.
2. PyBlosxom now requires Python 2.3. We've removed the _logging
module that provided logging facilities to pre-Python 2.3 versions.
3. You can now install PyBlosxom on your system with pip or
easy_install.
4. The ``pyblosxom.cgi`` file has changed significantly---if you're
using it you should grab the new one that comes with this
distribution. We've gutted the ``pyblosxom.cgi`` script and turned
it into a stub. This will reduce the need for you to update your
``pyblosxom.cgi`` in the future when you upgrade PyBlosxom.
5. pyblosxom-cmd now has an option to create the blog directory
structure and skeleton files for you. This makes it much faster to
get a new blog up and running. Syntax is this::
pyblosxom-cmd create <path>
Some examples::
pyblosxom-cmd create .
pyblosxom-cmd create /home/joe/blog
6. Template variable syntax ``$id_escaped`` and ``$id_urlencoded`` has
been removed. Use ``$escape(id)`` and ``$urlencode(id)`` instead.
7. Switched to using Python's optparse module instead of our
home-brewed one. There are some changes in command line syntax.
Do ``pyblosxom-cmd --help`` for command line help.
8. Changed around ``INSTALL``, ``README`` and added ``UPGRADE``.
9. Removed ``blog_title_with_path`` variable. If you were using this
variable in your templates, replace it. i.e. instead of::
$blog_title_with_path
do::
$blog_title : $pi_bl
10. Re-worked PyBlosxom so that it uses the same encoding throughout.
This means you need to use the same encoding for all your data
files and that encoding has to match the ``blog_encoding``
property in ``config.py``. This defaults to UTF-8.
11. Re-worked documentation to use Sphinx. The end result is that the
"source" for the docs is in ``docs/source/``, there's an HTML
version that's built by Sphinx in ``docs/build/html/``, and it's a
lot easier to read and use now. Thank you to the Sphinx team!
12. Reworked the command line for static rendering. It now works like
this::
pyblosxom-cmd staticrender \
[--config <path/to/config/file>] \
[--incremenal]
If the ``config.py`` file is in your ``PYTHONPATH``, then you can
skip the ``--config <path/to/config/file>`` stuff.
13. Removed portalocker code. This will cause any plugins using the
locking code to fail. The only one I saw like this was the
logstats plugin which had a lot of other problems.
14. Added a ``--silent`` flag to pyblcmd so that it quells all stdout.
This is useful for cron jobs.
15. Added ``truncate_date`` config variable. When set to True, it
causes date-based archives to be truncated to ``num_entries`` entries.
Defaults to False.
Example::
py["truncate_date"] = True
16. Added ``truncate_category`` config variable. When set to True, it
causes category-based archives to be truncated to ``num_entries``
entries. Defaults to True.
Example::
py["truncate_category"] = True
17. Added ``truncate_frontpage`` config variable. When set to True, it
causes the front page ``num_entries`` entries. Defaults to True.
Example::
py["truncate_frontpage"] = True
18. Plugins are included in the PyBlosxom source tarball again.
19. Templates in a flavourdir directory no longer require the flavour
as the file extension. e.g. This will work fine::
blog/
|- flavourdir/
|- html.flav/
|- content_type
|- head
|- story
|- ...
20. We moved the main PyBlosxom site to
http://pyblosxom.github.com/ . There's a "powered by
pyblosxom" image at
http://pyblosxom.github.com/images/pb_pyblosxom.gif
You should adjust your templates accordingly.
21. The following plugins have been added to the pyblosxom release
tarball:
* ``archives/``
* pyarchives
* yeararchives (was wbgarchives)
* ``categories/``
* pycategories
* ``comments/plugins/``
* akismetcomments
* comments
* no_old_comments
* trackback
* xmlrpc_pingback
* ``date/``
* pycalendar
* firstdaydiv
* pyfilenamemtime
* w3cdate
* ``display/``
* paginate (was wbgpager)
* entrytitle
* ``headers/``
* conditionalhttp
* ``tags/``
* tags (was wbgtags)
* ``text/``
* acronyms
If you have older versions of these plugins, better to switch to
the new versions.
Pertinent to developers:
------------------------
1. ``Pyblosxom.tools.VariableDict`` is no more.
2. If you have template variables that end in ``_urlencoded`` and
``_escaped``, it's better to instead call
``tools.escape_text(...)`` and ``tools.urlencode_text(...)`` or use
filter functions ``$escape(var)`` and ``$urlencode(var)``.
3. The blosxom renderer has undergone a bunch of fixes. If you
depended on functions that started with ``_``, then you'll probably
need to rework your plugin. These functions were not intended for
outside use.
Additionally, we fixed the bug where the renderer was adding the
contents of the config and data dicts to each entry when it was
rendered as a story. Now the items in the entrylist are untouched
during rendering.
4. Added a lot of tests and rewrote everything to ditch the nose
requirement. Tests can be run with::
python setup.py test
5. Added a lot of documentation.
6. Removed the portalocker code so PyBlosxom no longer provides a way
to lock/unlock text files.
7. Changed a lot of camel-case function/method names to PEP-8
versions. Camel case names are deprecated and will be removed in a
future version:
``tools.py``:
* Walk -> walk
* getLogger -> get_logger
* generateRandStr -> generate_rand_str
``pyblosxom/Pyblosxom.py``:
* PyBlosxom: getRequest -> get_request
* PyBlosxom: getResponse -> get_response
* PyBlosxom: runCallback -> run_callback
* PyBlosxom: runRenderOne -> run_render_one
* PyBlosxom: runStaticRenderer removed
* Request: setResponse -> set_response
* Request: getResponse -> get_response
* Request: getForm -> get_form
* Request: getConfiguration -> get_configuration
* Request: getHttp -> get_http
* Request: getData -> get_data
* Request: addHttp -> add_http
* Request: addData -> add_data
* Request: addConfiguration -> add_configuration
* Response: setStatus -> set_status
* Response: addHeader -> add_header
* Response: getHeaders -> get_headers
* Response: sendBody -> send_body
* Response: sendHeaders -> send_headers
``pyblosxom/renderers/base.py``:
* RendererBase: addHeader -> add_header
* RendererBase: setContent -> set_content
* RendererBase: needsContentType -> needs_content_type
* RendererBase: showHeaders -> show_headers
``pyblosxom/renderers/blosxom.py``:
* BlosxomRenderer: renderContent -> render_content
* BlosxomRenderer: renderTemplate -> render_template
* BlosxomRenderer: getContent -> get_content
* BlosxomRenderer: outputTemplate -> output_template
8. Changed ``add_header`` in the ``Response`` class to take a key and
value instead of a list of strings that it has to use * magic and
then munge through.
9. Added a commandline callback for allowing plugins to add to the
command line.
10. Added a truncatelist callback allowing plugins to augment the
truncate (``num_entries``) behavior.
11. Added a sortlist callback allowing plugins to augment entrylist sorting
behavior.