Source

WebHelpers / CHANGELOG

bbangert b0622d7 
Mike Orr 1b643ff 
bbangert b0622d7 
Mike Orr 1b643ff 

slug...@gmail.co… 627e12c 
Mike Orr beb7fc7 




Mike Orr 2f1028d 



slug...@gmail.co… 6c46381 
Mike Orr ad8d609 









slug...@gmail.co… 6c46381 


slug...@gmail.co… bb3bc55 






Mike Orr 642d765 
slug...@gmail.co… c217ddd 
Mike Orr 6d1e070 





slug...@gmail.co… 66be514 
Mike Orr 2bd0a9e 



Mike Orr 1b7bf88 
slug...@gmail.co… 4847823 




slug...@gmail.co… 880eb1d 
Mike Orr 1b7bf88 
slug...@gmail.co… af944eb 

slug...@gmail.co… 4847823 
slug...@gmail.co… 05c803d 
slug...@gmail.co… af944eb 
slug...@gmail.co… 5fb7e13 

slug...@gmail.co… c900f35 



slug...@gmail.co… 5fb7e13 

slug...@gmail.co… a600040 

slug...@gmail.co… 86464a0 

slug...@gmail.co… 5fb7e13 
slug...@gmail.co… 47f7a81 




slug...@gmail.co… 4847823 















Mike Orr 7b23469 



Mike Orr 5883bb7 

Mike Orr 7b23469 
slug...@gmail.co… 627e12c 


slug...@gmail.co… f130443 




Mike Orr 826e84d 


slug...@gmail.co… d2b1a82 
slug...@gmail.co… 1206147 
slug...@gmail.co… 7fb6cc4 
slug...@gmail.co… 627e12c 
slug...@gmail.co… 7fb6cc4 


slug...@gmail.co… 1d71c23 



slug...@gmail.co… 1206147 


Mike Orr 5832a28 

slug...@gmail.co… be4f7ac 



Mike Orr 70992cc 




slug...@gmail.co… 17deeba 

slug...@gmail.co… 92d547c 
slug...@gmail.co… f130443 
slug...@gmail.co… 92d547c 




slug...@gmail.co… 17deeba 
Mike Orr f1a5b0c 

Mike Orr dcae73e 
Mike Orr f1a5b0c 


slug...@gmail.co… 9036562 



Mike Orr 27641bb 
slug...@gmail.co… 9036562 
Mike Orr f1a5b0c 


Mike Orr 7e07e33 
slug...@gmail.co… cb3321e 



Mike Orr 5832a28 
slug...@gmail.co… f9fdac0 
Mike Orr 5832a28 

slug...@gmail.co… f9fdac0 
Mike Orr 7e07e33 

Mike Orr 86eb17c 
slug...@gmail.co… 0632346 
Mike Orr 683c80e 




slug...@gmail.co… 0632346 
slug...@gmail.co… 9bd7911 
slug...@gmail.co… 0632346 
slug...@gmail.co… 9bd7911 
slug...@gmail.co… 0632346 
Mike Orr 740b804 

slug...@gmail.co… ccd9dc3 
slug...@gmail.co… 0632346 
Mike Orr 157355f 

Mike Orr b38af26 
slug...@gmail.co… 0632346 
Mike Orr 1568f3b 
slug...@gmail.co… 0632346 
slug...@gmail.co… 1ebadbe 
slug...@gmail.co… 0632346 
slug...@gmail.co… bfc141e 
Mike Orr 8627f9e 


Mike Orr dd4adb8 
slug...@gmail.co… 0632346 
Mike Orr dd4adb8 
slug...@gmail.co… 0632346 
Mike Orr c207cd1 
slug...@gmail.co… 0632346 
slug...@gmail.co… 52d3215 

Mike Orr 272194b 


slug...@gmail.co… 0632346 
Mike Orr e9a6ad6 


slug...@gmail.co… 0632346 
Mike Orr 33fe693 
slug...@gmail.co… 0632346 
Mike Orr 33fe693 
slug...@gmail.co… cff5a69 

slug...@gmail.co… 0632346 

slug...@gmail.co… cff5a69 

slug...@gmail.co… 0632346 
slug...@gmail.co… cff5a69 


slug...@gmail.co… 0632346 
Mike Orr 2711440 
slug...@gmail.co… 0632346 
slug...@gmail.co… d58f6c7 



