I'm working on a customization to 'document_view.pt' that will pass the standard 'text/getText' through typogrify.py[1] and smartypants.py[2] to 'prettify' the body text of Pages.
[1] http://typogrify.googlecode.com/svn/trunk/typogrify/templatetags/typogrify.py (with the django imports and register commented out) [2] http://web.chad.org/projects/smartypants.py/smartypants.py-1.5_1.6 I'm working on Plone 3.1.7 and have the following change in: Products/AAOLMViews/skins/aaolm_views/document_view.pt: <!-- this replaces <metal:field use-macro="python:here.widget('text', mode='view')">Body text</metal:field> --> <div tal:content="structure python: context.typogrify_text(ttext=text)"> Typogrified Text </div> (Note: 'text' is defined at the top of the page template as 'text here/getText') ---- In Products/AAOLMViews/skins/aaolm_views/typogrify_text.py: ## Script (Python) "typogrify_text" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=ttext=None ##title=Returns text that has been run through smartypants and typogrify markup enhancers from Products.AAOLMViews.typogrify import typogrify return typogrify(ttext) ---- I have typogrify.py and smartypants.py living here: Products/AAOLMViews/smartypants.py Products/AAOLMViews/typogrify.py ---- I've also declared security adjustments for re, typogrify.py, and smartypants.py in __init__.py: Products.AAOLMViews/__init__.py: # next three lines are for importing security routines to allow use from AccessControl import allow_class, allow_type from AccessControl import ModuleSecurityInfo # allow security clearance ModuleSecurityInfo('re').declarePublic('compile', 'findall', 'match', 'search', 'split', 'sub', 'subn', 'error', 'I', 'L', 'M', 'S', 'X') import re import typogrify import smartypants allow_type(type(re.compile(''))) allow_type(type(re.match('x','x'))) allow_type(type(re.sub('', '', ''))) allow_class(typogrify) allow_class(smartypants) ---- Based on what I see, it should be working but I'm getting a traceback that I can't seem to debug. Any help would be appreciated. Thanks!: Traceback (innermost last): Module ZPublisher.Publish, line 119, in publish Module ZPublisher.mapply, line 88, in mapply Module ZPublisher.Publish, line 42, in call_object Module Shared.DC.Scripts.Bindings, line 313, in __call__ Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec Module Products.CMFCore.FSPageTemplate, line 216, in _exec Module Products.CMFCore.FSPageTemplate, line 155, in pt_render Module Products.Gloworm, line 28, in pt_render Module zope.pagetemplate.pagetemplate, line 117, in pt_render Module zope.tal.talinterpreter, line 271, in __call__ Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 891, in do_useMacro Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 536, in do_optTag_tal Module zope.tal.talinterpreter, line 521, in do_optTag Module zope.tal.talinterpreter, line 516, in no_tag Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 957, in do_defineSlot Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 536, in do_optTag_tal Module zope.tal.talinterpreter, line 521, in do_optTag Module zope.tal.talinterpreter, line 516, in no_tag Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 861, in do_defineMacro Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 957, in do_defineSlot Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 536, in do_optTag_tal Module zope.tal.talinterpreter, line 521, in do_optTag Module zope.tal.talinterpreter, line 516, in no_tag Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 536, in do_optTag_tal Module zope.tal.talinterpreter, line 525, in do_optTag Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 949, in do_defineSlot Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 536, in do_optTag_tal Module zope.tal.talinterpreter, line 521, in do_optTag Module zope.tal.talinterpreter, line 516, in no_tag Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 861, in do_defineMacro Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 536, in do_optTag_tal Module zope.tal.talinterpreter, line 521, in do_optTag Module zope.tal.talinterpreter, line 516, in no_tag Module zope.tal.talinterpreter, line 346, in interpret Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal Module Products.PageTemplates.Expressions, line 221, in evaluateStructure Module zope.tales.tales, line 696, in evaluate - URL: file:c:\projects\plone317\src\products.aaolmviews\Products\AAOLMViews\ skins\aaolm_views\document_view.pt - Line 57, Column 8 - Expression: <PythonExpr context.typogrify_text(ttext=text)> - Names: {'container': <PloneSite at /advancedaquarist>, 'context': <ATDocument at /advancedaquarist/2008/aaeditorial>, 'default': <object object at 0x00A6C528>, 'here': <ATDocument at /advancedaquarist/2008/aaeditorial>, 'loop': {}, 'nothing': None, 'options': {'args': ()}, 'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x083 1DE68>, 'request': <HTTPRequest, URL= http://localhost:8080/advancedaquarist/2008/ aaeditorial/document_view>, 'root': <Application at >, 'template': <FSPageTemplate at /advancedaquarist/document_view used for / advancedaquarist/2008/aaeditorial>, 'traverse_subpath': [], 'user': <PropertiedUser 'admin'>} Module Products.PageTemplates.ZRPythonExpr, line 49, in __call__ - __traceback_info__: context.typogrify_text(ttext=text) Module PythonExpr, line 1, in <expression> Module Products.CMFCore.FSPythonScript, line 140, in __call__ Module Shared.DC.Scripts.Bindings, line 313, in __call__ Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec Module Products.CMFCore.FSPythonScript, line 196, in _exec TypeError: typogrify_text() takes no arguments (1 given)
_______________________________________________ Product-Developers mailing list [email protected] http://lists.plone.org/mailman/listinfo/product-developers
