{ "info": { "author": "Canonical webteam", "author_email": "webteam@canonical.com", "bugtrack_url": null, "classifiers": [], "description": "canonicalwebteam.django\\_views\n==============================\n\n|CircleCI build status| |Code coverage|\n\nViews for Django apps, primarily for use in Webteam Django apps.\n\nInstallation\n------------\n\nYou can install this module directly with\n``pip install canonicalwebteam.django_views``, or alternatively, include\n``canonicalwebteam.django_views`` in ``requirements.txt`` for your app.\n\nTemplateFinder\n--------------\n\n``TemplateFinder`` is an extension of ``TemplateView`` which attempts to\nload the corresponding templates directly from URLs, without the need to\nwrite a view for each URL.\n\nIt can load HTML templates directly, or parse Markdown files that\ncontain a \"wrapper\\_template\" frontmatter key.\n\nUsage\n~~~~~\n\nHere's an example of how to make use of ``TemplateFinder`` in your\nDjango app:\n\n.. code:: python\n\n # urls.py\n from django.conf.urls import url\n from canonicalwebteam.django_views import TemplateFinder\n # ...\n urlpatterns += url(r\"$^\", TemplateFinder.as_view()),\n\nTemplate matching\n~~~~~~~~~~~~~~~~~\n\nWhen the app parses a URL, it will look for templates in the following\nlocations, in order:\n\n- ``/parent/location/`` =>\n ``templates/parent/location.html``\n- ``/parent/location/`` =>\n ``templates/parent/location/index.html``\n- ``/parent/location/`` =>\n ``templates/parent/location.md``\n- ``/parent/location/`` =>\n ``templates/parent/location/index.md``\n\nMarkdown parsing\n~~~~~~~~~~~~~~~~\n\nIf the ``TemplateFinder`` encounters a Markdown file (ending ``.md``) it\nwill look for the following keys in `YAML\nfrontmatter `__:\n\n- ``wrapper_template`` *mandatory*: (e.g.:\n ``wrapper_template: /includes/markdown-wrapper.html``) A path to an\n HTML template within which to place the parsed markdown content. If\n the path doesn't have a leading slash (e.g. \"templates/template.html\"\n or \"../templates/template.html\"), then ``TemplateFinder`` will search\n for the template relative to the location of the Markdown file in\n question. If the path\n- ``context`` *optional*: (e.g.:\n ``context: {title: \"Welcome\", description: \"A welcome page\"}``) A\n dictionary of extra key / value pairs to pass through to the template\n context.\n- ``markdown_includes`` *optional*: (e.g.:\n ``markdown_includes: {nav: }``) A mapping of key names to template\n paths pointing to Markdown files to include. Each template path will\n be parsed, the resulting HTML will be passed in the template context,\n under the relevant key.\n\nHere's an example Markdown file:\n\n.. code::\n\n ---\n wrapper_template: \"/includes/markdown-wrapper.html\"\n markdown_includes:\n nav: \"includes/nav.md\"\n context:\n title: \"Welcome\"\n description: \"A welcome page\"\n ---\n\n Welcome to my website.\n\n ## GitHub\n\n I also have [a GitHub page](https://github.com/me).\n\n.. |CircleCI build status| image:: https://circleci.com/gh/canonical-web-and-design/canonicalwebteam.django-views.svg?style=shield\n :target: https://circleci.com/gh/canonical-web-and-design/django-views\n.. |Code coverage| image:: https://codecov.io/gh/canonical-web-and-design/canonicalwebteam.django-views/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/canonical-web-and-design/django-views", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/canonicalwebteam/django_views", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "canonicalwebteam.django-views", "package_url": "https://pypi.org/project/canonicalwebteam.django-views/", "platform": "", "project_url": "https://pypi.org/project/canonicalwebteam.django-views/", "project_urls": { "Homepage": "https://github.com/canonicalwebteam/django_views" }, "release_url": "https://pypi.org/project/canonicalwebteam.django-views/1.4.0/", "requires_dist": null, "requires_python": "", "summary": "Shared Django views for use in Webteam apps", "version": "1.4.0" }, "last_serial": 5715871, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "0405209b91517b1a3d51f1c1fc862ba7", "sha256": "7c712d5c685751c09b0aa08947598d570e4f7ef294e7887e1b59d5591cf2f64f" }, "downloads": -1, "filename": "canonicalwebteam.django_views-1.0.0.tar.gz", "has_sig": false, "md5_digest": "0405209b91517b1a3d51f1c1fc862ba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3836, "upload_time": "2018-11-13T13:58:19", "url": "https://files.pythonhosted.org/packages/10/90/bd885186088d11941e12793ad29cd52e7eef1d10706de505a1b66a6c965b/canonicalwebteam.django_views-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "d9b82d28d23d894d31a22f4fba77b8bf", "sha256": "8ad5f331f692e1cdb82dc5327308a0b437626747251cbf88f33d4ba02476ff44" }, "downloads": -1, "filename": "canonicalwebteam.django_views-1.1.0.tar.gz", "has_sig": false, "md5_digest": "d9b82d28d23d894d31a22f4fba77b8bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3863, "upload_time": "2018-11-13T17:53:41", "url": "https://files.pythonhosted.org/packages/36/e9/8c743e2034d9325d642904cdc82f572f225384b9036e3212c46b870aadc3/canonicalwebteam.django_views-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "371558a51e5677d849a4deecc3339484", "sha256": "05d5af200a0fce64ae9e00b28e41c859378517b7df831c8c75506b1f28c01e96" }, "downloads": -1, "filename": "canonicalwebteam.django_views-1.1.1.tar.gz", "has_sig": false, "md5_digest": "371558a51e5677d849a4deecc3339484", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3857, "upload_time": "2018-11-13T17:58:02", "url": "https://files.pythonhosted.org/packages/60/ae/484554a43aac96c936c909a57deca0449b012a94a4227ffa7691860732fe/canonicalwebteam.django_views-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "b9d2ec698441dead0c3a4e8cc16d6b24", "sha256": "a63468fa98e3fed90a72ccc035ec7b28d225bb4c82ceb439238f107b7a61d587" }, "downloads": -1, "filename": "canonicalwebteam.django_views-1.2.0.tar.gz", "has_sig": false, "md5_digest": "b9d2ec698441dead0c3a4e8cc16d6b24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3978, "upload_time": "2018-11-20T10:39:53", "url": "https://files.pythonhosted.org/packages/f4/fb/bb3c72f23706b4743e9aca6766517e97a90915b14c97bb43ff4a47611c7a/canonicalwebteam.django_views-1.2.0.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "8f2e71052925c9eb7ca4e1dd7b938493", "sha256": "fe1d90d76ede9484ebccf111cbdd7888fca74fa829b50c7686eb386ddc165d6b" }, "downloads": -1, "filename": "canonicalwebteam.django_views-1.3.2.tar.gz", "has_sig": false, "md5_digest": "8f2e71052925c9eb7ca4e1dd7b938493", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5907, "upload_time": "2018-12-06T12:44:58", "url": "https://files.pythonhosted.org/packages/07/1f/f464abdb6b7a31237fd6095a1db5dbf6ed8a6a3c5848b45050bedaa64fc5/canonicalwebteam.django_views-1.3.2.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "ed4c7e421a24f858e52a31fac57c0569", "sha256": "0d8c7c925cb10cc9aec299e367bec2889232067bed85fa8838ce78adfea107fa" }, "downloads": -1, "filename": "canonicalwebteam.django_views-1.3.3.tar.gz", "has_sig": false, "md5_digest": "ed4c7e421a24f858e52a31fac57c0569", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6030, "upload_time": "2018-12-19T12:03:27", "url": "https://files.pythonhosted.org/packages/05/1e/44588831ae28db36824ccdc7c30647c4911b8081ed98ee84b374dc50c411/canonicalwebteam.django_views-1.3.3.tar.gz" } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "5325c1effaf67eb149b781a17380e357", "sha256": "a9634d6b668938d1da9e3ca8a64975cc2319871ec06e6fb37b1dd141cbff520f" }, "downloads": -1, "filename": "canonicalwebteam.django_views-1.3.4.tar.gz", "has_sig": false, "md5_digest": "5325c1effaf67eb149b781a17380e357", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6160, "upload_time": "2019-02-07T21:55:37", "url": "https://files.pythonhosted.org/packages/72/39/25a2b8759e8e777d8a9be2e1080d72fdc9e4a79818e0370a46dcdeb0af52/canonicalwebteam.django_views-1.3.4.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "aa75c94b5ac0e1bc7e8c72c2e075f054", "sha256": "1153a639dbfd4d2e4b51ebc538906c63ab7c9d8b175a93178c869e1f6ee539d8" }, "downloads": -1, "filename": "canonicalwebteam.django_views-1.4.0.tar.gz", "has_sig": false, "md5_digest": "aa75c94b5ac0e1bc7e8c72c2e075f054", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6192, "upload_time": "2019-08-22T15:36:47", "url": "https://files.pythonhosted.org/packages/1a/41/6f672edbaca14ea2da1bc3a3d0e392c7cc5fd972964af88198f5460f075d/canonicalwebteam.django_views-1.4.0.tar.gz" } ], "1.4.0a1": [ { "comment_text": "", "digests": { "md5": "02d5c12dcb0c0e3b1749744fedad93f9", "sha256": "5192155d4bb55e1ea96b81415cb5e7acc310f9674a71deefc9d6426a8f4dd96f" }, "downloads": -1, "filename": "canonicalwebteam.django_views-1.4.0a1.tar.gz", "has_sig": false, "md5_digest": "02d5c12dcb0c0e3b1749744fedad93f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6216, "upload_time": "2019-08-21T22:07:11", "url": "https://files.pythonhosted.org/packages/b1/9c/b687bd6f911c309b83a1c0b6ec25c14efd69cbe033083370afc4e8ea4cdf/canonicalwebteam.django_views-1.4.0a1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aa75c94b5ac0e1bc7e8c72c2e075f054", "sha256": "1153a639dbfd4d2e4b51ebc538906c63ab7c9d8b175a93178c869e1f6ee539d8" }, "downloads": -1, "filename": "canonicalwebteam.django_views-1.4.0.tar.gz", "has_sig": false, "md5_digest": "aa75c94b5ac0e1bc7e8c72c2e075f054", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6192, "upload_time": "2019-08-22T15:36:47", "url": "https://files.pythonhosted.org/packages/1a/41/6f672edbaca14ea2da1bc3a3d0e392c7cc5fd972964af88198f5460f075d/canonicalwebteam.django_views-1.4.0.tar.gz" } ] }