slug...@gmail.co… 6e7d694 

Mike Orr 2711440 



slug...@gmail.co… 0632346 
Mike Orr 1030207 
slug...@gmail.co… 0632346 
Mike Orr 1d9bc0b 


slug...@gmail.co… d1f54ac 

Mike Orr 1bbbf7a 
Mike Orr 1d9bc0b 

slug...@gmail.co… 0632346 
slug...@gmail.co… e2ca41f 
slug...@gmail.co… 0632346 
slug...@gmail.co… d0dbee7 











slug...@gmail.co… 0632346 
Mike Orr cebd83f 
slug...@gmail.co… 0632346 
Mike Orr cebd83f 
slug...@gmail.co… 0632346 
Mike Orr cd1db20 
slug...@gmail.co… 0632346 
Mike Orr cd1db20 
slug...@gmail.co… 0632346 
Mike Orr d5f47f3 
slug...@gmail.co… 0632346 
Mike Orr d5f47f3 
Mike Orr 1b643ff 







slug...@gmail.co… dc0dc96 
slug...@gmail.co… 0632346 
slug...@gmail.co… f130443 
slug...@gmail.co… 0632346 
Mike Orr 0204413 
slug...@gmail.co… 0632346 
Mike Orr 0204413 
Mike Orr 7208d5b 
slug...@gmail.co… f130443 
Mike Orr 6ad1620 
slug...@gmail.co… 0632346 
Mike Orr 6c30ee2 
slug...@gmail.co… 0632346 
Mike Orr 6c30ee2 

slug...@gmail.co… 0632346 
Mike Orr a19f8a9 
slug...@gmail.co… 0632346 
Mike Orr e31480e 
slug...@gmail.co… a3bca3f 
Mike Orr a19f8a9 
slug...@gmail.co… 7a1cc6f 

slug...@gmail.co… 0632346 
slug...@gmail.co… 5df5c4a 
slug...@gmail.co… 0632346 


Mike Orr 0204413 
slug...@gmail.co… 0632346 
Mike Orr 6ad1620 
Mike Orr 0204413 




slug...@gmail.co… f27cbbc 
slug...@gmail.co… 0632346 
Mike Orr 176cacb 
slug...@gmail.co… 0632346 
Mike Orr 176cacb 
Mike Orr a634aee 



Mike Orr ae2329f 

slug...@gmail.co… a141ba5 


slug...@gmail.co… 0632346 


slug...@gmail.co… 503bf55 
slug...@gmail.co… 0632346 
slug...@gmail.co… 503bf55 
slug...@gmail.co… 0632346 
slug...@gmail.co… 503bf55 




Mike Orr 022f611 
Mike Orr 1b643ff 
Mike Orr 5a860a8 




Mike Orr 9f6454e 
slug...@gmail.co… 0632346 
Mike Orr 9f6454e 

slug...@gmail.co… 0632346 
Mike Orr 34e1895 
Mike Orr 67e94c0 

Mike Orr 1b643ff 
Mike Orr ecc9572 
Mike Orr 67e94c0 



Mike Orr c1f085f 

Mike Orr 1b643ff 
Mike Orr 0558986 
Mike Orr a5c7b18 
slug...@gmail.co… 0632346 
Mike Orr c1f085f 

slug...@gmail.co… 0632346 
Mike Orr 8228561 
slug...@gmail.co… 0632346 
Mike Orr 8228561 


Mike Orr 3a7d428 
Mike Orr 8228561 
slug...@gmail.co… 0632346 
Mike Orr a5c7b18 
slug...@gmail.co… 0632346 
Mike Orr a5c7b18 

slug...@gmail.co… 0632346 
Mike Orr a5c7b18 
slug...@gmail.co… 0632346 
Mike Orr a5c7b18 

Mike Orr aafd46b 
slug...@gmail.co… 0632346 
Mike Orr e87acb8 
slug...@gmail.co… 0632346 
Mike Orr e87acb8 
slug...@gmail.co… 0632346 
Mike Orr e87acb8 
Mike Orr fe0e9ba 

Mike Orr 1b643ff 
Ben Bangert afb8344 


Mike Orr bccfea2 
slug...@gmail.co… 0632346 
Mike Orr f95664d 
Mike Orr bccfea2 

