Socket
Book a DemoInstallSign in
Socket

cmsplugin-markdownx

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cmsplugin-markdownx

A plugin for django-cms that wraps django-markdownx, enabling WYSIWYG editing of markdown fields.

0.1.3
pipPyPI
Maintainers
1

To quote Richard Stallman, lo these many years ago, "What you see is what you get" == ""What you see is all there is!". This plugin does not replace the standard CMS text plugin, it is a new plugin class, Markdown.

Home-page: https://github.com/bobhy/cmsplugin-markdownx Author: Bob Hyman Author-email: bob.hyman@bobssoftwareworks.com License: MIT License Description: Shims the estimable django-markdownx into the venerable django-cms. Provides a Markdown plugin for Django-cms which stores content in markdown but displays as HTML. We consider it an advantage that the rendering is all done server-side, that ensures the editing preview looks just like the final result in case we do preprocessing enhancements for the markdown dialect.

    * [Quick Start](#quick-start)
    * [Usage](#usage)
    * [Customization](#customization)
    * [Dependencies](#dependencies)
    * [License](#license)
    * [Changelog](#changelog)
    
    
    # Quick Start
    
    1. Install prerequisites, then `cmsmarkdown-markdownx` package.
    
        ```bash
        pip install django-markdownx
        pip install cmsmarkdown-markdownx
    
    1. Add `cmsplugin_markdownx` to your `INSTALLED_APPS`.
    
        ```python
        #settings.py
        INSTALLED_APPS = (
            ...
            'markdownx',
            'cmsplugin_markdownx',
        )
        ```
    
    1. Refer to [#customization] for additional settings you probably want to use.
    
    1. Add django-markdownx`s urls: (*not* in `il8n_patterns()`)
    
       ```python
       #urls.py
       urlpatterns = [
       [...]
       url(r'^markdownx/', include('markdownx.urls')),
       ]```
    
    1. Collect included templates and statics to your `STATIC_ROOT` folder.
    
        ```bash
        python manage.py collectstatic
        ```
    
    # Usage
    
    1. in CMS, edit a page with a placeholder.
    1. Add a `Markdown` plugin
    1. As you type, the preview window is updated (thank you @django-markdownx)
    
    From the 'frontend' view, you can update the plugin content.
    
    1. Be sure you're logged into CMS, with adequate privilees.
    1. Browse to a page containing Markdown
    1. Double-click on the section of the page containing the Markdown plugin.
    
    
    # Customization
    
    ## Settings
    
    Place settings in your `settings.py` to override default values:
    
    ```python
    #settings.py
    
    ## for django-markdownx (see https://github.com/adi-/django-markdownx#customization)
    
    # Markdownify
    MARKDOWNX_MARKDOWNIFY_FUNCTION = 'markdownx.utils.markdownify'
    
    # Markdown extensions
    MARKDOWNX_MARKDOWN_EXTENSIONS = [
        'markdown.extensions.extra',
        'markdown.extensions.codehilite',       ## wants Pygments
    ]
    
    # specify the code highlighting stylesheet used by `markdown.extensions.codehilite`
    CMSPLUGIN_MARKDOWNX_CODEHILITE_CSS = 'cmsplugin_markdownx/codehilite_colorful.css'
    ```
    
    ## Template Tags
    
    If you want to design your own template to display rendered HTML from Markdown text, you need to do 2 things:
    
    1. Include the CMSPLUGIN_MARKDOWNX_CODEHILITE_CSS stylesheet in the CSS section of the page header.
    1. Run the markdown text from some instance of the Markdown plugin through the MARKDOWNX_MARKDOWNIFY_FUNCTION you configured for `django-markdownx'
    
    In order to do any or all of the above, you must load the template tags first.
    
    ```html+django
    {% load cmsplugin_markdownx %}
    ```
    
    ### Custom tag `{% get_settings _settingsVariable_ default=None %}`
    This tag extracts the value of _settingsVariable_ from your site `settings.py`.  You can specify the default value to use if it is not defined.
    
    This tag is not dependent on markdown processing, it can be used in other apps and projects.
    
    ### Filter `{{ ... |markdownify }}`
    Converts the markdown text provided by its left-hand argument into HTML using `django-markdownx`'s `MARKDOWNX_MARKDOWNIFY_FUNCTION`
    
    The HTML blob itself does not have a `<div`> wrapper, leaving you free to style one in the template.
    
    ### Example
    
    ```html_django
    {% load static sekizai_tags cmsplugin_markdownx %}
    {% get_setting "CMSPLUGIN_MARKDOWNX_CODEHILITE_CSS" as codehilite_css  %}
    {% if codehilite_css %}
    {% addtoblock "css" %}
    <link rel="stylesheet" href="{% static codehilite_css %}"/>
    {% endaddtoblock %}
    {% endif %}
    
    <div>{{ instance.markdown_text|markdownify }}</div>
    ```
    
    # Dependencies
    
    * Markdown
    * Pillow
    * Django
    * jQuery
    
    
    # License
    
    cmsplugin-markdown is licensed under the MIT open source license. Read `LICENSE` file for details.
    
    # Changelog
    
    | version | date | notes |
    | :---------: | :-------: | -------------------------- |
    | 0.1 | Jan 29, 2017 | Initial release |
    
    
    
    

Keywords: django,django-cms,plugin,markdown,editor Platform: OS Independent Classifier: Development Status :: 4 - Beta Classifier: Environment :: Web Environment Classifier: Framework :: Django Classifier: Framework :: Django :: 1.10 Classifier: Framework :: Django :: 1.9 Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content Classifier: Topic :: Software Development Classifier: Topic :: Software Development :: Libraries :: Application Frameworks Classifier: Topic :: Text Processing :: Markup

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.