zope.tal-3.5.2/ 0000755 0001750 0001750 00000000000 11336275656 013215 5 ustar anthony anthony zope.tal-3.5.2/README.txt 0000644 0001750 0001750 00000001056 11273124226 014677 0 ustar anthony anthony Template Attribute Language (TAL) ================================= Overview -------- The Zope3 Template Attribute Languate (TAL) specifies the custom namespace and attributes which are used by the Zope Page Templates renderer to inject dynamic markup into a page. It also includes the Macro Expansion for TAL (METAL) macro language used in page assembly. The dynamic values themselves are specified using a companion language, TALES (see the 'zope.tales' package for more). See: http://www.zope.org/Wikis/DevSite/Projects/ZPT/TAL%20Specification%201.4 zope.tal-3.5.2/setup.py 0000644 0001750 0001750 00000006216 11273124226 014716 0 ustar anthony anthony ############################################################################## # # Copyright (c) 2006 Zope Corporation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## # This package is developed by the Zope Toolkit project, documented here: # http://docs.zope.org/zopetoolkit # When developing and releasing this package, please follow the documented # Zope Toolkit policies as described by this documentation. ############################################################################## """Setup for zope.tal package $Id: setup.py 105409 2009-10-31 17:13:27Z fretin $ """ import os import sys from setuptools import setup, find_packages here = os.path.dirname(__file__) def read(*rnames): return open(os.path.join(here, *rnames)).read() def alltests(): # use the zope.testing testrunner machinery to find all the # test suites we've put under ourselves from zope.testing.testrunner import get_options from zope.testing.testrunner import find_suites from zope.testing.testrunner import configure_logging configure_logging() from unittest import TestSuite here = os.path.abspath(os.path.dirname(sys.argv[0])) args = sys.argv[:] src = os.path.join(here, 'src') defaults = ['--test-path', src] options = get_options(args, defaults) suites = list(find_suites(options)) return TestSuite(suites) setup(name='zope.tal', version = '3.5.2', author='Zope Corporation and Contributors', author_email='zope-dev@zope.org', description='Zope 3 Template Application Languate (TAL)', long_description=( read('README.txt') + '\n\n' + read('CHANGES.txt') ), keywords = "zope3 template xml tal", classifiers = [ 'Development Status :: 5 - Production/Stable', 'Environment :: Web Environment', 'Intended Audience :: Developers', 'License :: OSI Approved :: Zope Public License', 'Programming Language :: Python', 'Natural Language :: English', 'Operating System :: OS Independent', 'Topic :: Internet :: WWW/HTTP', 'Framework :: Zope3'], url='http://pypi.python.org/pypi/zope.tal', license='ZPL 2.1', packages=find_packages('src'), package_dir = {'': 'src'}, namespace_packages=['zope'], extras_require = dict( test=['zope.testing', ]), test_suite="__main__.alltests", # to support "setup.py test" tests_require = ['zope.testing'], install_requires=['setuptools', 'zope.i18nmessageid', 'zope.interface', ], include_package_data = True, zip_safe = False, ) zope.tal-3.5.2/buildout.cfg 0000644 0001750 0001750 00000000132 11273124226 015503 0 ustar anthony anthony [buildout] develop = . parts = test [test] recipe = zc.recipe.testrunner eggs = zope.tal zope.tal-3.5.2/src/ 0000755 0001750 0001750 00000000000 11336275656 014004 5 ustar anthony anthony zope.tal-3.5.2/src/zope/ 0000755 0001750 0001750 00000000000 11336275656 014761 5 ustar anthony anthony zope.tal-3.5.2/src/zope/__init__.py 0000644 0001750 0001750 00000000070 11273124226 017051 0 ustar anthony anthony __import__('pkg_resources').declare_namespace(__name__) zope.tal-3.5.2/src/zope/tal/ 0000755 0001750 0001750 00000000000 11336275656 015541 5 ustar anthony anthony zope.tal-3.5.2/src/zope/tal/timer.py 0000644 0001750 0001750 00000003337 11273124226 017223 0 ustar anthony anthony #! /usr/bin/env python ############################################################################## # # Copyright (c) 2001, 2002 Zope Corporation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Helper program to time compilation and interpretation $Id: timer.py 25177 2004-06-02 13:17:31Z jim $ """ import getopt import sys import time from cStringIO import StringIO from zope.tal.driver import FILE, compilefile, interpretit def main(): count = 10 try: opts, args = getopt.getopt(sys.argv[1:], "n:") except getopt.error, msg: print msg sys.exit(2) for o, a in opts: if o == "-n": count = int(a) if not args: args = [FILE] for file in args: print file dummyfile = StringIO() it = timefunc(count, compilefile, file) timefunc(count, interpretit, it, None, dummyfile) def timefunc(count, func, *args): sys.stderr.write("%-14s: " % func.__name__) sys.stderr.flush() t0 = time.clock() for i in range(count): result = apply(func, args) t1 = time.clock() sys.stderr.write("%6.3f secs for %d calls, i.e. %4.0f msecs per call\n" % ((t1-t0), count, 1000*(t1-t0)/count)) return result if __name__ == "__main__": main() zope.tal-3.5.2/src/zope/tal/translationcontext.py 0000644 0001750 0001750 00000002763 11273124226 022050 0 ustar anthony anthony ############################################################################## # # Copyright (c) 2001, 2002 Zope Corporation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Translation context object for the TALInterpreter's I18N support. The translation context provides a container for the information needed to perform translation of a marked string from a page template. $Id: translationcontext.py 26559 2004-07-15 21:22:32Z srichter $ """ DEFAULT_DOMAIN = "default" class TranslationContext(object): """Information about the I18N settings of a TAL processor.""" def __init__(self, parent=None, domain=None, target=None, source=None): if parent: if not domain: domain = parent.domain if not target: target = parent.target if not source: source = parent.source elif domain is None: domain = DEFAULT_DOMAIN self.parent = parent self.domain = domain self.target = target self.source = source zope.tal-3.5.2/src/zope/tal/DEPENDENCIES.cfg 0000644 0001750 0001750 00000000075 11273124226 020034 0 ustar anthony anthony zope.i18n zope.i18nmessageid zope.interface zope.deprecation zope.tal-3.5.2/src/zope/tal/driver.py 0000644 0001750 0001750 00000015416 11273124226 017377 0 ustar anthony anthony #!/usr/bin/env python ############################################################################## # # Copyright (c) 2001, 2002 Zope Corporation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Driver program to test METAL and TAL implementation. Usage: driver.py [options] [file] Options: -h / --help Print this message and exit. -H / --html -x / --xml Explicitly choose HTML or XML input. The default is to automatically select based on the file extension. These options are mutually exclusive. -l Lenient structure insertion. -m Macro expansion only -s Print intermediate opcodes only -t Leave TAL/METAL attributes in output -i Leave I18N substitution strings un-interpolated. -a Enable source annotations $Id: driver.py 29651 2005-03-23 12:56:35Z hdima $ """ import os import sys import getopt if __name__ == "__main__": import setpath # Local hack to tweak sys.path etc. # Import local classes import zope.tal.taldefs from zope.tal.dummyengine import DummyEngine from zope.tal.dummyengine import DummyTranslationDomain FILE = "tests/input/test01.xml" class TestTranslations(DummyTranslationDomain): def translate(self, msgid, mapping=None, context=None, target_language=None, default=None): if msgid == 'timefmt': return '%(minutes)s minutes after %(hours)s %(ampm)s' % mapping elif msgid == 'jobnum': return '%(jobnum)s is the JOB NUMBER' % mapping elif msgid == 'verify': s = 'Your contact email address is recorded as %(email)s' return s % mapping elif msgid == 'mailto:${request/submitter}': return 'mailto:bperson@dom.ain' elif msgid == 'origin': return '%(name)s was born in %(country)s' % mapping return DummyTranslationDomain.translate( self, msgid, mapping, context, target_language, default=default) class TestEngine(DummyEngine): def __init__(self, macros=None): DummyEngine.__init__(self, macros) self.translationDomain = TestTranslations() def evaluatePathOrVar(self, expr): if expr == 'here/currentTime': return {'hours' : 6, 'minutes': 59, 'ampm' : 'PM', } elif expr == 'context/@@object_name': return '7' elif expr == 'request/submitter': return 'aperson@dom.ain' return DummyEngine.evaluatePathOrVar(self, expr) # This is a disgusting hack so that we can use engines that actually know # something about certain object paths. TimeEngine knows about # here/currentTime. ENGINES = {'test23.html': TestEngine, 'test24.html': TestEngine, 'test26.html': TestEngine, 'test27.html': TestEngine, 'test28.html': TestEngine, 'test29.html': TestEngine, 'test30.html': TestEngine, 'test31.html': TestEngine, 'test32.html': TestEngine, } def usage(code, msg=''): print >> sys.stderr, __doc__ if msg: print >> sys.stderr, msg sys.exit(code) def main(): macros = 0 mode = None showcode = 0 showtal = -1 sourceAnnotations = 0 strictinsert = 1 i18nInterpolate = 1 try: opts, args = getopt.getopt(sys.argv[1:], "hHxlmstia", ['help', 'html', 'xml']) except getopt.error, msg: usage(2, msg) for opt, arg in opts: if opt in ('-h', '--help'): usage(0) if opt in ('-H', '--html'): if mode == 'xml': usage(1, '--html and --xml are mutually exclusive') mode = "html" if opt == '-l': strictinsert = 0 if opt == '-m': macros = 1 if opt in ('-x', '--xml'): if mode == 'html': usage(1, '--html and --xml are mutually exclusive') mode = "xml" if opt == '-s': showcode = 1 if opt == '-t': showtal = 1 if opt == '-i': i18nInterpolate = 0 if opt == '-a': sourceAnnotations = 1 if args: file = args[0] else: file = FILE it = compilefile(file, mode) if showcode: showit(it) else: # See if we need a special engine for this test engine = None engineClass = ENGINES.get(os.path.basename(file)) if engineClass is not None: engine = engineClass(macros) interpretit(it, engine=engine, tal=(not macros), showtal=showtal, strictinsert=strictinsert, i18nInterpolate=i18nInterpolate, sourceAnnotations=sourceAnnotations) def interpretit(it, engine=None, stream=None, tal=1, showtal=-1, strictinsert=1, i18nInterpolate=1, sourceAnnotations=0): from zope.tal.talinterpreter import TALInterpreter program, macros = it assert zope.tal.taldefs.isCurrentVersion(program) if engine is None: engine = DummyEngine(macros) TALInterpreter(program, macros, engine, stream, wrap=0, tal=tal, showtal=showtal, strictinsert=strictinsert, i18nInterpolate=i18nInterpolate, sourceAnnotations=sourceAnnotations)() def compilefile(file, mode=None): assert mode in ("html", "xml", None) if mode is None: ext = os.path.splitext(file)[1] if ext.lower() in (".html", ".htm"): mode = "html" else: mode = "xml" from zope.tal.talgenerator import TALGenerator filename = os.path.abspath(file) prefix = os.path.dirname(os.path.abspath(__file__)) + os.path.sep if filename.startswith(prefix): filename = filename[len(prefix):] filename = filename.replace(os.sep, '/') # test files expect slashes if mode == "html": from zope.tal.htmltalparser import HTMLTALParser p = HTMLTALParser(gen=TALGenerator(source_file=filename, xml=0)) else: from zope.tal.talparser import TALParser p = TALParser(gen=TALGenerator(source_file=filename)) p.parseFile(file) return p.getCode() def showit(it): from pprint import pprint pprint(it) if __name__ == "__main__": main() zope.tal-3.5.2/src/zope/tal/xmlparser.py 0000644 0001750 0001750 00000007266 11273124226 020125 0 ustar anthony anthony ############################################################################## # # Copyright (c) 2001, 2002 Zope Corporation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Generic Expat-based XML parser base class. This creates a parser with namespace processing enabled. $Id: xmlparser.py 72023 2007-01-14 13:54:17Z philikon $ """ import logging class XMLParser(object): ordered_attributes = 0 handler_names = [ "StartElementHandler", "EndElementHandler", "ProcessingInstructionHandler", "CharacterDataHandler", "UnparsedEntityDeclHandler", "NotationDeclHandler", "StartNamespaceDeclHandler", "EndNamespaceDeclHandler", "CommentHandler", "StartCdataSectionHandler", "EndCdataSectionHandler", "DefaultHandler", "DefaultHandlerExpand", "NotStandaloneHandler", "ExternalEntityRefHandler", "XmlDeclHandler", "StartDoctypeDeclHandler", "EndDoctypeDeclHandler", "ElementDeclHandler", "AttlistDeclHandler" ] def __init__(self, encoding=None): self.parser = p = self.createParser(encoding) if self.ordered_attributes: try: self.parser.ordered_attributes = self.ordered_attributes except AttributeError: logging.warn("TAL.XMLParser: Can't set ordered_attributes") self.ordered_attributes = 0 for name in self.handler_names: method = getattr(self, name, None) if method is not None: try: setattr(p, name, method) except AttributeError: logging.error("TAL.XMLParser: Can't set " "expat handler %s" % name) def createParser(self, encoding=None): global XMLParseError from xml.parsers import expat XMLParseError = expat.ExpatError return expat.ParserCreate(encoding, ' ') def parseFile(self, filename): self.parseStream(open(filename)) def parseString(self, s): if isinstance(s, unicode): # Expat cannot deal with unicode strings, only with # encoded ones. Also, its range of encodings is rather # limited, UTF-8 is the safest bet here. s = s.encode('utf-8') self.parser.Parse(s, 1) def parseURL(self, url): import urllib self.parseStream(urllib.urlopen(url)) def parseStream(self, stream): self.parser.ParseFile(stream) def parseFragment(self, s, end=0): self.parser.Parse(s, end) def getpos(self): # Apparently ErrorLineNumber and ErrorLineNumber contain the current # position even when there was no error. This contradicts the official # documentation[1], but expat.h[2] contains the following definition: # # /* For backwards compatibility with previous versions. */ # #define XML_GetErrorLineNumber XML_GetCurrentLineNumber # # [1] http://python.org/doc/current/lib/xmlparser-objects.html # [2] http://cvs.sourceforge.net/viewcvs.py/expat/expat/lib/expat.h return (self.parser.ErrorLineNumber, self.parser.ErrorColumnNumber) zope.tal-3.5.2/src/zope/tal/tests/ 0000755 0001750 0001750 00000000000 11336275656 016703 5 ustar anthony anthony zope.tal-3.5.2/src/zope/tal/tests/utils.py 0000644 0001750 0001750 00000003716 11273124226 020406 0 ustar anthony anthony ############################################################################## # # Copyright (c) 2001, 2002 Zope Corporation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Helper functions for the test suite. $Id: utils.py 30139 2005-04-24 07:01:43Z hdima $ """ import os import sys mydir = os.path.abspath(os.path.dirname(__file__)) codedir = os.path.dirname(os.path.dirname(os.path.dirname(mydir))) if codedir not in sys.path: sys.path.append(codedir) import unittest # Set skipxml to true if an XML parser could not be found. skipxml = 0 try: import xml.parsers.expat except ImportError: skipxml = 1 def run_suite(suite, outf=None, errf=None): if outf is None: outf = sys.stdout runner = unittest.TextTestRunner(outf) result = runner.run(suite) ## print "\n\n" ## if result.errors: ## print "Errors (unexpected exceptions):" ## map(print_error, result.errors) ## print ## if result.failures: ## print "Failures (assertion failures):" ## map(print_error, result.failures) ## print newerrs = len(result.errors) + len(result.failures) if newerrs: print "'Errors' indicate exceptions other than AssertionError." print "'Failures' indicate AssertionError" if errf is None: errf = sys.stderr errf.write("%d errors, %d failures\n" % (len(result.errors), len(result.failures))) return newerrs def print_error(info): testcase, (type, e, tb) = info zope.tal-3.5.2/src/zope/tal/tests/test_talgettext.py 0000644 0001750 0001750 00000005071 11273124226 022466 0 ustar anthony anthony ############################################################################## # # Copyright (c) 2001, 2002 Zope Corporation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Tests for the talgettext utility. $Id: test_talgettext.py 30452 2005-05-20 05:13:10Z fdrake $ """ import sys import unittest from StringIO import StringIO from zope.tal.htmltalparser import HTMLTALParser from zope.tal.talgettext import POTALInterpreter from zope.tal.talgettext import POEngine from zope.tal.tests import utils class test_POEngine(unittest.TestCase): """Test the PO engine functionality, which simply adds items to a catalog as .translate is called """ def test_translate(self): test_keys = ['foo', 'bar', 'blarf', 'washington'] engine = POEngine() engine.file = 'foo.pt' for key in test_keys: engine.translate(key, 'domain') for key in test_keys: self.failIf(key not in engine.catalog['domain'], "POEngine catalog does not properly store message ids" ) def test_dynamic_msgids(self): sample_source = """
Some dynamic text.
A link.
""" p = HTMLTALParser() p.parseString(sample_source) program, macros = p.getCode() engine = POEngine() engine.file = 'sample_source' POTALInterpreter(program, macros, engine, stream=StringIO(), metal=False)() msgids = [] for domain in engine.catalog.values(): msgids += domain.keys() msgids.sort() self.assertEquals(msgids, ['A link.', 'Some ${DYNAMIC_CONTENT} text.']) def test_suite(): suite = unittest.makeSuite(test_POEngine) return suite if __name__ == "__main__": errs = utils.run_suite(test_suite()) sys.exit(errs and 1 or 0) zope.tal-3.5.2/src/zope/tal/tests/input/ 0000755 0001750 0001750 00000000000 11336275656 020042 5 ustar anthony anthony zope.tal-3.5.2/src/zope/tal/tests/input/test05.xml 0000644 0001750 0001750 00000000251 11273124226 021670 0 ustar anthony anthonyYour contact email address is recorded as user@host.com
zope.tal-3.5.2/src/zope/tal/tests/input/test22.xml 0000644 0001750 0001750 00000000356 11273124226 021675 0 ustar anthony anthony content omit replace zope.tal-3.5.2/src/zope/tal/tests/input/test29.html 0000644 0001750 0001750 00000000253 11273124226 022044 0 ustar anthony anthonyFoo!
zope.tal-3.5.2/src/zope/tal/tests/input/test08.html 0000644 0001750 0001750 00000004733 11273124226 022050 0 ustar anthony anthony
Some headlineThis is the real contents of the bottom right slot. It is supposed to contain a lot of text. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. It is supposed to contain a lot of text. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. It is supposed to contain a lot of text. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. |
Your contact email address is recorded as user@host.com
zope.tal-3.5.2/src/zope/tal/tests/input/test26.html 0000644 0001750 0001750 00000000205 11273124226 022036 0 ustar anthony anthony Job #NN zope.tal-3.5.2/src/zope/tal/tests/input/test21.html 0000644 0001750 0001750 00000000236 11273124226 022035 0 ustar anthony anthony was born in . zope.tal-3.5.2/src/zope/tal/tests/input/test02.html 0000644 0001750 0001750 00000007144 11273124226 022041 0 ustar anthony anthony
Some headlineThis is the real contents of the bottom right slot. It is supposed to contain a lot of text. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. It is supposed to contain a lot of text. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. It is supposed to contain a lot of text. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. Blah, blah, blab. Blabber, blabber, blah. Baah, baah, barb. |
use-macro fill-slot
use-macro
define-slot
zope.tal-3.5.2/src/zope/tal/tests/input/test09.xml 0000644 0001750 0001750 00000000722 11273124226 021677 0 ustar anthony anthonyJust a bunch of text.
more text...
My Paragraph
Top Left | Top Right |
Bottom left | Bottom Right |
foo bar
Top Left | Top Right |
Bottom left | Bottom Right |
Foo!
zope.tal-3.5.2/src/zope/tal/tests/input/test28.html 0000644 0001750 0001750 00000000335 11273124226 022044 0 ustar anthony anthonyYour contact email address is recorded as user@host.com
zope.tal-3.5.2/src/zope/tal/tests/input/test35.html 0000644 0001750 0001750 00000000320 11273124226 022034 0 ustar anthony anthony