{ "info": { "author": "Luke Plant", "author_email": "L.Plant.98@cantab.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "Semantic Editor\n===============\n\nSemantic Editor is a `Django CMS `_ plugin for\ntext editing. It allows you to edit the content of a page in a semantic\nway, and then assign presentation and layout details to each section of the\ntext. It supports complex column layouts using a simple set of controls\n(new row, new column).\n\nCSS classes are stored in the database, and can be limited to certain elements\n(p, ul, li etc) and to certain templates.\n\nThis project is used as part of Arkestra by Cardiff University School of\nMedicine, who conceived of the system.\n\nScreen shots can be found at https://bitbucket.org/spookylukey/semanticeditor/wiki/Home\n\nInstallation\n------------\n\nSee the installation instructions in INSTALL.rst\n\nUsage\n-----\n\nAfter installation, when editing a page in Django-CMS you will have a plugin\ntype called 'Text/layout'. Choose this type of plugin and you will see an\nenhanced text editor, based on WYMeditor. Down the right hand side you will see\n'commands' and 'classes', as well the 'containers' that are provided by\nWYMeditor.\n\nThe list of commands is built in to Semantic Editor, and allows columnar layouts\nto be generated using simple commands like 'New row' and 'New column'. The\n'preview' button allows you to test the layout that will be generated.\n\nFor the layout to work on your live site, you will need to include CSS in the\nstylesheets that will correctly format the div structure into a set of columns.\nSome basic CSS to start with is as follows::\n\n .row { clear: left; }\n .row .column { float: left; }\n .columns1 .column { width: 100%; }\n .columns2 .column { width: 50%; }\n .columns3 .column { width: 33%; }\n .columns4 .column { width: 25%; }\n .columns5 .column { width: 20%; }\n .columns6 .column { width: 16%; }\n\nThe list CSS classes that appear down the right hand side of the editor is\ndefined in the database. You can use the Django admin to add and edit the\n'CssClass' objects and assign them to the different templates. You will have to\nadd the corresponding CSS to your stylesheets to actually provide the styling\nfor these classes.\n\nWith the CssClass objects, there is support for styles which can be applied to\ncolumns to make them take up more than one column. For example, you might define\na style 'doublewidth', and set the 'Column count equivalent' to '2', and\nensuring that 'Allowed HTML elements' contained 'newcol'. You might then, for\nexample, add 3 columns to a layout by using the 'New column' command in the\neditor. If you highlight the first column, you will be able to apply the\n'doublewidth' class. In the generated output, the columns will be in a div with\n'columns4' applied (not 'columns3'), and the first column will have\n'doublewidth' applied. With appropriate CSS, you can now create a double width\ncolumn.\n\nInternals - overview\n--------------------\n\nThe aim is to have an editor in which content is edited semantically, and both\ncolumn layout and styling are applied separately. However, in the database only\nthe combined HTML is stored. So, we have the following situation:\n\nHTML content is stored in the database something like::\n\n
\n
\n

Heading

\n

Some text

\n
\n
\n

Some more text

\n
\n
\n\nThis is loaded into a custom editor in the browser which then immediately does\nsome AJAX calls to the server to decompose it into simplified HTML::\n\n

Heading

\n

Some text

\n

Some more text

\n\nand an array of objects specifying presentation e.g.::\n\n [\n {'h1_1': ['fancy']}, # styles for the H1\n {'p_1': ['note', 'bordered']}, # styles for the P\n {'newrow_h1_1': [] }, # specifies row before h1_1\n {'newcol_p_2': ['doublewidth'] }, # specifier col before p_2\n # and styles for whole column\n ]\n\nThese two parts are then edited separately, i.e. the user does not see the\ncombined HTML while editing. Before saving to the database, the editor does an\nAJAX call to combine the two parts. Note the use of the 'id' attributes are\nadded to help identify what the styling information belongs to -- these will be\nremoved before saving in the database.\n\nInternals - WYMeditor extensions\n--------------------------------\n\nThe Semantic Editor application provides its own version of WYMeditor. This\nis derived from the skins/templates found in django-cms2, with the following\ncustomisations:\n\n- name of the skin changed from 'django' to 'semanticeditor'. This is\n necessary if we are to allow two different versions of WYMeditor on the\n same page, one using the normal WYMeditor + CMS controls, another with\n the full 'semantic editor' controls, for longer pieces of content.\n\n- The skin.js file removes the 'classes' panel, since this is not needed\n and is replaced by dynamic elements.\n\n- skins.css - added styling for additional presentation controls\n\n- a WYMeditor plugin named 'semantic' has been added. This implements\n most of the client side logic for this application.\n\n- the editorwidget.html template has been changed. In particular:\n\n - the skin has been changed to 'semanticeditor'\n - a call to wymeditor.semantic() has been added to set up the plugin.\n\n- a new django widget 'SemanticEditor' has been created that inherits from\n the django 'WYMEditor' widget in django-cms2. This is needed so that:\n\n - the WYMeditor 'semantic' plugin javascript file can be added to Media\n - our editorwdiget.html template can be used.\n\n\n\nVersion 0.3\n-----------\n* Compatibility with django-cms 2.3 and 2.4\n* Grouping of CSS classes by category\n* Button to open editor in new tab\n* UI improvements\n* Fixed typo that caused complete failure of semantic plugin under jQuery 1.4.2\n* Other bug fixes\n\nVersion 0.2.1\n-------------\n\n* Fixed packaging bug (no templates or static media)\n\nVersion 0.2\n-----------\n\n* 'inner row' and 'inner column' commands\n* Added ability to group CSS classes by category\n* Compatibility with Django 1.3 and django-cms 2.1.3\n* Lots of bug fixes and refinements\n\n\nVersion 0.1\n-----------\n\nInitial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/spookylukey/semanticeditor/", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "semanticeditor", "package_url": "https://pypi.org/project/semanticeditor/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/semanticeditor/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/spookylukey/semanticeditor/" }, "release_url": "https://pypi.org/project/semanticeditor/0.3/", "requires_dist": null, "requires_python": null, "summary": "A Django CMS plugin for editing text with presentation and layout in a semantic way.", "version": "0.3" }, "last_serial": 704543, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "b731151047050a62a18a047b26710b52", "sha256": "43c48dea901dc11945909605281e1d6e3cc42e0fc2205fb438e1a47b51736f56" }, "downloads": -1, "filename": "semanticeditor-0.1.tar.gz", "has_sig": false, "md5_digest": "b731151047050a62a18a047b26710b52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77465, "upload_time": "2010-09-30T01:44:23", "url": "https://files.pythonhosted.org/packages/05/db/d106aa1665aec170ac940fd10cd4d048dd1025b445311680696c258a77ca/semanticeditor-0.1.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "69021b0dcc96b0d7eb4dd74d8ec39db9", "sha256": "da7a922ae2d6cedd4aa8f1932c5ef3e67b6a6a0553e51752062ae58207cf7b64" }, "downloads": -1, "filename": "semanticeditor-0.2.1.tar.gz", "has_sig": false, "md5_digest": "69021b0dcc96b0d7eb4dd74d8ec39db9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82602, "upload_time": "2011-06-14T21:25:17", "url": "https://files.pythonhosted.org/packages/83/59/bdd970e0262f22d3b2428a106cfde5a7e6ccad5d6928b3a1ee97fd4c6057/semanticeditor-0.2.1.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "450a3c0daf7f987e93304927120b94c4", "sha256": "d217762002971038c0ea1773b3b72fe5d322b5ececdbb9dc2c1e65b07bce7d6a" }, "downloads": -1, "filename": "semanticeditor-0.3.tar.gz", "has_sig": false, "md5_digest": "450a3c0daf7f987e93304927120b94c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100891, "upload_time": "2013-03-25T14:39:15", "url": "https://files.pythonhosted.org/packages/35/7e/c8280d01f2e672e5119ff5d22d045e47c22f73db4350a912132a11908b91/semanticeditor-0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "450a3c0daf7f987e93304927120b94c4", "sha256": "d217762002971038c0ea1773b3b72fe5d322b5ececdbb9dc2c1e65b07bce7d6a" }, "downloads": -1, "filename": "semanticeditor-0.3.tar.gz", "has_sig": false, "md5_digest": "450a3c0daf7f987e93304927120b94c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100891, "upload_time": "2013-03-25T14:39:15", "url": "https://files.pythonhosted.org/packages/35/7e/c8280d01f2e672e5119ff5d22d045e47c22f73db4350a912132a11908b91/semanticeditor-0.3.tar.gz" } ] }