{ "info": { "author": "Peter Han (Qitian)", "author_email": "peter@qitian.biz", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: JavaScript", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "martor |pypi version|\n------------------------------\n\n.. |pypi version|\n image:: https://img.shields.io/pypi/v/martor.svg\n :target: https://pypi.python.org/pypi/martor\n\n.. image:: https://img.shields.io/badge/license-GNUGPLv3-blue.svg\n :target: https://raw.githubusercontent.com/agusmakmun/django-markdown-editor/master/LICENSE\n\n.. image:: https://img.shields.io/pypi/pyversions/martor.svg\n :target: https://pypi.python.org/pypi/martor\n\n.. image:: https://img.shields.io/badge/Django-1.8,%201.9,%201.10,%201.11,%202.0,%202.1-green.svg\n :target: https://www.djangoproject.com\n\n.. image:: https://travis-ci.org/agusmakmun/django-markdown-editor.svg?branch=master\n :target: https://travis-ci.org/agusmakmun/django-markdown-editor\n\n**Martor** is Markdown Editor plugin for Django and new face of **DracEditor**.\n\n\nFeatures\n------------------------------\n\n* Live Preview\n* Integrated with `Ace Editor`_\n* Integrated with `Semantic-UI`_\n* Support Multiple Fields (`fixed this issue`_)\n* Upload Image to imgur.com `(via API)` and `custom uploader`_.\n* Direct Mention users ``@[username]`` - `(require user to logged in)`\n* Support embed/iframe video from (Youtube, Vimeo, Dailymotion, Yahoo, Veoh, & Metacafe)\n* Emoji ``:emoji_name:`` + Cheat sheets\n* Martor Commands Refference\n* Support Django Admin\n* Toolbar Buttons\n* Highlight ``pre``\n\n\nPreview\n------------------------------\n\n.. image:: https://raw.githubusercontent.com/agusmakmun/django-markdown-editor/master/__screenshot/martor-preview-editor.png\n\n.. image:: https://raw.githubusercontent.com/agusmakmun/django-markdown-editor/master/__screenshot/martor-preview-result.png\n\n\nRequirements\n------------------------------\n\n* ``Django>=2.0``\n* ``Markdown>=3.0``\n* ``requests>=2.12.4``\n\n\nInstallation\n------------------------------\n\nMartor is available directly from `PyPI`_:\n\n1. Installing the package.\n\n::\n\n $ pip install martor\n\n\n2. Don't forget to add ``'martor'`` to your ``'INSTALLED_APPS'`` setting `(without migrations)`.\n\n::\n\n # settings.py\n INSTALLED_APPS = [\n ....\n 'martor',\n ]\n\n\n3. Add url pattern to your ``urls.py.``\n\n::\n\n # urls.py\n # django >= 2.0\n urlpatterns = [\n ...\n path('martor/', include('martor.urls')),\n ]\n\n # django <= 1.9\n urlpatterns = [\n ...\n url(r'^martor/', include('martor.urls')),\n ]\n\n\n4. Collect included some martor static files to your ``STATIC_ROOT`` folder.\n\n::\n\n ./manage.py collectstatic\n\n\nSetting Configurations ``settings.py``\n---------------------------------------\n\nPlease register application in https://api.imgur.com/oauth2/addclient\nto get ``IMGUR_CLIENT_ID`` and ``IMGUR_API_KEY``.\n\n::\n\n # Global martor settings\n # Input: string boolean, `true/false`\n MARTOR_ENABLE_CONFIGS = {\n 'imgur': 'true', # to enable/disable imgur/custom uploader.\n 'mention': 'false', # to enable/disable mention\n 'jquery': 'true', # to include/revoke jquery (require for admin default django)\n 'living': 'false', # to enable/disable live updates in preview\n }\n\n # To setup the martor editor with label or not (default is False)\n MARTOR_ENABLE_LABEL = False\n\n # Imgur API Keys\n MARTOR_IMGUR_CLIENT_ID = 'your-client-id'\n MARTOR_IMGUR_API_KEY = 'your-api-key'\n\n # Safe Mode\n MARTOR_MARKDOWN_SAFE_MODE = True # default\n\n # Markdownify\n MARTOR_MARKDOWNIFY_FUNCTION = 'martor.utils.markdownify' # default\n MARTOR_MARKDOWNIFY_URL = '/martor/markdownify/' # default\n\n # Markdown extensions (default)\n MARTOR_MARKDOWN_EXTENSIONS = [\n 'markdown.extensions.extra',\n 'markdown.extensions.nl2br',\n 'markdown.extensions.smarty',\n 'markdown.extensions.fenced_code',\n\n # Custom markdown extensions.\n 'martor.extensions.urlize',\n 'martor.extensions.del_ins', # ~~strikethrough~~ and ++underscores++\n 'martor.extensions.mention', # to parse markdown mention\n 'martor.extensions.emoji', # to parse markdown emoji\n 'martor.extensions.mdx_video', # to parse embed/iframe video\n ]\n\n # Markdown Extensions Configs\n MARTOR_MARKDOWN_EXTENSION_CONFIGS = {}\n\n # Markdown urls\n MARTOR_UPLOAD_URL = '/martor/uploader/' # default\n MARTOR_SEARCH_USERS_URL = '/martor/search-user/' # default\n\n # Markdown Extensions\n MARTOR_MARKDOWN_BASE_EMOJI_URL = 'https://assets-cdn.github.com/images/icons/emoji/' # default\n MARTOR_MARKDOWN_BASE_MENTION_URL = 'https://python.web.id/author/' # default (change this)\n\nCheck this setting is not set else csrf will not be sent over ajax calls:\n\n::\n\n CSRF_COOKIE_HTTPONLY = False\n\n\nUsage\n------------------------------\n\n**Model**\n\n::\n\n from django.db import models\n from martor.models import MartorField\n\n class Post(models.Model):\n description = MartorField()\n\n\n**Form**\n\n::\n\n from django import forms\n from martor.fields import MartorFormField\n\n class PostForm(forms.Form):\n description = MartorFormField()\n\n\n**Admin**\n\n::\n\n from django.db import models\n from django.contrib import admin\n\n from martor.widgets import AdminMartorWidget\n\n from yourapp.models import YourModel\n\n class YourModelAdmin(admin.ModelAdmin):\n formfield_overrides = {\n models.TextField: {'widget': AdminMartorWidget},\n }\n\n admin.site.register(YourModel, YourModelAdmin)\n\n\n**Template**\n\nSimply safe the markdown content as html ouput with loading the templatetags from ``martor/templatetags/martortags.py``.\n\n::\n\n {% load martortags %}\n {{ field_name|safe_markdown }}\n\n # example\n {{ post.description|safe_markdown }}\n\n\nCustom Uploader\n-----------------\n\nIf you want to save the images uploaded to your storage,\n**Martor** also provide to handle it. Please checkout this `WIKI`_.\n\nTest the Martor from this Repository\n-------------------------------------\n\nI assume you already setup with virtual enviroment (virtualenv).\n\n::\n\n $ git clone https://github.com/agusmakmun/django-markdown-editor.git\n $ cd django-markdown-editor/ && python setup.py install\n $ cd martor_demo/\n $ python manage.py makemigrations && python manage.py migrate\n $ python manage.py runserver\n\n\nAnd let checkout at http://127.0.0.1:8000/simple-form/ to your browser.\n\n\nMartor Commands Refference\n--------------------------------\n\n.. image:: https://raw.githubusercontent.com/agusmakmun/django-markdown-editor/master/__screenshot/martor-guide.png\n\n\nNotes\n--------------------------------\n\n**Martor** was inspired by great `django-markdownx`_, `Python Markdown`_ and `Online reStructuredText editor`_.\n\n\n.. _Ace Editor: https://ace.c9.io\n.. _Semantic-UI: http://semantic-ui.com\n.. _PyPI: https://pypi.python.org/pypi/martor\n.. _django-markdownx: https://github.com/adi-/django-markdownx\n.. _Python Markdown: https://github.com/waylan/Python-Markdown\n.. _Online reStructuredText editor: http://rst.ninjs.org\n.. _WIKI: https://github.com/agusmakmun/django-markdown-editor/wiki\n.. _fixed this issue: https://github.com/agusmakmun/django-markdown-editor/issues/3\n.. _custom uploader: https://github.com/agusmakmun/django-markdown-editor/wiki\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitee.com/qtch/django-stackedit", "keywords": "stackedit,django markdown,django markdown editor", "license": "GNUGPL-v3", "maintainer": "", "maintainer_email": "", "name": "django-stackedit", "package_url": "https://pypi.org/project/django-stackedit/", "platform": "", "project_url": "https://pypi.org/project/django-stackedit/", "project_urls": { "Homepage": "https://gitee.com/qtch/django-stackedit" }, "release_url": "https://pypi.org/project/django-stackedit/0.0.1/", "requires_dist": [ "Django", "Markdown", "requests", "wheel", "twine" ], "requires_python": "", "summary": "Django Stackedit Markdown Editor", "version": "0.0.1" }, "last_serial": 4849363, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "f600f68d867fb2d20026c3aab450e05c", "sha256": "1f99418716fe42db5dc089cfe29ba4b6b878cbbdec6966e166584b6deb725539" }, "downloads": -1, "filename": "django_stackedit-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f600f68d867fb2d20026c3aab450e05c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33685, "upload_time": "2019-02-21T09:40:32", "url": "https://files.pythonhosted.org/packages/d2/d0/0a4c5d4429e47141b2aae32fc3f728efe276707dfd8d01c4897cfb1e5080/django_stackedit-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5598e43c4a95fa80cc5e77230626bba", "sha256": "beba8576565d057cdfe84166d63997b6ce32ade4302ba021a48c3ad65a3c9bb0" }, "downloads": -1, "filename": "django-stackedit-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a5598e43c4a95fa80cc5e77230626bba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31302, "upload_time": "2019-02-21T09:40:34", "url": "https://files.pythonhosted.org/packages/a3/12/cd458892b66e7b0acbb80459a416cad8bb60eb759056d77a73f4e28c8219/django-stackedit-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f600f68d867fb2d20026c3aab450e05c", "sha256": "1f99418716fe42db5dc089cfe29ba4b6b878cbbdec6966e166584b6deb725539" }, "downloads": -1, "filename": "django_stackedit-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f600f68d867fb2d20026c3aab450e05c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33685, "upload_time": "2019-02-21T09:40:32", "url": "https://files.pythonhosted.org/packages/d2/d0/0a4c5d4429e47141b2aae32fc3f728efe276707dfd8d01c4897cfb1e5080/django_stackedit-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5598e43c4a95fa80cc5e77230626bba", "sha256": "beba8576565d057cdfe84166d63997b6ce32ade4302ba021a48c3ad65a3c9bb0" }, "downloads": -1, "filename": "django-stackedit-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a5598e43c4a95fa80cc5e77230626bba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31302, "upload_time": "2019-02-21T09:40:34", "url": "https://files.pythonhosted.org/packages/a3/12/cd458892b66e7b0acbb80459a416cad8bb60eb759056d77a73f4e28c8219/django-stackedit-0.0.1.tar.gz" } ] }