{ "info": { "author": "Olemis Lang", "author_email": "olemis+trac@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Trac", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "Notes\n=====\n\nAdds a simple API and GUI for packaging and configuring Trac themes.\n\nConfiguration\n=============\n\ntrac.ini\n--------\n\nAll configuration options go in the ``[theme]`` section.\n\n``theme`` : *optional, default: \"default\"*\n Theme name to use. Name is case-insensitive.\n\n``enable_css`` : *optional, default: false*\n Enable or disable the CSS customizations.\n\n``color.*`` : *optional*\n Stored values for simple CSS overrides. Note that changing this will\n not take effect until you save them in the admin panel.\n\nWeb interface\n-------------\n\nTheme\n~~~~~\n\nUse the arrows to select your theme from the installed options and then click\nthe button to activate it.\n\n.. image:: http://trac-hacks.org/raw-attachment/wiki/ThemeEnginePlugin/admin_theme.png\n\nCustomize\n~~~~~~~~~\n\nHere you can further customize your theme by changing colors for certain\npieces of the UI. The scheme drop down allows you to load pre-configured \ncolor schemes. Note that not all themes will support this, or support the\nsame options.\n\n.. image:: http://trac-hacks.org/raw-attachment/wiki/ThemeEnginePlugin/admin_customize.png\n\nCustomize: Advanced\n~~~~~~~~~~~~~~~~~~~\n\nHere you can customize the CSS even further. As mentioned in the file, if you\nedit this file by hand, you should not use the simple customizer system or\nyou will lose your changes.\n\n.. image:: http://trac-hacks.org/raw-attachment/wiki/ThemeEnginePlugin/admin_advanced.png\n\nExample\n=======\n\nTo enable the PyDotOrg theme::\n\n [theme]\n theme = pydotorg\n \n [components]\n themeengine.* = enabled\n pydotorgtheme.* = enabled\n\nCreating a theme\n================\n\nSimple way\n----------\n\nThe easiest way to make a new theme is to inherit from ``ThemeBase``. A\nbasic example theme is as follows::\n\n from trac.core import *\n \n from themeengine.api import ThemeBase\n \n class ExampleTheme(ThemeBase):\n \"\"\"A example theme.\"\"\"\n \n template = htdocs = css = screenshot = True\n\nThe name will be inferred from the class name (\"Example\" in this case) and the\ndocstring will be used as the description. There are several class variables\nyou can set to configure the theme. By default all of these are set to\n``False`` and so are disabled. If set to ``True``, each option will use a\ngenerally sane default. If set to any value other than those, that value will\nbe used directly.\n\nThe available options as follows (all are optional):\n\n``template`` : *default: $name_theme.html*\n The filename of the replacement template.\n\n``css`` : *default: $name.css*\n Filename for a stylesheet to include.\n\n``htdocs`` : *default: htdocs*\n Subfolder containing static content.\n\n``screenshot`` : *default: htdocs/screenshot.png*\n Package-relative path to the screenshot file. File should be 640x400 or\n use the same aspect ratio.\n\n``colors`` : \n Specifiers for simple color customization system. This should be an\n iterable of tuples of the form ``(name, property, selector)``. ``name``\n will be shown in the customization UI for that entry. ``property`` will\n generally be ``color`` or ``background-color``. ``selector`` should be\n a CSS selector string to apply the color rule to.\n\n``schemes`` :\n Pre-built color schemes. This should be an iterable of tuples of the form\n ``(name, color_dict)``. The ``color_dict`` should be a dictionary mapping\n color name to hex color string (of the form ``#00AAFF``).\n\nAdvanced API\n------------\n\nFor more advanced control you can implement ``IThemeProvider`` from \n``themeengine.api``. The interface definition is::\n\n class IThemeProvider(Interface):\n \"\"\"An interface to provide style information.\"\"\"\n \n def get_theme_names():\n \"\"\"Return an iterable of names.\"\"\"\n \n def get_template_overrides(name):\n \"\"\"(Optional) local changes to specific templates \n \n Return a sequence of tuples (old_html, new_html, function) where\n \n old_html::\n The name of the template overriden by this theme.\n new_html::\n The name of the template file replacing the former. \n function::\n Optional callback (or None) to add further data . Signature:\n req::\n Request object\n template::\n The value of `old_html` above\n data::\n Template data, may be modified\n content_type::\n Reported MIME type\n \n since 2.2.0\n \"\"\"\n\n def get_theme_info(name):\n \"\"\"Return a dict containing 0 or more of the following pairs:\n \n description::\n A brief description of the theme.\n template::\n The name of the theme template file. \n css::\n The filename of the CSS file.\n htdocs::\n The folder containing the static content.\n screenshot::\n The name of the screenshot file.\n colors::\n A list of (name, css-property, selector) tuples.\n schemes::\n A list of (name, {color-name: value, ...}) tuples.\n scripts::\n A list of (filename, mimetype, charset, ie_if) respectively for\n script (relative | absolute) URI (mandatory), \n script MIME type (optional , defaults to 'text/javascript'),\n script charset encoding (optional, defaults to 'utf-8'),\n and a bool flag for MSIE-only shims (optional, defaults to False)\n @since 2.2.2\n \"\"\"\n\nMost of these are the same as the simple API above, except ``description``\nis explicit.\n\nCustomizing specific views\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSince version 2.2.0 it is possible to customize specific views by implementing\n(optional) ``get_template_overrides`` method. For instance\nthe following sample code will change ticket and wiki views using\ncustom Genshi templates::\n\n class CustomTheme(...):\n\n #------8<------ Code omitted ------8<------\n\n def get_template_overrides(self, name):\n \"\"\"Override ticket and wiki templates using custom templates\n \"\"\"\n yield ('ticket.html', 'custom_ticket.html', None)\n yield ('wiki.html', 'custom_wiki.html', self._modify_wiki)\n\n def _modify_wiki(self, req, template, data, content_type): \n data['var'] = 'value'\n\nNotice that, in sample code, new data will be added to render wiki pages.", "description_content_type": null, "docs_url": null, "download_url": "https://trac-hacks.org/svn/themeengineplugin/0.11#egg=TracThemeEngine-dev", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://trac-hacks.org/wiki/ThemeEnginePlugin", "keywords": "trac plugin theme style", "license": "3-Clause BSD", "maintainer": "", "maintainer_email": "", "name": "TracThemeEngine", "package_url": "https://pypi.org/project/TracThemeEngine/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/TracThemeEngine/", "project_urls": { "Download": "https://trac-hacks.org/svn/themeengineplugin/0.11#egg=TracThemeEngine-dev", "Homepage": "https://trac-hacks.org/wiki/ThemeEnginePlugin" }, "release_url": "https://pypi.org/project/TracThemeEngine/2.2.2/", "requires_dist": null, "requires_python": "", "summary": "Provide a modular interface to styling Trac", "version": "2.2.2" }, "last_serial": 1799591, "releases": { "2.0.1": [ { "comment_text": "", "digests": { "md5": "d0bda39c41695a13c9ae2624156d0739", "sha256": "43127600e328b917b2a45d0f4b3b9f4f1c616727c2a40ef35b3fa61cb4c30774" }, "downloads": -1, "filename": "TracThemeEngine-2.0.1-py2.5.egg", "has_sig": false, "md5_digest": "d0bda39c41695a13c9ae2624156d0739", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 50210, "upload_time": "2010-02-25T22:30:18", "url": "https://files.pythonhosted.org/packages/20/2a/218e744728974e9ef525675c4e802fe7b2fbbd5534c68685397cf7c1cc80/TracThemeEngine-2.0.1-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "a75de20554e0724c8747260c056aaec7", "sha256": "4e366d92cfaab8471e9a18c3f63bd3d9b6bb431525a6f86903b55d4b4676266a" }, "downloads": -1, "filename": "TracThemeEngine-2.0.1.tar.gz", "has_sig": false, "md5_digest": "a75de20554e0724c8747260c056aaec7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 178858, "upload_time": "2010-02-25T22:30:23", "url": "https://files.pythonhosted.org/packages/04/c6/b031c3a8158ac43cb4c103345dc34aa82cad955ffd436cc860367936607e/TracThemeEngine-2.0.1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "e42628bd97d827dc3aa3ecb0a997fc47", "sha256": "5e4c83aaacd1b6e20ef194e7c26b36d52b44f0f0d235450675fa1fa828629ad8" }, "downloads": -1, "filename": "TracThemeEngine-2.1.0.tar.bz2", "has_sig": false, "md5_digest": "e42628bd97d827dc3aa3ecb0a997fc47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 180907, "upload_time": "2012-11-22T04:03:04", "url": "https://files.pythonhosted.org/packages/68/46/902bb54c14b091ef8d5f909d5ab4edc50a5af764bc75d7aee15f84de875e/TracThemeEngine-2.1.0.tar.bz2" }, { "comment_text": "", "digests": { "md5": "e2495408c60dd54128ed354804e0a971", "sha256": "c0b1133dd685ebd95cf412598ec99211848bfbb5fca9221dd87def647b53b547" }, "downloads": -1, "filename": "TracThemeEngine-2.1.0.tar.gz", "has_sig": false, "md5_digest": "e2495408c60dd54128ed354804e0a971", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 180679, "upload_time": "2012-11-22T04:01:48", "url": "https://files.pythonhosted.org/packages/f7/94/2191e35cd80badf11651525cd3e4e9f6f30ebc4cf753653d83b0ff98956b/TracThemeEngine-2.1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "fbd531c60c0f0a7f393217cf0f41ea38", "sha256": "e83d6dc1541b5744c6c836d416a02ef6135c1b02c18e5deefdc2c37e72099e2d" }, "downloads": -1, "filename": "TracThemeEngine-2.1.0.zip", "has_sig": false, "md5_digest": "fbd531c60c0f0a7f393217cf0f41ea38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 195982, "upload_time": "2012-11-22T04:00:27", "url": "https://files.pythonhosted.org/packages/ab/f1/de0a859f67851d0d940af683d83292280632da6322766cf531908deb56a0/TracThemeEngine-2.1.0.zip" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "105d8c7ad51ad1ead1846f10bb2b0ad6", "sha256": "5905f6d64d18dc4a1850f8e504cf85a138547f6932ef87254bd7965ef9dfa1f6" }, "downloads": -1, "filename": "TracThemeEngine-2.1.1.tar.gz", "has_sig": false, "md5_digest": "105d8c7ad51ad1ead1846f10bb2b0ad6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 180734, "upload_time": "2013-01-04T00:32:42", "url": "https://files.pythonhosted.org/packages/37/18/d22d3cca78769ac27154cb1edb22205020c9d836eb74732a2cc1c44cdfc9/TracThemeEngine-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "cace4e827515b83088eb2a349943561f", "sha256": "318b4b03222ecfaab654f26d034b66007c509520a2e8521df150b03b77988812" }, "downloads": -1, "filename": "TracThemeEngine-2.1.2.tar.bz2", "has_sig": false, "md5_digest": "cace4e827515b83088eb2a349943561f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 181130, "upload_time": "2013-01-17T14:56:47", "url": "https://files.pythonhosted.org/packages/97/50/455eb90d7ec3d6f794f76b5609d5f5e3695d75b45cf2eebe25027ae3d386/TracThemeEngine-2.1.2.tar.bz2" }, { "comment_text": "", "digests": { "md5": "e15f119224db47c896c6edbeaf85403b", "sha256": "ff2130bfe4058e38e555ab6a91da602f04d1c004e80911e9dc1d07cbf8c797b3" }, "downloads": -1, "filename": "TracThemeEngine-2.1.2.tar.gz", "has_sig": false, "md5_digest": "e15f119224db47c896c6edbeaf85403b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 180734, "upload_time": "2013-01-17T14:55:32", "url": "https://files.pythonhosted.org/packages/90/3f/4fac712f87bef74726414617da2c96e11ca570078376519e33759521294f/TracThemeEngine-2.1.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "00db099ad2c6f5ff116fda018326e400", "sha256": "466a8b4a4aaf0d6bc5d912a1046e4bda5728c15b386d547471b9686a4846717e" }, "downloads": -1, "filename": "TracThemeEngine-2.1.2.zip", "has_sig": false, "md5_digest": "00db099ad2c6f5ff116fda018326e400", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 196037, "upload_time": "2013-01-17T14:58:06", "url": "https://files.pythonhosted.org/packages/bd/b0/233b57ee7150bb950606c03787dd7f6053875ed81a78049557c556005029/TracThemeEngine-2.1.2.zip" } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "2dfbd0dde50f228e8f5be2ea7bc14475", "sha256": "1f6f3e0ce4215dd0098c8d17d2e97715bc94407dcf94b819572b967321ba1824" }, "downloads": -1, "filename": "TracThemeEngine-2.1.3.tar.bz2", "has_sig": false, "md5_digest": "2dfbd0dde50f228e8f5be2ea7bc14475", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 181127, "upload_time": "2013-01-19T21:06:43", "url": "https://files.pythonhosted.org/packages/2b/0b/b5fb6e4f44f5a3f921322034e1fa6cce3d94f1367a56e0744b1ae9f62875/TracThemeEngine-2.1.3.tar.bz2" }, { "comment_text": "", "digests": { "md5": "5079d339cb0e1fbd4c2dc234fec9059a", "sha256": "18501f33c8ffbc69819d4b82cf147c53ccef62896879694b1713c6d4a6f9fb4f" }, "downloads": -1, "filename": "TracThemeEngine-2.1.3.tar.gz", "has_sig": false, "md5_digest": "5079d339cb0e1fbd4c2dc234fec9059a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 180758, "upload_time": "2013-01-19T21:07:55", "url": "https://files.pythonhosted.org/packages/b4/e6/f0297dc98e76b6583a7c0d5b00c4269cfaf90a685081810c49c95f83599a/TracThemeEngine-2.1.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "36735f49a0983e736f16f4510ab2d41c", "sha256": "da2ed6592ddaf08feb45c884529285a0b8c585d5583fe3e5948264a20ea882de" }, "downloads": -1, "filename": "TracThemeEngine-2.1.3.zip", "has_sig": false, "md5_digest": "36735f49a0983e736f16f4510ab2d41c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 196058, "upload_time": "2013-01-19T21:09:13", "url": "https://files.pythonhosted.org/packages/c5/9f/74cfe2ed91c37b2890860eee29f8ea34b851c77619ef5e0d032687c78a21/TracThemeEngine-2.1.3.zip" } ], "2.1.4": [ { "comment_text": "", "digests": { "md5": "7b24716ac56991cace9e1a8c9099183a", "sha256": "4daacf87b853529617c23d7a6b64a0c4b2fc826280f4bd7056031e1c3afe9103" }, "downloads": -1, "filename": "TracThemeEngine-2.1.4.zip", "has_sig": false, "md5_digest": "7b24716ac56991cace9e1a8c9099183a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 198085, "upload_time": "2013-04-25T17:22:11", "url": "https://files.pythonhosted.org/packages/c2/63/63e2fd7cd47ec451500e6197a72ada828986f16d7babbe7d035f3777e9ea/TracThemeEngine-2.1.4.zip" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "3c90c585474724996afe6c35d8b769e7", "sha256": "05b6ddb4921dfbab8296048a30ffb9ddb198b04e9efa64c799f4c4482b79e1ae" }, "downloads": -1, "filename": "TracThemeEngine-2.2.0.zip", "has_sig": false, "md5_digest": "3c90c585474724996afe6c35d8b769e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 200380, "upload_time": "2013-05-24T01:08:33", "url": "https://files.pythonhosted.org/packages/50/80/5a5a5bb3548ca3ec05d4ed439847f27b3c6eae57c09ba38dd0c201894c7e/TracThemeEngine-2.2.0.zip" } ], "2.2.1": [], "2.2.2": [ { "comment_text": "", "digests": { "md5": "4563c802a1b8689c341597c516167ecf", "sha256": "456b80bd25043723d3a808cd2dc2908937aaa8914a14f47f9736013965be0a8a" }, "downloads": -1, "filename": "TracThemeEngine-2.2.2.tar.gz", "has_sig": false, "md5_digest": "4563c802a1b8689c341597c516167ecf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 205006, "upload_time": "2015-11-03T20:23:23", "url": "https://files.pythonhosted.org/packages/59/2d/42c93228c94e03535cd83ef5d0a378912e0c3c79f5689908a3016d960bdd/TracThemeEngine-2.2.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "446281c220e2dac5161fd66b11dec54f", "sha256": "0a7c70405097b21702b6ad0765dd2f728ec4d9e98fa14e419168eb167181a4ec" }, "downloads": -1, "filename": "TracThemeEngine-2.2.2.zip", "has_sig": false, "md5_digest": "446281c220e2dac5161fd66b11dec54f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 225972, "upload_time": "2015-11-03T20:22:34", "url": "https://files.pythonhosted.org/packages/9b/db/c5615c9e62f4d044d8c472d712da61d7c5523520d1853b5a68bb9be480e4/TracThemeEngine-2.2.2.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4563c802a1b8689c341597c516167ecf", "sha256": "456b80bd25043723d3a808cd2dc2908937aaa8914a14f47f9736013965be0a8a" }, "downloads": -1, "filename": "TracThemeEngine-2.2.2.tar.gz", "has_sig": false, "md5_digest": "4563c802a1b8689c341597c516167ecf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 205006, "upload_time": "2015-11-03T20:23:23", "url": "https://files.pythonhosted.org/packages/59/2d/42c93228c94e03535cd83ef5d0a378912e0c3c79f5689908a3016d960bdd/TracThemeEngine-2.2.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "446281c220e2dac5161fd66b11dec54f", "sha256": "0a7c70405097b21702b6ad0765dd2f728ec4d9e98fa14e419168eb167181a4ec" }, "downloads": -1, "filename": "TracThemeEngine-2.2.2.zip", "has_sig": false, "md5_digest": "446281c220e2dac5161fd66b11dec54f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 225972, "upload_time": "2015-11-03T20:22:34", "url": "https://files.pythonhosted.org/packages/9b/db/c5615c9e62f4d044d8c472d712da61d7c5523520d1853b5a68bb9be480e4/TracThemeEngine-2.2.2.zip" } ] }