{ "info": { "author": "Asko Soukka", "author_email": "asko.soukka@iki.fi", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.0", "Framework :: Plone :: 5.1", "Framework :: Plone :: 5.2", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Theme Fragments for `Plone Themes`_\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. image:: https://secure.travis-ci.org/datakurre/collective.themefragments.png\n :target: https://travis-ci.org/datakurre/collective.themefragments\n\n.. _Plone Themes: https://pypi.python.org/pypi/plone.app.theming\n\nDiazo Rules may operate on content that is fetched from somewhere other than\nthe current page being rendered by Plone, by using the href attribute to\nspecify a path of a resource relative to the root of the Plone site::\n\n \n \n\nThe ``href`` attribute can be used with any rule apart from ```` and\n````, and can reference any URL, for example to an existing browser\nview configured for your site. However, it is often desirable to generate some\ndynamic content specifically for the purpose of constructing a particular theme.\nIn this scenario, you can use *fragments*.\n\nFragment templates\n++++++++++++++++++\n\nFragments are Zope Page Template files bundled with your theme. You can create\nthem by adding a folder called ``fragments`` to your theme resource directory\n(i.e. the directory containing ``rules.xml``), either through the web or on the\nfilesystem, and creating one or more files with a ``.pt`` extension in this\ndirectory.\n\nFor example, you could create a file ``fragments/customnav.pt`` in your theme\ndirectory, containing::\n\n
    \n
  • \n \n Title\n
  • \n
\n\nThis uses Zope Page Template TAL syntax (the same syntax you might use to create\na template for a browser view if you are doing filesystem Python development,\nsay) to generate some markup based on the attributes and helper views available\nrelative to the current context.\n\nThe following variables are available to the page template used to build a\nfragment:\n\n``context``\n The context in which the fragment was looked up. This is usually either the\n portal root (when using an ``href`` with an absolute path, i.e. one starting\n with a ``/``) or the current content object (when using an ``href`` with a\n relative path).\n``request``\n The request used to render the fragment. When using a fragment from the\n ``href`` of a rule, this is a clone of the request used to render the page,\n but with the path to the fragment view, not the original content object.\n Note that form parameters from the original request are not available in this\n request.\n``portal``\n The portal root object.\n``portal_url``\n The URL to the portal root.\n\nYou can learn more about Zope Page Template syntax\n`here `_.\n\nFragment modules\n++++++++++++++++\n\nFragment modules are Restricted Python Script modules bundled with your themes.\nAvailability of methods is limited to specific fragment by naming the module\nafter the fragment base name (with ``.py`` extension). Each module could\ncontain any number Python function definitions, which are then made available\nas instance methods of the fragment view.\n\nFor example, you could create a file ``fragments/customnav.py`` in your\ntheme directory, containing::\n\n def getnav(self):\n return [{\n 'Title': u'My title',\n 'Description': u'My description',\n 'getIcon': 'document_icon.png'\n }]\n\nAnd call it in your fragment ``fragments/customnav.pt`` like a view method::\n\n
    \n
  • \n \n Title\n
  • \n
\n\nFragment methods\n++++++++++++++++\n\n.. note:: Fragment methods preceded fragment modules and support for them\n may be removed in the future.\n\nFragment methods are Restricted Python Script files bundled with your themes.\nAvailability of methods is limited to specific fragment by prefixing the\nmethod filename with the fragment name. Each script should contain code\nfor a single method and end by returning a value for the template.\n\nFor example, you could create a file ``fragments/customnav.getnav.py`` in your\ntheme directory, containing::\n\n return [{\n 'Title': u'My title',\n 'Description': u'My description',\n 'getIcon': 'document_icon.png'\n }]\n\nAnd call it in your fragment ``fragments/customnav.pt`` like a view method::\n\n
    \n
  • \n \n Title\n
  • \n
\n\nThe following variables are available to the fragment method used to build a\nfragment:\n\n``self``\n The fragment view, which provides access to ``self.context``,\n ``self.request`` and other available fragment methods similarly to\n filesystem browser views.\n\n``args``\n List of positional arguments for the method call.\n *Fragment methods do not support Zope PythonScript's way of defining\n positional named arguments.*\n\n``kwargs``\n Dictionary of keyword arguments for the method call.\n *Fragment methods do not support Zope PythonScript's way of defining\n named keyword arguments.*\n\n``context``\n The context in which the fragment was looked up.\n *This is provided as tribute to Zope PythonScript.*\n\n``container``\n The container for the context which the fragment was looked up.\n *This is provided as tribute to Zope PythonScript.*\n\n``traverse_subpath``\n An empty string.\n *This is provided as tribute to Zope PythonScript.*\n\nRendering fragments\n+++++++++++++++++++\n\nThe special ``@@theme-fragment`` view is used to render fragments. Before\nusing it in your theme, you can test it directly in your browser by going to\na URL like::\n\n http://localhost:8080/Plone/@@theme-fragment/customnav\n\nThis will cause the fragment in ``fragments/customnav.pt`` to be rendered with\nthe Plone site ``Plone`` running on ``localhost:8080`` as its context. You can\nrender fragments relative to any content object, by adjusting the URL.\n\n**Note:** Fragments are only available for the currently active theme. When\ntesting a fragment in the browser in this way, make sure the theme is enabled!\n\nTo use a fragment in a theme rule, use the ``href`` attribute with either an\nabsolute or relative path. For example::\n\n \n\nwill replace the element with id ``navlist`` in the theme with the element with\nid ``nav`` in the fragment generated by the ``fragments/customnav.pt`` template\nin the theme, rendered with the portal root as its ``context`` always (since the\n``href`` is using an absolute path, i.e. one beginning with a ``/``).\n\nSimilarly::\n\n \n\nwill do the same, but using the current content item as its ``context`` (i.e.\nthe ``href`` is using a relative path).\n\nFragments as views\n++++++++++++++++++\n\nFragments can also be used as content views, by setting the\n``layout``-attribute of a content object to ``++themefragment++name`` where\n*name* is the name of the fragment. Currently fragments cannot be configured to\nbe visible in the display menu.\n\n**Note:** Fragments are only available for the currently active theme. When\nusing fragments in your content this way, make sure the theme is enabled!\n\nFragment security\n+++++++++++++++++\n\nFragments, like theme HTML mockup files, are publicly accessible by default.\nAnyone with\naccess to the site can construct a URL containing ``@@theme-fragment/`` to\nrender a given fragment.\n\nAlernatively, more strict permissions can be defined per tile in theme\n``manifest.cfg`` with syntax:\n\n.. code:: ini\n\n [theme:themefragments:permissions]\n basename = zope2.View\n\nHowever, regardless of the defined permissions, the page templates used to build\nfragments execute in a so-called\n*Restricted Python* environment. This means that the are executed as the current\nuser (or *Anonymous*, if the current user is not logged in). Information (such\nas content items or their attributes) not accessible to the current user cannot\nbe rendered, and may result in a ``403 Forbidden`` error when rendering the\nfragment.\n\nFragment tiles\n++++++++++++++\n\nWith `plone.tiles`_, `plone.app.tiles`_ and `plone.app.blocks`_ installed this\npackage provides an additional installation profile for *Theme fragment tile*,\nwhich can be used to place theme fragments as tiles.\n\nMore readable titles for theme fragments can be defined in theme manifest.cfg\nwith:\n\n.. code:: ini\n\n [theme:themefragments:tiles]\n basename = Display title\n\nWhere *basename* is the basename of fragment filename (the part before\n``.pt``).\n\nTiles can define their configuration schema using `plone.supermodel`_ XML in a\nfragment specific file having its matching filename ending with ``.xml``\ninstead of ``.pt``.\n\nIt's also possible to specify fragment specific caching ruleset in\nmanifest.cfg with:\n\n.. code:: ini\n\n [theme:themefragments:caching]\n basename = plone.content.feed\n\n.. _plone.tiles: https://pypi.python.org/pypi/plone.tiles\n.. _plone.supermodel: https://pypi.python.org/pypi/plone.supermodel\n.. _plone.app.tiles: https://pypi.python.org/pypi/plone.app.tiles\n.. _plone.app.blocks: https://pypi.python.org/pypi/plone.app.blocks\n\nChangelog\n=========\n\n2.12 (2019-07-26)\n-----------------\n\n- Add support for Python 3 and Plone 5.2.\n [pbauer]\n\n\n2.11.1 (2017-10-30)\n-------------------\n\n- Fix issue where themefragment tile was unable to render head tiles with\n &_mode=head query parameter as expected\n [datakurre]\n\n\n2.11 (2017-10-18)\n-----------------\n\n- Add 'macros' accessor for fragment view to make fragment view template macros\n accessible and usable e.g. in classic portlets\n [datakurre]\n\n2.10.2 (2017-09-24)\n-------------------\n\n- Fix issue where theming was disabled for frament views\n [datakurre]\n\n2.10.1 (2017-09-13)\n-------------------\n\n- Fix issue where tile id and url were not accessible from tile fragment templates\n [datakurre]\n\n2.10.0 (2017-08-28)\n-------------------\n\n- Add ++themefragment++name -traverser to allow direct use of themefragments as\n views\n [datakurre]\n\n- Add fragment Python module support for fragment tile\n [datakurre]\n\n2.9.0 (2017-08-28)\n------------------\n\n- Add support for fragment Python modules (as PEP8 compatible single file\n replacement for fragment methods support in previous versions)\n [datakurre]\n\n- Change to make templates owned by their creator instead to inherit owner from\n their rendered context\n [datakurre]\n\n2.8.0 (2017-08-21)\n------------------\n\n- Add traversable @@output_relative_to helper for RichTextValue object to\n support rendering rich text field values in restricted templates\n [datakurre]\n\n\n2.7.1 (2017-06-13)\n------------------\n\n- Fix issue where fragment tile URL did not include selected fragment itself\n [datakurre]\n\n\n2.7.0 (2017-06-09)\n------------------\n\n- Fix issue where add form was unable to use fragment name from request\n [datakurre]\n\n- Fix to filter comments beginning with '#' when reading tile titles\n [datakurre]\n\n- Remove incomplete support for persistent annotation storage for theme\n fragment tiles\n [datakurre]\n\n\n2.6.1 (2017-04-19)\n------------------\n\n- Fix to read fragment name from tile data before selecting cache rule\n [datakurre]\n\n\n2.6.0 (2017-04-19)\n------------------\n\n- Change fragment tile to prefer persistent configuratio over query\n string configuration when choosing the configured fragment\n [datakurre]\n\n\n2.5.2 (2017-02-27)\n------------------\n\n- Fix issue where missing 'fragment' parameter resulted in AttributeError\n [datakurre]\n\n\n2.5.1 (2017-02-24)\n------------------\n\n- Fix issue where failure in default caching ruleset lookup prevented tile ruleset lookup\n [datakurre]\n\n\n2.5.0 (2017-02-24)\n------------------\n\n- Add support for fragment tile -specific caching ruleset configuration\n [datakurre]\n\n\n2.4.0 (2017-02-03)\n------------------\n\n- Add ``manifest.cfg`` based configuration for setting more strict\n permissions per each fragment\n [datakurre]\n\n\n2.3.1 (2017-02-02)\n------------------\n\n- Fix issue where ESI tile rendering used public URLs breaking it\n with HTTPS. Fixed by preferring the real request path before\n virtual host transform.\n [datakurre]\n\n\n2.3.0 (2017-01-30)\n------------------\n\n- Add theme fragment tile to use ESI rendering when ESI rendering\n is enabled in plone.app.blocks; When ESI rendering is enabled, all\n theme fragment tiles will be ESI rendred (it may become configurable\n in the future)\n [datakurre]\n\n\n2.2.0 (2017-01-25)\n------------------\n\n- Add caching of parsed TTW tile schemas with theme policy cache\n [datakurre]\n\n\n2.1.0 (2017-01-24)\n------------------\n\n- Add support for fieldsest in TTW XML schemas with\n plone.app.tiles >= 3.1.0\n [datakurre]\n\n\n2.0.1 (2017-01-18)\n------------------\n\n- Add generic catalog source instance to be usable with TTW XML-schema tiles\n [datakurre]\n\n2.0.0 (2017-01-17)\n------------------\n\n- Add support for fragment specific widget traversal on fragment tile forms\n [datakurre]\n\n2.0.0rc5 (2016-12-16)\n---------------------\n\n- Add minimal permission field checker for fragment tile schemas\n [datakurre]\n\n2.0.0rc4 (2016-12-15)\n---------------------\n\n- Fix to hide fragments with empty title from tile menu\n [datakurre]\n\n2.0.0rc3 (2016-12-15)\n---------------------\n\n- Fix issue where fragments didn't render when traversed from a view context\n [datakurre]\n\n2.0.0rc2 (2016-12-14)\n---------------------\n\n- Fix issue where fragment was not properly decoded\n [datakurre]\n\n2.0.0rc1 (2016-12-12)\n---------------------\n\n- Upgrade Theme fragment tiles with custom scheme to support layout aware\n tile data storage introduced in plone.app.blocks 4.0\n [datakurre]\n\n\n1.1.0 (2016-12-12)\n------------------\n\n- Refactor fragment tile source into fragment tile vocabulary to\n fix compatibility issue with Plone 5.1\n [datakurre]\n\n\n1.0.1 (2016-02-21)\n------------------\n\n- Fix issue where plone:tile -directive was not properly included\n [datakurre]\n\n\n1.0.0 (2015-09-16)\n------------------\n\n- Add fragment tile for plone.app.mosaic\n [datakurre]\n\n\n0.10.0 (2015-04-03)\n-------------------\n\n- Add support for restricted python view methods\n (with fragments/templatename.methodname.py)\n [datakurre]\n\n\n0.9.0 (2015-04-01)\n------------------\n\n- First release based on Martin Aspeli's rejected pull for plone.app.theming.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/collective.themefragments/", "keywords": "", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "collective.themefragments", "package_url": "https://pypi.org/project/collective.themefragments/", "platform": "", "project_url": "https://pypi.org/project/collective.themefragments/", "project_urls": { "Homepage": "https://github.com/collective/collective.themefragments/" }, "release_url": "https://pypi.org/project/collective.themefragments/2.12/", "requires_dist": null, "requires_python": "", "summary": "Theme fragments for plone.app.theming", "version": "2.12" }, "last_serial": 5587835, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "c0a137c8addb4367598016b593373eb5", "sha256": "129658b46cb82e9995570c2798dd00fb015dc39c5d8ccac074f0d846d6bc4dd6" }, "downloads": -1, "filename": "collective.themefragments-0.10.0.tar.gz", "has_sig": false, "md5_digest": "c0a137c8addb4367598016b593373eb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14028, "upload_time": "2015-04-03T01:34:02", "url": "https://files.pythonhosted.org/packages/eb/f7/0329d5ee23225c9db0b41ce3081e9931f4ea46132235abf37aba6740cc1f/collective.themefragments-0.10.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "9491ce96076eae9fc2b18ba79357c4a6", "sha256": "ad13beaf5c9f75d06225f06b48b3aa8e397ae709f8be09996561a572090b74b9" }, "downloads": -1, "filename": "collective.themefragments-0.9.0.tar.gz", "has_sig": false, "md5_digest": "9491ce96076eae9fc2b18ba79357c4a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11459, "upload_time": "2015-04-01T16:31:08", "url": "https://files.pythonhosted.org/packages/30/5a/32f2bc30cda7b00cb9d0b581f0b14053e8316077be53b09f42f29c5e116c/collective.themefragments-0.9.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "50174e9b6dd031f9ea59ae4d538bd23b", "sha256": "5915dd899380691bcd95cedb3e5c224118ff4efd87ec96311cd84ac317074e65" }, "downloads": -1, "filename": "collective.themefragments-1.0.0.tar.gz", "has_sig": false, "md5_digest": "50174e9b6dd031f9ea59ae4d538bd23b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16687, "upload_time": "2015-09-16T13:02:16", "url": "https://files.pythonhosted.org/packages/9a/5f/ee389d092347fae67e061a5128d55a8d665003a95b73543582d5fe65d653/collective.themefragments-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "7f22c5d5730e4dd20b66f518a2444956", "sha256": "d446f5e608975a253532beca6eebee21306ff6e15e894f700064b9f4a4252517" }, "downloads": -1, "filename": "collective.themefragments-1.0.1.tar.gz", "has_sig": false, "md5_digest": "7f22c5d5730e4dd20b66f518a2444956", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14876, "upload_time": "2016-02-20T23:04:53", "url": "https://files.pythonhosted.org/packages/04/a0/dac613e05ceef066375d3201075bd8cb979063e7f5df5b85d218483de7e0/collective.themefragments-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "135ba423fd4dcdb5bce0704e870854fd", "sha256": "283e31a415758e3cd74cc89a630850ca9281c2f0445c0922b1117f34580368a8" }, "downloads": -1, "filename": "collective.themefragments-1.1.0.tar.gz", "has_sig": false, "md5_digest": "135ba423fd4dcdb5bce0704e870854fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14996, "upload_time": "2016-12-12T07:52:27", "url": "https://files.pythonhosted.org/packages/34/5b/1b974e194f1ff9c32a97462a8f14a3907a5b95377757777cb1a7b93b05ac/collective.themefragments-1.1.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "20e9ef5b809d4621ed97bdd46875b7c9", "sha256": "dd770b75928232e25ab96a195ecfb6b81527d1173cbfab4ac4d504e4fb2eeb80" }, "downloads": -1, "filename": "collective.themefragments-2.0.0.tar.gz", "has_sig": false, "md5_digest": "20e9ef5b809d4621ed97bdd46875b7c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21126, "upload_time": "2017-01-17T05:09:34", "url": "https://files.pythonhosted.org/packages/a5/f0/190f3e534adff42ae23831297256828399a64d919bcaf968f00d763421be/collective.themefragments-2.0.0.tar.gz" } ], "2.0.0rc1": [ { "comment_text": "", "digests": { "md5": "f0d22d7c70fc11a7670efe89d569673a", "sha256": "83213b8d9481e4d9a4497ac2a810e9238fe34e1d8dd334a50ed9ac54e1204b5c" }, "downloads": -1, "filename": "collective.themefragments-2.0.0rc1.tar.gz", "has_sig": false, "md5_digest": "f0d22d7c70fc11a7670efe89d569673a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16244, "upload_time": "2016-12-12T08:16:06", "url": "https://files.pythonhosted.org/packages/d9/1e/089aa50bb97547ce8dbc727f9f418a818025484af3725619cd75b113f498/collective.themefragments-2.0.0rc1.tar.gz" } ], "2.0.0rc2": [ { "comment_text": "", "digests": { "md5": "d614c5e998e467176c42f2ac6cccc63a", "sha256": "51cf1387e104d8adf3fe858efb67e00102850b98f11150a40b8ec7a202689b8f" }, "downloads": -1, "filename": "collective.themefragments-2.0.0rc2.tar.gz", "has_sig": false, "md5_digest": "d614c5e998e467176c42f2ac6cccc63a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19293, "upload_time": "2016-12-14T13:45:50", "url": "https://files.pythonhosted.org/packages/bb/57/17412bcada26787b5c0e1f78d0a65eb6403206501afe5a028baa5bc8ed94/collective.themefragments-2.0.0rc2.tar.gz" } ], "2.0.0rc3": [ { "comment_text": "", "digests": { "md5": "29f874ed653fbcc3558a3aa8ed5e66e1", "sha256": "655331f4874aacb69a62930865df2f1ab58c67262a016176363023c3501ae30b" }, "downloads": -1, "filename": "collective.themefragments-2.0.0rc3.tar.gz", "has_sig": false, "md5_digest": "29f874ed653fbcc3558a3aa8ed5e66e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19728, "upload_time": "2016-12-15T12:35:57", "url": "https://files.pythonhosted.org/packages/a2/3b/3132cb7be978ac3b229e908a04d992debc607f422fee0f336624d5c36daa/collective.themefragments-2.0.0rc3.tar.gz" } ], "2.0.0rc4": [ { "comment_text": "", "digests": { "md5": "2bd6de0dcff7b3e44ca310b1ba136e08", "sha256": "ba33d7a3f9c062564a5232edfef556f50a2655c24c2d41203f552e41caa1eae3" }, "downloads": -1, "filename": "collective.themefragments-2.0.0rc4.tar.gz", "has_sig": false, "md5_digest": "2bd6de0dcff7b3e44ca310b1ba136e08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20497, "upload_time": "2016-12-15T19:51:57", "url": "https://files.pythonhosted.org/packages/d5/6a/c5ce5ef72dac13f47d363a702a74871385f5c0de15541fc6b6fe1af0cf7c/collective.themefragments-2.0.0rc4.tar.gz" } ], "2.0.0rc5": [ { "comment_text": "", "digests": { "md5": "cd5be204a1121474d3fbf110df1f92d9", "sha256": "bcae2ab6fa82fa46352d689dc8533890179a2f9614fb5315183c1533601cd913" }, "downloads": -1, "filename": "collective.themefragments-2.0.0rc5.tar.gz", "has_sig": false, "md5_digest": "cd5be204a1121474d3fbf110df1f92d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20779, "upload_time": "2016-12-15T23:47:23", "url": "https://files.pythonhosted.org/packages/07/bf/b3d1face2aee06cfb9e153cb52efbda403341d8874b544258a2c3897942c/collective.themefragments-2.0.0rc5.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "b3a415e6ab9aa2ff6efc645b0b4e80b8", "sha256": "44f25f25dbe4f560a15f5d7181030ec8d5c9707f9c3bfba91e73b7b0f149bee8" }, "downloads": -1, "filename": "collective.themefragments-2.0.1.tar.gz", "has_sig": false, "md5_digest": "b3a415e6ab9aa2ff6efc645b0b4e80b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21567, "upload_time": "2017-01-18T07:15:08", "url": "https://files.pythonhosted.org/packages/8a/99/aa46cc3748eddca53ed5222222b2d3c9b1f6f255fd2f55c2ba88b0aecefd/collective.themefragments-2.0.1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "45a3b9a8cedd0c5a6820c4f26a407aed", "sha256": "92c9a153a8a6d89e12eb7959bb096d419e35c962c2f83c94911c16cd4434ebc0" }, "downloads": -1, "filename": "collective.themefragments-2.1.0.tar.gz", "has_sig": false, "md5_digest": "45a3b9a8cedd0c5a6820c4f26a407aed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21730, "upload_time": "2017-01-24T11:00:51", "url": "https://files.pythonhosted.org/packages/84/c3/2b5e0104b7a8069bfb31e189d9d9447e9841eba6121b88dd12223f9ca41d/collective.themefragments-2.1.0.tar.gz" } ], "2.10.0": [ { "comment_text": "", "digests": { "md5": "bcb6f916fd34fa7963bdb3cbaeebc1c3", "sha256": "437babea9c6d909c777dba156d823d9a754307a946e7139e79f4b033e89a44f3" }, "downloads": -1, "filename": "collective.themefragments-2.10.0-py2-none-any.whl", "has_sig": false, "md5_digest": "bcb6f916fd34fa7963bdb3cbaeebc1c3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 29986, "upload_time": "2017-08-28T19:25:36", "url": "https://files.pythonhosted.org/packages/00/06/d07c95ffb110c60b862a4a36953e24ba61b23a9238e08262c1fe2b76ed2a/collective.themefragments-2.10.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49d776c743ea854790b104644895e9e3", "sha256": "bff5283836ad5530c0aa4fa0aa53a6442874fdb13d3c7689beff35b55323191b" }, "downloads": -1, "filename": "collective.themefragments-2.10.0.tar.gz", "has_sig": false, "md5_digest": "49d776c743ea854790b104644895e9e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21342, "upload_time": "2017-08-28T19:25:37", "url": "https://files.pythonhosted.org/packages/e4/f9/605deda95a1230c56ffbb2cf66925573684ffb60b3d3a8b3094b04e68b68/collective.themefragments-2.10.0.tar.gz" } ], "2.10.1": [ { "comment_text": "", "digests": { "md5": "f7ec6848dd0f6ddb120e453f5eba1021", "sha256": "4340851e009a8d4c16a9a5f22d5b57836eb3743c6db0f412deaa4563a32f57c8" }, "downloads": -1, "filename": "collective.themefragments-2.10.1-py2-none-any.whl", "has_sig": false, "md5_digest": "f7ec6848dd0f6ddb120e453f5eba1021", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 30063, "upload_time": "2017-09-13T09:58:22", "url": "https://files.pythonhosted.org/packages/92/14/80a9f9353d75daafda7c07462242846982bd801d66d85a4b0af5eb9498c5/collective.themefragments-2.10.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "069303cdc45f090e9490ecd094e1343f", "sha256": "b3f58e21ece3ee888f3564f4b149d8f6ad39ad6ed2f2499e52e805e82ee2017a" }, "downloads": -1, "filename": "collective.themefragments-2.10.1.tar.gz", "has_sig": false, "md5_digest": "069303cdc45f090e9490ecd094e1343f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23624, "upload_time": "2017-09-13T09:58:20", "url": "https://files.pythonhosted.org/packages/63/3d/3683e3cdc43f4909ac87e20067cf8276679c19f404abedaab610664910cc/collective.themefragments-2.10.1.tar.gz" } ], "2.10.2": [ { "comment_text": "", "digests": { "md5": "cb17fe22c3319ffdcfd6d46ff1e39d27", "sha256": "2c6a31a5c06592443559aad5c0b9c4bbbcbc76798461e32343927bc5f1a8a89e" }, "downloads": -1, "filename": "collective.themefragments-2.10.2-py2-none-any.whl", "has_sig": false, "md5_digest": "cb17fe22c3319ffdcfd6d46ff1e39d27", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 32236, "upload_time": "2017-09-23T21:01:40", "url": "https://files.pythonhosted.org/packages/50/b9/dc51685c359b728b97fc5fba9c7df252d7e59965899505fd014f2d9f7b61/collective.themefragments-2.10.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6fe24ac3307e231c22687610fe08c29", "sha256": "05febb2d6da7da792e20d1ade2945b6a9ed72fde6ffe2f61a50f7aaddd29fd5d" }, "downloads": -1, "filename": "collective.themefragments-2.10.2.tar.gz", "has_sig": false, "md5_digest": "e6fe24ac3307e231c22687610fe08c29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22420, "upload_time": "2017-09-23T21:01:42", "url": "https://files.pythonhosted.org/packages/53/d8/54f8da381d4222ade2c526496ee1a5de846780c4a15f370d461761d72a1b/collective.themefragments-2.10.2.tar.gz" } ], "2.11": [ { "comment_text": "", "digests": { "md5": "699dfadb390ca6f194446f18b113baca", "sha256": "9677005e12d329e19ad7507802959183d3ef3149cb2c87fc6fc6158f821dde50" }, "downloads": -1, "filename": "collective.themefragments-2.11-py2-none-any.whl", "has_sig": false, "md5_digest": "699dfadb390ca6f194446f18b113baca", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 32363, "upload_time": "2017-10-18T14:56:56", "url": "https://files.pythonhosted.org/packages/cf/22/d446adff0c5c9dc944d42df1ac1a7791b67d51d5b0fdd59324a6b7370d94/collective.themefragments-2.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e10fac772690e9cef92e8f441da26fb6", "sha256": "78ac1ec9787226c7d54fc6bb23f397e4266ad37d0b788c03f3cd29665e00550e" }, "downloads": -1, "filename": "collective.themefragments-2.11.tar.gz", "has_sig": false, "md5_digest": "e10fac772690e9cef92e8f441da26fb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22514, "upload_time": "2017-10-18T14:56:58", "url": "https://files.pythonhosted.org/packages/17/e9/f22dec5ad4278a19029cad42b5844d268e9acf81fb9058913a0282b10503/collective.themefragments-2.11.tar.gz" } ], "2.11.1": [ { "comment_text": "", "digests": { "md5": "96b448a4905dae6dcf99ce31b4270e65", "sha256": "a0cc01b41d3c3c48ba161ce31f8799202be21672121a119b6d35a920d2007f49" }, "downloads": -1, "filename": "collective.themefragments-2.11.1-py2-none-any.whl", "has_sig": false, "md5_digest": "96b448a4905dae6dcf99ce31b4270e65", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 32496, "upload_time": "2017-10-30T07:47:38", "url": "https://files.pythonhosted.org/packages/75/f2/008ee1d649ca3d35a8a838cc0cc3d8298039dc5b26b5f60501bf7d0583d3/collective.themefragments-2.11.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0094a068156874efd0a324cb62940351", "sha256": "ce9d010861408dbd2ac92d087e000c6081c5e28b372b61958b5e349e72ea9d84" }, "downloads": -1, "filename": "collective.themefragments-2.11.1.tar.gz", "has_sig": false, "md5_digest": "0094a068156874efd0a324cb62940351", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22663, "upload_time": "2017-10-30T07:47:39", "url": "https://files.pythonhosted.org/packages/58/e7/728b68fe632e3c9fd91b8d4901d0459d1faba8ece13236c72ba98e0791e7/collective.themefragments-2.11.1.tar.gz" } ], "2.12": [ { "comment_text": "", "digests": { "md5": "33df0492d95c9dfd78982d25170a214b", "sha256": "354cbcfe33b920f83aabce493a2d9bf81a66f2e4a1389baac62eeeb5038f4a34" }, "downloads": -1, "filename": "collective.themefragments-2.12.tar.gz", "has_sig": false, "md5_digest": "33df0492d95c9dfd78982d25170a214b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23019, "upload_time": "2019-07-26T08:49:28", "url": "https://files.pythonhosted.org/packages/53/51/56636770f7a34e622956767a45287192e1bcba695e910a6f93eeb994deeb/collective.themefragments-2.12.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "53b4f49a09f4946081ff6465e54a2fd6", "sha256": "c2264d4d28a02d651e3f1ebb5450ccaf7952aba2847429b02a984a98236d5e3a" }, "downloads": -1, "filename": "collective.themefragments-2.2.0.tar.gz", "has_sig": false, "md5_digest": "53b4f49a09f4946081ff6465e54a2fd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22080, "upload_time": "2017-01-25T09:29:52", "url": "https://files.pythonhosted.org/packages/b9/2b/530dd22dcae302eccb4d91a1d2506239b9c38f4d5752cab7fdd3582c527b/collective.themefragments-2.2.0.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "1eda3a104dbafc10dc63f059cf80671c", "sha256": "607a6fa51226a99fdb5bfd6fd4c3fcbf96711b51d9762ee27ce4ed97288e3525" }, "downloads": -1, "filename": "collective.themefragments-2.3.0.tar.gz", "has_sig": false, "md5_digest": "1eda3a104dbafc10dc63f059cf80671c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22452, "upload_time": "2017-01-30T13:52:32", "url": "https://files.pythonhosted.org/packages/47/34/0cfe442871ba8d43a13de2b65e10b831bd012c9d654d917089a9daafe146/collective.themefragments-2.3.0.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "191f6ee67c480ef1814f4275f84e9b04", "sha256": "14517bd2247e1f63bae4254b030794f911a9ee7b0f8b3a08a609ea018b98ab47" }, "downloads": -1, "filename": "collective.themefragments-2.3.1.tar.gz", "has_sig": false, "md5_digest": "191f6ee67c480ef1814f4275f84e9b04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22794, "upload_time": "2017-02-02T09:18:31", "url": "https://files.pythonhosted.org/packages/3c/c6/4306496c6dd953af146e075181afcb0c726fd8cfb4beeb3bff5ffc7a4cac/collective.themefragments-2.3.1.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "d96513132d8ee68a9d36330e32d67e2f", "sha256": "db52662c9ad5e8ec5aadc7c65fa0bb5d870027f6fbdaa71ab8d597818dd02c9e" }, "downloads": -1, "filename": "collective.themefragments-2.4.0.tar.gz", "has_sig": false, "md5_digest": "d96513132d8ee68a9d36330e32d67e2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23306, "upload_time": "2017-02-03T09:52:05", "url": "https://files.pythonhosted.org/packages/a2/c8/7a049e4f54299ae62cbae779faee47c4776cabc721902ad0b4014cc63f05/collective.themefragments-2.4.0.tar.gz" } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "e8edbed658b1208e737fc51b837b4e37", "sha256": "22bc988d1dac65b1821d6c7c3e9580f97989b4c364dc290ce49510ecb99973d4" }, "downloads": -1, "filename": "collective.themefragments-2.5.0.tar.gz", "has_sig": false, "md5_digest": "e8edbed658b1208e737fc51b837b4e37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23736, "upload_time": "2017-02-24T10:18:09", "url": "https://files.pythonhosted.org/packages/15/8e/5dd73fcf7037733bf9971bbfdd2212fa2009f3a10bcf9d830b4e307c0478/collective.themefragments-2.5.0.tar.gz" } ], "2.5.1": [ { "comment_text": "", "digests": { "md5": "5d57af23144dc6af68d44bd28c010d1a", "sha256": "b6d2523e96bef7bbb185b77eb36e68f4ff8489d30b35686678497ac9e3b84e80" }, "downloads": -1, "filename": "collective.themefragments-2.5.1.tar.gz", "has_sig": false, "md5_digest": "5d57af23144dc6af68d44bd28c010d1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23845, "upload_time": "2017-02-24T10:33:34", "url": "https://files.pythonhosted.org/packages/1c/ca/127837d9670f31de19a140ed56ec6da79738123020345c70c3e900c620e5/collective.themefragments-2.5.1.tar.gz" } ], "2.5.2": [ { "comment_text": "", "digests": { "md5": "4e43379e0751e07e8f45a43737a83439", "sha256": "1db805a73d0c7b6ae4906d80dadb6fbb89deaca26c91370199c42f23d5098a94" }, "downloads": -1, "filename": "collective.themefragments-2.5.2.tar.gz", "has_sig": false, "md5_digest": "4e43379e0751e07e8f45a43737a83439", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23935, "upload_time": "2017-02-27T09:02:27", "url": "https://files.pythonhosted.org/packages/1a/56/4572180beb46e85344bdfc8161d4fadf5c60c00b77ad1b0f2226f30f7c46/collective.themefragments-2.5.2.tar.gz" } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "1b8950519329e82fc75656b3642d7db0", "sha256": "db16cc736ef460308f70115ce5ebc10dc4bf90ba3de263dedcf6c5441eb391d6" }, "downloads": -1, "filename": "collective.themefragments-2.6.0.tar.gz", "has_sig": false, "md5_digest": "1b8950519329e82fc75656b3642d7db0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19311, "upload_time": "2017-04-19T10:17:40", "url": "https://files.pythonhosted.org/packages/99/a1/18dc6d041c8d4f20a279d01ad627ef4ed8396f30c8d68112823ba49fe2df/collective.themefragments-2.6.0.tar.gz" } ], "2.6.1": [ { "comment_text": "", "digests": { "md5": "37064d84d9b48429ef209df7c422f854", "sha256": "d95c403dc3ae7a571d1cb0b5ec33c98100ad5cc2ebb26add74fa3c0013e10908" }, "downloads": -1, "filename": "collective.themefragments-2.6.1.tar.gz", "has_sig": false, "md5_digest": "37064d84d9b48429ef209df7c422f854", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19364, "upload_time": "2017-04-19T11:17:13", "url": "https://files.pythonhosted.org/packages/d6/d4/3b960d999d8ffc0fbedc9b64f18219be20edb1afddad4297f3c17f326f3e/collective.themefragments-2.6.1.tar.gz" } ], "2.7.0": [ { "comment_text": "", "digests": { "md5": "314b6acb8bcf65521b7aa417c2adbb56", "sha256": "c30c7671e2df8bc2cf2184e98d4da9c6c6c6b392036634e4e579ebd3875ee1a4" }, "downloads": -1, "filename": "collective.themefragments-2.7.0.tar.gz", "has_sig": false, "md5_digest": "314b6acb8bcf65521b7aa417c2adbb56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19431, "upload_time": "2017-06-09T11:48:24", "url": "https://files.pythonhosted.org/packages/91/7a/c7926266e51d732b4d89e1551a292a771c68459ecab23c9b5bc143c57935/collective.themefragments-2.7.0.tar.gz" } ], "2.7.1": [ { "comment_text": "", "digests": { "md5": "c48d9fbd17d6db447d2cb63752e72150", "sha256": "f8d25c2f7c25953ee855bafe46f8230facea83137c52f402391b504abda2f360" }, "downloads": -1, "filename": "collective.themefragments-2.7.1.tar.gz", "has_sig": false, "md5_digest": "c48d9fbd17d6db447d2cb63752e72150", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19511, "upload_time": "2017-06-13T08:43:44", "url": "https://files.pythonhosted.org/packages/4b/06/731a4c12b6364f7415857d84a798b7470fbbc158617ffb11ee56db098778/collective.themefragments-2.7.1.tar.gz" } ], "2.8.0": [ { "comment_text": "", "digests": { "md5": "a2b2ed9e34b41caf46a220421411cd89", "sha256": "f4a14ba6254d43f782e28af3911f3efa7e42fc8bb26e90af53e5f77d624654e3" }, "downloads": -1, "filename": "collective.themefragments-2.8.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a2b2ed9e34b41caf46a220421411cd89", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 27431, "upload_time": "2017-08-21T20:50:50", "url": "https://files.pythonhosted.org/packages/3a/37/0c165949c7458d67cc93f6819d1bb74241d49bd92045b0611d1e8ec3a1b0/collective.themefragments-2.8.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1bc3de297dabd5131c9ec24137d67ea7", "sha256": "0c03fa8e92180b8f65074b63b25e0ffdc47ea640f339b2d11c12440824b3c413" }, "downloads": -1, "filename": "collective.themefragments-2.8.0.tar.gz", "has_sig": false, "md5_digest": "1bc3de297dabd5131c9ec24137d67ea7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20108, "upload_time": "2017-08-21T20:50:53", "url": "https://files.pythonhosted.org/packages/66/56/a908fd94ce190929adccedaec6ca2bb09fd33994a3e4d86726d665158f2e/collective.themefragments-2.8.0.tar.gz" } ], "2.9.0": [ { "comment_text": "", "digests": { "md5": "2c7720a513d09f3f3578dc5aec3daf67", "sha256": "dc6e29265d08cd0e40f786e07da078b99329e9d1ceabe4c4e500343e4fd5868f" }, "downloads": -1, "filename": "collective.themefragments-2.9.0-py2-none-any.whl", "has_sig": false, "md5_digest": "2c7720a513d09f3f3578dc5aec3daf67", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 29472, "upload_time": "2017-08-28T11:51:38", "url": "https://files.pythonhosted.org/packages/a5/6d/2a8a6ca915a5155d4f9422b79d8d9776f8440d72b2efea8056010d13863c/collective.themefragments-2.9.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f8a569205337104ab969b0cdfc3b3fd5", "sha256": "2411b41089e286a1ee42322e79d7c78f76a017f72f654444e58581e3de126b42" }, "downloads": -1, "filename": "collective.themefragments-2.9.0.tar.gz", "has_sig": false, "md5_digest": "f8a569205337104ab969b0cdfc3b3fd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20877, "upload_time": "2017-08-28T11:51:39", "url": "https://files.pythonhosted.org/packages/fd/e6/7b12f37d4d8d47e1d6537ab6f295b933a8bff29409f3193abe442333605b/collective.themefragments-2.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "33df0492d95c9dfd78982d25170a214b", "sha256": "354cbcfe33b920f83aabce493a2d9bf81a66f2e4a1389baac62eeeb5038f4a34" }, "downloads": -1, "filename": "collective.themefragments-2.12.tar.gz", "has_sig": false, "md5_digest": "33df0492d95c9dfd78982d25170a214b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23019, "upload_time": "2019-07-26T08:49:28", "url": "https://files.pythonhosted.org/packages/53/51/56636770f7a34e622956767a45287192e1bcba695e910a6f93eeb994deeb/collective.themefragments-2.12.tar.gz" } ] }