slug...@gmail.co… 0632346 
Mike Orr e094aaf 
Mike Orr dfcfc05 
Mike Orr 09f7eac 

Ben Bangert afb8344 
Ben Bangert 557e378 
Mike Orr 1b643ff 
Mike Orr c135114 




slug...@gmail.co… 0632346 












Ben Bangert 70e4321 


Mike Orr 1b643ff 

slug...@gmail.co… 0632346 
Mike Orr 35f1d65 


slug...@gmail.co… 0632346 
Mike Orr 35f1d65 
Ben Bangert 0cc1498 
Mike Orr 1b643ff 
Ben Bangert 0cc1498 

Ben Bangert 597a541 
Mike Orr 1b643ff 
Ben Bangert ebf5654 

Ben Bangert 6885c2c 


bbangert df991e2 
Mike Orr 1b643ff 
bbangert 3b0d0a6 


bbangert a840250 
pjenvey e931c7b 
pjenvey f182b3a 
bbangert 5e616b7 
bbangert 40dc507 
Mike Orr 1b643ff 
pjenvey 66f18ee 


pjenvey b95de6a 
pjenvey ae2dc56 
pjenvey 4034e89 
pjenvey 2ebcd0d 

Ben Bangert 47498c4 

ianb 921bb30 



pjenvey ec199b1 
bbangert 5510ed0 
Mike Orr 1b643ff 
bbangert ed9f81f 

Ben Bangert 47498c4 
slug...@gmail.co… a3bca3f 
Ben Bangert 47498c4 
bbangert 5acbe6a 

bbangert 278f444 

bbangert 5acbe6a 

pjenvey 18715cd 
Ben Bangert 47498c4 

pjenvey 18715cd 
pjenvey a268e9b 
pjenvey 12822da 
pjenvey ee6aa1d 
pjenvey 6fc5253 
pjenvey b225d70 
pjenvey 8dcc366 
pjenvey aa3fa38 
pjenvey 1010426 
pjenvey 7317e22 
slug...@gmail.co… a3bca3f 
bbangert 995fb14 
bbangert 5510ed0 
bbangert 5c532ad 
bbangert 30b03a9 

bbangert ea59433 
bbangert b51613d 
bbangert 02f0854 
bbangert 4eb8f4c 
bbangert 5510ed0 
pjenvey c366f19 

bbangert 80d2e9b 
bbangert e2675fd 
Mike Orr 1b643ff 
bbangert c5557db 

pjenvey 14886fd 

pjenvey 7fc6dcb 

bbangert b2d3ef1 
bbangert b5ef30b 
Mike Orr 1b643ff 
bbangert 192fffb 
pjenvey 70a9d6e 

bbangert 3d873bb 
bbangert 0c6e648 
bbangert 54da026 
bbangert 9f27e81 
bbangert 61d2880 

pjenvey b8fa3c0 

bbangert a0502dc 

pjenvey b744496 
pjenvey b581457 

bbangert 00d5f52 

Mike Orr 1b643ff 
bbangert 340f02d 

bbangert b1eca65 


bbangert 0272697 
bbangert 81811ef 

bbangert 39f6879 


bbangert ae35800 
bbangert 7299f3e 


bbangert f45a7bc 

Mike Orr 1b643ff 
bbangert 9f68620 


pjenvey 23ce89c 

  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
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
WebHelpers ChangeLog
====================

tip (development version)
-------------------------

No changes yet.

1.1 (2010-08-09)
----------------

* webhelpers.paginate:

  - Remove stray Routes import. (Other conditional Routes imports remain for
    backward compatibility; see module docstring.)

* webhelpers.pylonslib.minify:

  - Remove _jsmin module due to licensing issues. Details are in
    webhelpers/pylonslib/_jsmin.py .  You can install the "jsmin" package in
    PyPI (which has the same license), and the helper will use it. If that
    package is installed, the helper will use it.  Otherwise the helper will
    emit a warning and leave the Javascript unchanged. CSS minification is not
    affected.


1.0 (2010-06-01)
-----------------

* webhelpers.html.tools:

 - Bugfix re URLs surrounded by [].  Bug #32.

1.0rc1 (2010-05-24)
-------------------

