Mercurial > public > src > moin > extensions
diff data/plugin/parser/text_x_arnica.py @ 112:8438a033d483
text_x_arnica.macro_arnica: uses the unitparser for thumbnail_width, webnail_width, text_width default unit is px
(because PIL thumbnail requires px)
author | Reimar Bauer <rb.proj AT googlemail DOT com> |
---|---|
date | Fri, 27 Jun 2008 08:32:00 +0200 |
parents | dba6f45c448e |
children | d126ba077c06 |
line wrap: on
line diff
--- a/data/plugin/parser/text_x_arnica.py Fri Jun 27 07:52:37 2008 +0200 +++ b/data/plugin/parser/text_x_arnica.py Fri Jun 27 08:32:00 2008 +0200 @@ -42,8 +42,9 @@ only_items=False, template_itemlist=False, album=False, album_title=unicode, album_image=u'', renew=False, - thumbnail_width=128, webnail_width=640, - text_width=128): + thumbnail_width=wikiutil.UnitArgument('128', float, ['px', ], defaultunit='px'), + webnail_width=wikiutil.UnitArgument('640', float, ['px', ], defaultunit='px'), + text_width=wikiutil.UnitArgument('140', float, ['px', 'em', 'pt', 'in', 'mm', '%'], defaultunit='px')): """ dummy macro to initialize all default parameters for arnica. The definition is checked for wrong input. @param target_page: page to read attachments from @param columns: number of columns for thumbnails @@ -68,10 +69,28 @@ of the album and slideshow. @param renew: if set then all selected thumbnails_* and webnails_* are removed and will be recreated - @param thumbnail_width: default width of thumbnails is 128 - @param webnail_width: default width of webnail is 640 - @param text_width: default width of text is 140 + @param thumbnail_width: default width of thumbnails is 128px + @param webnail_width: default width of webnail is 640px + @param text_width: default width of text is 140px """ + if thumbnail_width: + if thumbnail_width[1] == 'px': + thumbnail_width = '%dpx' % int(thumbnail_width[0]) + else: + thumbnail_width = '%g%s' % thumbnail_width + + if webnail_width: + if webnail_width[1] == 'px': + webnail_width = '%dpx' % int(webnail_width[0]) + else: + webnail_width = '%g%s' % webnail_width + + if text_width: + if text_width[1] == 'px': + text_width = '%dpx' % int(text_width[0]) + else: + text_width = '%g%s' % text_width + return locals() # ToDo may be move to wikiutil @@ -440,13 +459,14 @@ except IOError: return + # XXX later on a unit conversion method for using other units than 'px' is needed if not cache_web.exists(): if not self.image_for_webnail: - im_obj.thumbnail((self.webnail_width, self.webnail_width), Image.ANTIALIAS) + im_obj.thumbnail((self.webnail_width, int(self.webnail_width.strip('px'))), Image.ANTIALIAS) im_obj.save(webf, image_type) if not cache_thumb.exists(): - im_obj.thumbnail((self.thumbnail_width, self.thumbnail_width), Image.ANTIALIAS) + im_obj.thumbnail((self.thumbnail_width, int(self.thumbnail_width.strip('px'))), Image.ANTIALIAS) im_obj.save(thumbf, image_type) def render(self, formatter):