{
"info": {
"author": "Roger Ineichen and the Zope Community",
"author_email": "zope-dev@zope.org",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Framework :: Zope :: 3",
"Intended Audience :: Developers",
"License :: OSI Approved :: Zope Public License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Internet :: WWW/HTTP"
],
"description": ".. image:: https://img.shields.io/pypi/v/z3c.macro.svg\n :target: https://pypi.python.org/pypi/z3c.macro/\n :alt: Latest release\n\n.. image:: https://img.shields.io/pypi/pyversions/z3c.macro.svg\n :target: https://pypi.org/project/z3c.macro/\n :alt: Supported Python versions\n\n.. image:: https://travis-ci.org/zopefoundation/z3c.macro.svg?branch=master\n :target: https://travis-ci.org/zopefoundation/z3c.macro\n\n.. image:: https://coveralls.io/repos/github/zopefoundation/z3c.macro/badge.svg?branch=master\n :target: https://coveralls.io/github/zopefoundation/z3c.macro?branch=master\n\nThis package provides an adapter and a TALES expression for a more explicit and\nmore flexible macro handling using the adapter registry for macros.\n\n\nDetailed Documentation\n======================\n\n\n=====\nMacro\n=====\n\nThis package provides a adapter and a TALES expression for a expliciter and\nflexibler macro handling using the adapter registry for macros.\n\nWe start with creating a content object that is used as a view context later:\n\n >>> import zope.interface\n >>> import zope.component\n >>> from zope.publisher.interfaces.browser import IBrowserView\n >>> from zope.publisher.interfaces.browser import IDefaultBrowserLayer\n >>> @zope.interface.implementer(zope.interface.Interface)\n ... class Content(object):\n ... pass\n\n >>> content = Content()\n\nWe also create a temp dir for sample templates which we define later for\ntesting:\n\n >>> import os, tempfile\n >>> temp_dir = tempfile.mkdtemp()\n\n\nMacro Template\n--------------\n\nWe define a macro template as a adapter providing IMacroTemplate:\n\n >>> path = os.path.join(temp_dir, 'navigation.pt')\n >>> with open(path, 'w') as file:\n ... _ = file.write('''\n ...