{ "info": { "author": "Bob Donahue", "author_email": "bob_donahue@wgbh.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT 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.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "# 1.0. Stackable Plugins\n\nStackable Plugins are a set of Django CMS plugins to make it easy for content managers to build somewhat custom pages.\n\nThey fall into two broad categories:\n\n1. Page Framework plugins - where you can create grids of content;\n2. Custom Function plugins - these are a loose library of plugins that were created for past projects.\n\n## 1.1. Features\n\n1. Each plugin has one or more renderers. This allows the content to be rendered/displayed in different ways. For example a generic list that contains callouts with an image, title, and short description, can be rendered as a list, in a grid, in a slideshow, or in a carousel (or in any other way your designer might dream up!), but the *content* is the same. You can switch between renderers on the fly!\n\n2. You can add renderers to any plugin.\n\n3. Some plugins (like the Generic Container) can have children plugins. \n\n\n## 1.2. Quick start\n\n1. Install and set up Django CMS\n\n2. Add \"stackable_plugins\" to your INSTALLED_APPS setting like this::\n\n ```\n INSTALLED_APPS = [\n ...\n 'stackable_plugins',\n ]\n ```\n\n3. Run `manage.py migrate stackable_plugins`\n\n# 2.0 The Plugins\n\n## 2.1. Page Framework Plugins\n\nThese allow you to \"frame out\" the content within a page's placeholder.\n\n### 2.1.1. GenericContainerPlugin\n\nFundamentally, this is just a box of other plugins. It's a way to segregate content on the page when you need that content treated as a group.\n\n### 2.1.2. GenericListPlugin\n\nThis is a wrapper for a list of curated content. The items in the List do NOT have to be of the same type: you can create a list with an Image, a Video, then a blob of text, then another Video, then a List within the List, etc.\n\n### 2.1.3. GenericSeparatorPlugin\n\nThis is a way to make fancy content separators (the most generic of which is the `
` tag).\n\nTypically this is used with a separator image.\n\n### 2.1.4. GenericButtonPlugin\n\nWhy have a link when you can have a button?\n\nThese are very customizable! \n\n* Links can be External or Internal OR to a File (e.g., a PDF File);\n* The link target can be to a new window, etc.;\n* You can use any custom CSS class to render the generic button;\n* You can set attibutes on the button (colors, etc.)\n\n## 2.2. Content Plugins\n\nThese plugins have more structured content but have somewhat generic functions: e.g., a video player that can be used for YouTube, PBSMM, Vimeo, etc.\n\n### 2.2.1. ImageWithThumbnailPlugin\n\nThis plugin has an Image plus additional commonly-used metadata:\n\n* main image (with height and width)\n* thumbnail image (with height and width)\n* caption text (can be HTML content)\n* credit/copyright text\n\nNote that the thumbnail image and the main image do not have to be the same (i.e., that the thumbnail is just a resized version of the main image).\n\n### 2.2.2. HostedVideoPlugin\n\nThis is a generic video container. Each video is attached to a HostService (e.g., YouTube, Vimeo, etc.) and has a unique ID at that service, plus additional metadata:\n\n* Title\n* Duration\n* Description\n\n## 2.3. Really Special Plugins\n\nThese plugins were created for past projects.\n\n### 2.3.1. BiographyPlugin\n\nBiography container with headshot, byline, and bio.\n\n### 2.3.2. CountdownClockPlugin\n\nDisplays the time until a future date/time.\n\nFields available:\n\n* t_minus = time as a `datetime.timedelta` (days, seconds, microseconds)\n* total_seconds = \"How many seconds are left?\"\n* in_the_past = \"are we past the deadline\"\n* t_minus_days, t_minus_hours, t_minus_minutes, t_minus_seconds = the time left so you can format is as 3d 14h 32m 06s if you wanted to\n* unixtime = the countdown \"zero point\" expressed as a UNIXTIME (e.g., 1550762809) - useful for some Javascript libraries (see below).\n* unixtime_now = the time of the page load as a UNIXTIME\n\nNote that this plugin does NOT include the functionality to provide a real-time counting down. For that you'd need to install a Javascript library and create a custom renderer (see below) to run it, using some of the fields above to \"seed\" it. (There are several different JS libraries for this out there.)\n\n\n### 2.3.3. CompareTwoThingsPlugin\n\nThis basically allows for a side-by-side comparison of two things, e.g., \"Let's Compare Wolverine vs. Cyclops\".\n\n# 3.0. Customization - Adding Renderers\n\nYou can create your own renderers for any of these plugins.\n\nIn your `settings.py` file, you need to add the `ADDITIONAL_PLUGIN_RENDERER_TEMPLATES` dict. It has the following format:\n\n```\nADDITIONAL_PLUGIN_RENDERER_TEMPLATES = {\n 'GenericButtonPlugin':\n [\n ( 'my_special_button',\n 'Special Button',\n 'foo_templates/special_button.html',\n 'Use this renderer if you want things to be REALLY special.'\n ),\n ],\n}\n```\n\nEach key in `ADDITIONAL_PLUGIN_RENDERER_TEMPLATES` is one of the custom plugins. The value is a list of tuples, each of which is a renderer for that plugin. So you can create as many as you'd like.\n\nThe tuple has 4 items:\n\n1. The slug for the renderer;\n2. The title (shown on the renderer dropdown when you're using the plugin);\n3. The location of the rendering template;\n4. Some descriptive help text about how this renderer works.\n\nAt present you can't remove any of the built-in renderers.\n\n# Testing\n\nTBD.\n\n# Troubleshooting\n\nTBD.\n\n# Features still to be integrated\n\nTBD.\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/wgbh/django-stackable-plugins/", "keywords": "", "license": "MIT License, see LICENSE", "maintainer": "", "maintainer_email": "", "name": "djangocms-stackable-plugins", "package_url": "https://pypi.org/project/djangocms-stackable-plugins/", "platform": "", "project_url": "https://pypi.org/project/djangocms-stackable-plugins/", "project_urls": { "Homepage": "http://github.com/wgbh/django-stackable-plugins/" }, "release_url": "https://pypi.org/project/djangocms-stackable-plugins/0.3/", "requires_dist": [ "pytz", "djangocms-attributes-field", "django-colorfield" ], "requires_python": "", "summary": "DjangoCMS plugins designed for content producers.", "version": "0.3" }, "last_serial": 5907632, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "07420ad42e510e38d7fd9ef3bbf0bdae", "sha256": "c6bc323f044b006a4f6c91c1ab3ad0fe1f4abf7091129884033a03b533704004" }, "downloads": -1, "filename": "djangocms-stackable-plugins-0.1.tar.gz", "has_sig": false, "md5_digest": "07420ad42e510e38d7fd9ef3bbf0bdae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13297, "upload_time": "2019-02-11T16:08:42", "url": "https://files.pythonhosted.org/packages/72/e8/f94330e84d482778b2455ee97d50af67c2825fe8c785ad9f6a2c665d0623/djangocms-stackable-plugins-0.1.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "7b087d1dc69f13508a2702183c0ad81f", "sha256": "2cbbf0743dfa988644ae5e2f2f32da124ae67fa132d8b4890e11fe3e8f18053d" }, "downloads": -1, "filename": "djangocms-stackable-plugins-0.2.1.tar.gz", "has_sig": false, "md5_digest": "7b087d1dc69f13508a2702183c0ad81f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10988, "upload_time": "2019-07-24T13:40:55", "url": "https://files.pythonhosted.org/packages/6b/83/f12087c1755bac200640d6543bd598d4bf844f7bbc94449b628ac1b57d0a/djangocms-stackable-plugins-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "547906587cc26e6a69d0469118c6999a", "sha256": "586873161626d4551cc89f6f3e3fe15335a906b072576cea713a610d0680968a" }, "downloads": -1, "filename": "djangocms_stackable_plugins-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "547906587cc26e6a69d0469118c6999a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14770, "upload_time": "2019-07-25T13:12:17", "url": "https://files.pythonhosted.org/packages/eb/26/983185566c945db88b3910273543c1fb36f06e6b8905d0ac6b2d37635502/djangocms_stackable_plugins-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0bc05cc4d6548f21c3ab5a3414e148da", "sha256": "771630d179aeed6a870dd8f2927c24493313ab1292e0496eb5552093e593525c" }, "downloads": -1, "filename": "djangocms-stackable-plugins-0.2.2.tar.gz", "has_sig": false, "md5_digest": "0bc05cc4d6548f21c3ab5a3414e148da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10972, "upload_time": "2019-07-25T13:12:19", "url": "https://files.pythonhosted.org/packages/57/69/13f96027b549f2da8ce22a88b6c4f8b4ee99e00aa8f4c91cc0a04c39e185/djangocms-stackable-plugins-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "85c7659816bf3cc94a2fe60229da773d", "sha256": "f4bd1754a73100876cf672cedb514b6804947ae8d61605f930dddfd9929d8751" }, "downloads": -1, "filename": "djangocms_stackable_plugins-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "85c7659816bf3cc94a2fe60229da773d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14782, "upload_time": "2019-07-25T13:22:08", "url": "https://files.pythonhosted.org/packages/58/44/4e5a1aed4059333e18177fa1724aa223de0354ab2daf447a306a0e2526be/djangocms_stackable_plugins-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e27aa9efc1c2f69e0c5563161ea88464", "sha256": "e99fcd355b7a80693f7350669bd78f712a23390a02013264bde00d6279aabe94" }, "downloads": -1, "filename": "djangocms-stackable-plugins-0.2.3.tar.gz", "has_sig": false, "md5_digest": "e27aa9efc1c2f69e0c5563161ea88464", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10986, "upload_time": "2019-07-25T13:22:09", "url": "https://files.pythonhosted.org/packages/3a/26/14f36903c152c0f38dccdb1b01444bc68ea39b64f348244104c8d5d25617/djangocms-stackable-plugins-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "b3bca09038b2f7cc3554b2eb8a447eda", "sha256": "3e60106f0dab32a3a61285ba23339f89c09c10add23b2cc6b09438e25285c08f" }, "downloads": -1, "filename": "djangocms_stackable_plugins-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b3bca09038b2f7cc3554b2eb8a447eda", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14783, "upload_time": "2019-07-25T13:29:25", "url": "https://files.pythonhosted.org/packages/9a/f4/84bded307fbc20ec9155a5953736f79e7a2047fa4b7d2371854e1bf39c30/djangocms_stackable_plugins-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3cb6f26398b3a8b10b01f12c2e85cdd8", "sha256": "7ae153a4a636ceae3113744011da0ac9887af02680a3ecd6ab322b7003b1003e" }, "downloads": -1, "filename": "djangocms-stackable-plugins-0.2.4.tar.gz", "has_sig": false, "md5_digest": "3cb6f26398b3a8b10b01f12c2e85cdd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10981, "upload_time": "2019-07-25T13:29:26", "url": "https://files.pythonhosted.org/packages/00/4f/92af6e02c631923455e0c1fd3951e008ce4d03d13eafdcf5c050689f4fda/djangocms-stackable-plugins-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "5a849e99c6e98e738e2d7fd45855d3f9", "sha256": "d08fdc219825b23d6e948e1058c3e8b6dd577ef62e67ca3664e706a0c3280c55" }, "downloads": -1, "filename": "djangocms_stackable_plugins-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5a849e99c6e98e738e2d7fd45855d3f9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14789, "upload_time": "2019-07-25T13:46:26", "url": "https://files.pythonhosted.org/packages/2f/85/50408d26ceb53163320a73a2321eebd8a2fc54f92ddcfb5644ddb09d5c09/djangocms_stackable_plugins-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da60a7e7699670a7323d7bfb77822b74", "sha256": "b21c593c706f549c3835013c12c6a65de202d51ea6e0b7289b8a4016c7e55ac5" }, "downloads": -1, "filename": "djangocms-stackable-plugins-0.2.5.tar.gz", "has_sig": false, "md5_digest": "da60a7e7699670a7323d7bfb77822b74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10987, "upload_time": "2019-07-25T13:46:28", "url": "https://files.pythonhosted.org/packages/f7/d3/6a84033926b9a835dea84498982cba69c9dbb51001a1a47361dfcf2d5e33/djangocms-stackable-plugins-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "d6f7931950c71de7442c4fd24d382e11", "sha256": "2788edbca2311e52611e4a77ffa450f067d27c7fdcfdc79229b37da48b057998" }, "downloads": -1, "filename": "djangocms_stackable_plugins-0.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d6f7931950c71de7442c4fd24d382e11", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14789, "upload_time": "2019-09-30T12:11:44", "url": "https://files.pythonhosted.org/packages/8f/c6/be4993abb8df0b484e7dde33ab632d2911b17075c830c4be7c916e5ea6f0/djangocms_stackable_plugins-0.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f324023872aaf4c73075a02323ae6bd", "sha256": "1eb9c8f32c86e2ab7e9c4945f54aeb53b6609576d713d1b0cd34697e8ee1ca5f" }, "downloads": -1, "filename": "djangocms-stackable-plugins-0.2.6.tar.gz", "has_sig": false, "md5_digest": "8f324023872aaf4c73075a02323ae6bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10994, "upload_time": "2019-09-30T12:11:45", "url": "https://files.pythonhosted.org/packages/e2/e2/0b58d33cb00c25d0100f251b01f02b6c9440f46af74f1802cc65490dac72/djangocms-stackable-plugins-0.2.6.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "183f99a28b536948ac4c1f7533f627f0", "sha256": "12a255e4c205d75da1f262f6298fbe96d7eb2108f1fa0f2232515db49d10d6a9" }, "downloads": -1, "filename": "djangocms_stackable_plugins-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "183f99a28b536948ac4c1f7533f627f0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25097, "upload_time": "2019-09-30T15:45:57", "url": "https://files.pythonhosted.org/packages/d5/b1/1f210cccfcf43f36633fc7ee73b29dc3846dc8da9dde34c65fe819d74626/djangocms_stackable_plugins-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ad2aa85a401448aae611e50a1de8384", "sha256": "c61fa3de46ffa77ad55f6a16bdbeede17b125fe3d7e3545141a63a77e7514029" }, "downloads": -1, "filename": "djangocms-stackable-plugins-0.3.tar.gz", "has_sig": false, "md5_digest": "9ad2aa85a401448aae611e50a1de8384", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16523, "upload_time": "2019-09-30T15:45:58", "url": "https://files.pythonhosted.org/packages/b2/e4/31f6bc316c3259ec4c97e90dee77fbd65b63e1efb9658184ec17b06b3579/djangocms-stackable-plugins-0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "183f99a28b536948ac4c1f7533f627f0", "sha256": "12a255e4c205d75da1f262f6298fbe96d7eb2108f1fa0f2232515db49d10d6a9" }, "downloads": -1, "filename": "djangocms_stackable_plugins-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "183f99a28b536948ac4c1f7533f627f0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25097, "upload_time": "2019-09-30T15:45:57", "url": "https://files.pythonhosted.org/packages/d5/b1/1f210cccfcf43f36633fc7ee73b29dc3846dc8da9dde34c65fe819d74626/djangocms_stackable_plugins-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ad2aa85a401448aae611e50a1de8384", "sha256": "c61fa3de46ffa77ad55f6a16bdbeede17b125fe3d7e3545141a63a77e7514029" }, "downloads": -1, "filename": "djangocms-stackable-plugins-0.3.tar.gz", "has_sig": false, "md5_digest": "9ad2aa85a401448aae611e50a1de8384", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16523, "upload_time": "2019-09-30T15:45:58", "url": "https://files.pythonhosted.org/packages/b2/e4/31f6bc316c3259ec4c97e90dee77fbd65b63e1efb9658184ec17b06b3579/djangocms-stackable-plugins-0.3.tar.gz" } ] }