* webhelpers.html.tags:

 - Change 'id' argument to all form field helpers. The default value is now
   NotGiven rather than None. NotGiven tells WebHelpers to create an ID
   attribute based on the field name (formerly None did this). None suppresses
   the ID attribute entirely (formerly "" did this, and still does for backward
   compatibility).  This behavior of None is consistent with other parts of
   WebHelpers.

* webhelpers.misc:

 - New ``format_exception`` helper to display an exception as Python would but
   without the traceback.

1.0b7 (2010-05-16)
------------------

* webhelpers.containers:

  - Bugfix in ``canada_provinces``, reported by rpetrello.

* webhelpers.html.grid / webhelpers.pylonslib.grid:

  - Updates by Ergo, mainly styling and CSS classes.
  - Rename classes: ObjectGrid, PylonsGrid, PylonsObjectGrid.

* webhelpers.paginate:

 - New URL generation algorithm for ``Page.pager()``. You can pass a callback
   function to the constructor, or it will fall back to ``pylons.url.current``
   or ``routes.url_for`` (in that order). It will raise ``NotImplementedError`` if
   none of these are available.
 - Don't allow extra positional args in constructor. The implementation does
   nothing with them, so it shouldn't allow them.
 - Import ``sqlalchemy.orm`` as well as ``sqlalchemy``. User Sybiam reports an
   error otherwise.
 - Add code to work with other iterable containers, contributed by Marcin
   Kuzminski.

* webhelpers.pylonslib.flash:

  - New argument ``ignore_duplicate`` to prevent adding the same message
    multiple times.


1.0b6 (2010-04-23)
------------------

* webhelpers.containers / webhelpers.misc:

  - ``NotGiven`` moved to webhelpers.misc.

* webhelpers.html.grid / webhelpers.pylonslib.grid:

  - Updates by Ergo, including SQLAlchemy object grid classes.

* webhelpers.misc:

  - New function ``deprecate``.

* webhelpers.number:

  - New functions ``format_data_size``, ``format_byte_size``, and
    ``format_bit_size`` for displaying numbers in SI units
    ("1.2 kilobytes", "1.2 kB", "1.0 KiB"). Contributed by
    Wojciech Malinowski.

1.0b5 (2010-03-18)
------------------

* webhelpers.html.converters:

  - Re-add import of ``render`` and ``sanitize`` from
    ``webhelpers.html.render``.  That module is not public.

* webhelpers.misc:

  - New exception ``OverwriteError``.
  - Add ``exclude`` argument to ``subclasses_only``.

* webhelpers.text:

  - Disable ``convert_misc_characters``: it fails its doctests and there's
    no consensus on what it should do.

* "number_to_human_size.py" is in unfinished directory. This is an old rails
  helper from WebHelpers 0.6.4. It's here pending a more comprehensive helper;
  see http://bitbucket.org/bbangert/webhelpers/issue/2/reinstate-number_to_human_size

1.0b4 (2010-01-24)
------------------

* Delete ``webhelpers.string24``.  WebHelpers no longer supports Python 2.3.

* webhelpers.feedgenerator:

  - Add a basic ``Geometry`` class for the Geo helpers.

* webhelpers.html.grid_demo:

  - Demonstrates ``webhelpers.html.grid``. Run as 
    "python -m webhelpers.html.grid_demo OUTPUT_DIRECTORY".

* webhelpers.html.converters:

  - Don't import ``render`` and ``sanitize`` to converters module.
    (Reversed in 1.0b5.)

* webhelpers.html.secure_form:

  - Move module to ``webhelpers.pylonslib.secure_form`` because it depends
    on ``pylons.session``.

* webhelpers.misc:

  - New helper ``flatten`` to interpolate embedded lists and tuples.
  - New helper ``subclasses_only`` to extract the subclasses of an abstract
    base class from a module or iterable.

* webhelpers.pylonslib.flash:

  - Moved to its own module.
  - Changed ``Flash.__html__()`` implementation.
  - Categories may be specified in constructor. Patch by Eli Collins.

* webhelpers.pylonslib.grid:

  - Bugfixes.

* webhelpers.pylonslib.minify:

  - Bugfix.

* webhelpers.util:

  - Bugfix: ``parse_qs`` moved from ``cgi`` to ``urlparse`` in Python 2.6.
    Patch by Mike Verdone.

1.0b3 (2009-12-29)
------------------
* webhelpers.feedgenerator:

  - Allow either lat-lon and lon-lat formats in geometry data. The default is
    lat-lon. For lon-lat, set ``GeoFeedMixin.is_input_latitude_first`` to 
    false. (You can set in a subclass or instance before writing the output.)
    lat-lon is the most common format but GeoDjango and some other libraries
    use lon-lat. The XML output is always lat-lon per the GeoRSS spec.

* webhelpers.html.grid:

  - New module to create an HTML table from a list of records.

* webhelpers.html.tags:

  - New helpers ``Doctype`` (class) and ``xml_declaration``.

  - Python 2.5 compatibility fix by Yuen Ho Wong. (#20)

* webhelpers.html.tools:

  - New helper ``js_obfuscate`` implements the old rails helpers.

* webhelpers.util:

  - New helper ``update_params`` to update query parameters in a URL.

1.0b2 (2009-12-21)
------------------
* webhelpers.constants:

  - Fix spelling of Massachusetts.

* webhelpers.feedgenerator:

  - Sync with Django rev 11910. This adds GeoRSS and makes the API more
    extensible, as well as fixing a few bugs.
    (Re-added the Atom1 'published' property.)
    (The 'generator' and 'source' properties were lost, but they weren't
    working correctly anyway.)

    GeoRSS usage: use the Geo\* classes and add  ``geometry=(lat, lon)`` to
    each news item. Other shapes and a (not yet implemented) Geometry class are
    allowed; see the source.

* webhelpers.html:

  - New ``HTML.cdata()`` method for producing "<!![CDATA[ ... ]]>" sections.
  - The basic tag builders (``HTML.a()`` and ``HTML.tag("a")``) now have a
    ``_nl`` arg which, if true, inserts a newline between content elements
    and at the end of the tag for readability.  Example::

        HTML.a("A", "B", href="/")  =>   '<a href="/">AB</a>'
        HTML.a("A", "B", href="/", _nl=True)   =>   '<a href="/">\nA\nB\n</a>\n'

    This does not affect HTML attributes nor the higher-level tag helpers.
    The exact spacing is subject to change.  The tag building code has been
    refactored to accommodate this.

* webhelpers.html.tags:

  - ``form()`` puts its hidden "_method" field in a '<div style="display:none">'
    to conform to XHTML syntax. The style prevents the div from being displayed
    or affecting the layout. A new arg ``hidden_fields`` may be a dict or
    iterable of additional hidden fields, which will be added to the div.
  - Set magic ID attribute in ``hidden`` helper to match behavior of the other
    tag helpers.
  - ``image()`` can now calculate the width and height automatically
    from an image file, using either the PIL algorithm or the pure Python
    algorithm in ``webhelpers.media``. It also logs the dimensions to the
    debug log for troubleshooting.

* webhelpers.html.tools:

  - Reimplement ``highlight()`` using the HTML builder. New arguments add
    flexibility.  Deprecate the ``highlighter`` argument, which creates tags
    via string interpolation.
  - Fixed ``auto_link()`` to parse slash characters in query string.
    Patch by hanula; Bitbucket issue #10.
  - Fix HTML overescaping and underescaping in auto_link().  Patch by Marius
    Gedminas.  A parsing bug remains: 
    http://pylonshq.com/project/pylonshq/ticket/657

* webhelpers.markdown / webhelpers.html.converters:

  - ``webhelpers.markdown`` will not be upgraded to the version 2 series but
    will remain at 1.7. Users who want the latest bugfixes and extensions
    should download the full Markdown package or the alternative Markdown2
    from PyPI.
  - The ``markdown()`` helper in
    ``webhelpers.html.converters`` now has support for external Markdown
    implementations. You can pass a specific module via the ``markdown`` 
    argument, otherwise it will attempt to import ``markdown`` or fall back
    to ``webhelpers.markdown``. 
  - To see which version is autoloaded,  
    call ``_get_markdown_module()`` and inspect the ``.__file__``, 
    ``.version``, and/or ``.version_info`` attributes of the return value.

* webhelpers.media:

  - Bugfix in ``get_dimensions_pil``.

* webhelpers.paginate:

  - Change for SQLAlchemy 0.6. (bug #11)

* webhelpers.pylonslib:

  - Fix HTML overescaping.  Patch by Marius Gedminas.


1.0b1 (2009-11-20)
------------------
* Delete deprecated subpackage: rails.
  These are replaced by new helpers in date, html, misc, number, text.
* Delete other deprecated subpackages: commands, hinclude, htmlgen, pagination.
  Pagination is replaced by paginate.
* webhelpers.constants:

  - ``uk_counties`` returns tuples rather than strings.

* webhelpers.feedgenerator:

  - ``rfc3339_date`` now accepts date objects without crashing.
  - Add 'generator' and 'source' properties to RSS2 feeds. Patch by
    Vince Spicer. (Removed in 1.0b2 due to bugs.)
  - Add 'published' property to Atom1 feeds.

* webhelpers.html.converters:

  - New helper ``render()`` formats HTML to text.
  - New helper ``sanitize()`` strips HTML tags from user input.

* webhelprs.html.tags:

  - New helper ``css_classes()`` to add classes to a tag programmatically.
  - Fix bug in tag helpers when passing ``id_`` argument (although ``id`` is
    recommended instead).
  - Add OptionGroup class and optgroup support to select().  Patch by
    Alexandre Bourget.

* webhelpers.html.tools:

- New helper ``strip_tags()`` deletes HTML tags in a string.

* webhelpers.paginate:

  - Allow all versions of SQLAlchemy > 0.3.
  - convert "_range" and "_pagelink" function to Page class method so that they
    can be overridden
  - pager "onclick" argument use template string value. So, javascript code can
    use "partial_url" or "page" value or any. Backward compatibility is
    considered.
  - Add presliced list option to avoid slicing when list is already.

* webhelpers.pylonslib:

  - is now a package.
  - The ``Flash`` class now accepts severity categories, thanks to Wichert
    Akkerman.  The docstring shows how to set up auto-fading messages using
    Javascript a la Mac OSX's "Growl" feature.  This is backward compatible 
    although you should delete existing sessions when upgrading from 0.6.x.
  - ``webhelpers.pylonslib.minify`` contains enhanced versions of
    ``javascript_link`` and ``stylesheet_link`` to minify (shrink) files for
    more efficient transmission.  (EXPERIMENTAL: tests fail in
    unfinished/disabled_test_pylonslib_minify.py; see
    http://pylonshq.com/project/pylonshq/ticket/466 .)

 * webhelpers.text:

  - Port several helpers from Ruby's "stringex" package.

    + ``urlify()`` converts any string to a URL-friendly equivalent.  
    + ``remove_formatting()``.
    + If the ``unidecode`` package is installed, these two helpers will also
      transliterate non-ASCII characters to their closest pronounciation
      equvivalent in ASCII.  
    + Four other helpers reduce HTML entities or whitespace.

0.6.4 (12/2/2008)
-----------------
* text(), password(), checkbox(), textarea(), and select() have a
  magic 'id attribute. If not specified it defaults to the name. To suppress
  the ID entirely, pass ``id=""``.  This is to help set the ID for title().
  radio() doesn't do this because it generates the ID another way.  hidden()
  doesn't because hidden fields aren't used with labels.
* Bugfixes in mt.select(): 

  - selected values not being passed as list.
  - allow currently-selected value to be a long.

* Delete experimental module webhelpers.html.form_layout.

0.6.3 (10/7/2008)
-----------------
* Bugfix in distribute() found by Randy Syring.
* New helpers title() and required_legend() in webhelpers.html.tags.
* New directory webhelpers/public for static files
* Suggested stylesheet webhelpers/public/stylesheets/webhelpers.css
  (You'll have to manually add this to your application.)

0.6.2 (10/2/2008)
-----------------
* nl2br() and format-paragraphs were not literal-safe.
* webhelpers.converters:

  - New helper transpose() to turn a 2D list sideways (making the rows columns
    and the columns rows).

* webhelpers.markdown:

  - Upgrade to Markdown 1.7.
  - Add a warning about escaping untrusted HTML to 
    webhelpers.html.converters.markdown() docstring.
  - Did not include Markdown's extensions due to relative import issues.
    Use the full Markdown package if you want footnotes or RSS.

* webhelpers.media:

  - New module for muiltimedia helpers.  Initial functions determine the size
    of an image and choose a scaling factor.

* webhelpers.html.tags:

  - Options tuple contains Option objects for select/checkbox/radio groups.
    select() now uses this automatically.
  - checkbox() and radio() now have a ``label`` argument.

* webhelpers.number:

  - Population standard deviation contributed by Lorenzo Catucci.

* webhelpers.html.form_layout: form field layout (PRELIMINARY, UNSTABLE).

0.6.1 (7/31/2008)
-----------------
* Include a faster version of cgi.escape for use by the literal object.
* Fixed bug in SimplerXMLGenerator that the FeedGenerator uses, so that
  it doesn't use a {} arg.
* New helpers:

  - nl2br() and format_paragraphs() in webhelpers.html.converters.
  - ul() and ol() in webhelpers.html.tags.
  - series() in webhelpers.text.

* HTML.tag() is a synonym for make_tag(), both in webhelpers.html.builder.
* Change default form method to "post" (rather than "POST") to conform to XHTML.
* Add DeprecationWarning for webhelpers.rails package,
  webhelpers.rails.url_for(), and webhelpers.pagination.

0.6 (07/08/2008)
----------------
* Add webhelpers.html.builder to generate HTML tags with smart escaping,
  along with a literal type to mark preformatted strings.
* Deprecate webhelpers.rails, including its Javascript libraries (Prototype
  and Scriptaculous).  Wrap all rails helpers in a literal.
* Many new modules:

  - constants - countries, states, and provinces.
  - containers - high-level collections, including flash messages.
  - date - date/time (rails replacement).
  - html.converters - text-to-HTML (rails replacement).
  - html.tags - HTML tags (rails replacement).
  - html.tools - larger HTML chunks (rails replacement).
  - mail - sending email.
  - misc -  helpers that are neither text, numeric, container, nor date.
  - number - numeric helpers and number formatters.
  - paginate - successor to deprecated pagination module.
  - text - non-HTML text formatting (rails replacement).

* Removed dependency on simplejson and normalized quotes. Patch by Elisha 
  Cook.

COMPATIBILITY CHANGES IN 0.6 DEV VERSION
----------------------------------------
* image(), javascript_link(), stylesheet_link(), and auto_discovery_link()
  in webhelpers.html.tags do not add prefixes or suffixes to the URL args
  anymore; they output the exact URL given. Same for button_to() in
  webhelpers.html.tools.
* webhelpers.html.tags.javascript_path was deleted.

0.3.4 (03/18/08)
----------------
* Fixed missing javascripts dir.

0.3.3 (02/27/08)
----------------
* Fixed strip_unders so that it won't explode during iteration when the size
  changes.
* Updated feedgenerator with the latest changes from Django's version (only
  a few additional attributes).

0.3.2 (09/05/07)
----------------
* Added capability to pass pagination a SA 0.4 Session object which will be 
  used for queries. This allows compatibility with Session.mapper'd objects
  and normal SA 0.4 mapper relations.
* Updated SQLAlchemy ORM pagination for SA 0.4 Session.mapper objects.
* Updated Scriptaculous to 1.7.1 beta 3 (1.7.0 is incompatible with Prototype
  1.5.1). Thanks errcw. Fixes #288.

0.3.1 (07/14/07)
----------------
* Added the secure_form_tag helper module, for generating form tags
  including client-specific authorization tokens for preventing CSRF
  attacks. Original patch by David Turner. Fixes #157.
* current_url now accepts arguments to pass along to url_for. Fixes #251.
* Updated prototype to 1.5.1.1.
* Added image support to button_to. Patch by Alex Conrad. Fixes #184.
* Fix radio_button and submit_to_remote not handling unicode values.
  Fixes #235.
* Added support for the defer attribute to javascript_include_tag. Suggested
  by s0undt3ch. Fixes #214.
* Added a distutils command compress_resources, which can combine CSS
  and Javascript files, and compress Javascript via ShrinkSafe.  Add
  "command_packages=webhelpers.commands" in [global] in setup.cfg to
  enable this command for your package.

0.3 (03/18/2007)
----------------
* WARNING: paginate now takes arguments intended for the collection object as
  query_args. This could affect backwards compatibility. This fixes a common
  issue that non-keyword arguments passed into paginate get eaten by
  paginate's keyword arguments instead of being in \*args to go on to the
  collection.
* Added environ checking with Routes so that page will be automatically pulled
  out of the query string, or from the Routes match dict if available.
* Added ability for paginate to check for objects that had SQLAlchemy's 
  assign_mapper applied to them.
* Added better range checking to paginator to require a positive value that is
  less than the total amount of pages available for a page.
* WARNING: Due to a typo, the Text helper highlight function no longer
  highlights text with the CSS class name 'hilight' by default: it now uses
  the CSS class name 'highlight' instead. The function's 'hilighter' keyword
  argument has also been deprecated, use 'highlighter' instead.
* Fixed the broken markdown function.
* Upgraded markdown from 1.5 to 1.6a.
* Sync'd Prototype helper to 6057.
* Sync'd Urls helper to 6070.
* Sync'd Text helper to 6096.
* Sync'd Date helper to 6080.
* Sync'd Tags helper to 5857.
* Sync'd Asset tag helper to 6057.
* Sync'd Rails Number helper to 6045.
* Updated Ajax commands to internally use ``with_`` to avoid name conflicts with
  Python 2.5 and beyond. Reported by anilj. Fixes #190.
* Applied patch from David Smith to decode URL parts as Routes does.
  Fixes #186.
* Changed pagination to give better response if its passed an invalid object.
  Patch from Christoph Haas.
* Fixed scriptaculous helper docs example. Fixes #178.
* Updated scriptaculous/prototype to Prototype 1.5.0 and Scriptaculous 1.7.0.
* Updated scriptaculous javascripts to 1.6.5. Fixes #155.
* Updated remote_function doc-string to more clearly indicate the arguments
  it can receive.
* Synced Rails Javascript helper to 5245 (escape_javascript now escaping
  backslashes and allow passing html_options to javascript_tag).

0.2.2 (10/20/06)
----------------
* Fixed tag_options function to not str() string and let html_escape handle
  it so unicode is properly handled. Reported with fix by Michael G. Noll.
* Added sqlalchemy.Query support to the pagination orm wrappers, patch from
  Andrija Zarić
* Fixed python 2.3 compliance in webhelpers.rails (use of sorted()) (Thanks
  Jamie Wilkinson)

0.2.1 (9/7/06)
--------------
* Adding counter func to text helpers, patch from Jamie Wilkinson.
* Sync'd Rails Text helper to 4994.
* Sync'd Rails Asset tag helper to 4999.
* Sync'd Rails Form tag helper to 5045, also doesn't apply to our version.
* Sync'd Rails Javascript func to 5039, doesn't apply to us.
* Updated Scriptaculous to 1.6.3.
* Updated Prototype to 1.5.0_rc1.
* Updated radio_button so that id's are unique. Brings up to date with Rails
  changeset #4925, also fixes #103.
* More precise distance_of_time_in_words (Follows bottom half of #4989 Rails
  changeset)
* button_to accepts method keyword so you can PUT and DELETE with it. 
  (Follows #4914 Rails changeset)
* Fixed auto_link to parse more valid url formats (Thanks Jamie Wilkinson).
* Sync'd text helper from latest Rails version.
* Fixed form tag's method matching to be case insensitive.

0.2 (8/31/06)
-------------
* Adding simplejson req, adding use of json'ification. Updated scriptaculous
  helpers to split out JS generation for use in JS Generation port.
* Finished sync'ing Rails ports (urls, tags) in WebHelpers. Closes #69.
  url and prototype tests updated, url helpers updated to handle method
  argument.
* Sync'd scriptaculous helper.
* Sync'd javascript, prototype helpers and prototype.js to latest Rails
  modifications. Added more prototype tests.
* Sync'd form_options, form_tag helpers. form_tag's form function can now
  accept other HTTP methods, and will include a hidden field for them if
  its not 'get' or 'post'.
* Sync'd number helper, added number unit tests.
* Added markdown.py (python-markdown) for new markdown support in text helper.
* Added textile.py (PyTextile) for new textilize support in text helper.
* Brought asset/date/text helpers up to date with revision info.

0.1.3 (Release)
---------------
* Brought feedgenerator in line with Django's version, which fixed the missing
  support for feed categories and updated classes for new-style. Other minor
  feed updates as well. Now synced as of Django r3143.
* Fixed typo in feedgenerator import, reported by tiksin@free.fr.
* Added ``webhelpers.rails.asset_tag``, for generating links to other assets
  such as javascripts, stylesheets, and feeds.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.