Skip to main content
Flask-Edits
~~~~~~~~~~~

"Can't you just, rewrite it to sound more *edgy?*"

Clients blowing up your phone to change some copy on the ``/about``
page?

Enter **Flask-Edits**. Mark sections of your templates with
``{% editable %}`` and their content is exposed in a slick admin panel.
Never worry about tweaking copy again.

.. figure:: http://i.imgur.com/kgAlUAV.png
:alt: Screenshot

Screenshot
Installation
^^^^^^^^^^^^

::

$ pip install flask-edits

Usage
^^^^^

::

from flask.ext.edits import Edits

app = Flask(__name__)
edits = Edits(app)

All edits are saved to the disk as JSON, so configure a path to save the
edits. Edits can be commited to version control along with the rest of
the app.

::

import os.path as op
app.config['EDITS_PATH'] = op.join(op.dirname(op.abspath(__file__)), 'edits.json')

Mark sections of your Jinja templates as editable. The section name is
required, it's used as the section label when editing and the key that
the edits are stored under.

::

{% editable 'Section name' %}
Python is a programming language that lets you work quickly and integrate systems more effectively.
{% endeditable %}

**Important:**

There is no automatic detection of editable sections (yet). You have to
visit the URL that renders the template to register it as editable. It
will not show up in the admin panel until it has been rendered with
``render_template``.

Admin
^^^^^

The Flask-Edits admin view is exposed by default at ``/edits``. The base
URL can be changed in the configuration:

::

app.config['EDITS_URL'] = '/edits'

**Note on security:**

Like Flask-Admin, Flask-Edits does not make any assumptions about the
authentication system you might be using. So, by default, the admin
interface is completely open. Protect it behind basic auth or another
form of authentication.

Editing
^^^^^^^

All pages that have registered editable sections are available to edit
in the interface. At this time, only static HTML is supported. Support
for Jinja2 is on the roadmap.

The `Summernote <http://hackerwins.github.io/summernote/>`__ HTML editor
is included but not used by default. To enable it:

::

app.config['EDITS_SUMMERNOTE'] = True

When a page is saved it instantly updates the Jinja context and writes
to the JSON file on the server.

Within a page, multiple sections with the same name will only show up
once in the admin panel, but the edits will be applied to each section.

Clearing a section will revert it to the original content in the
template.

Previews
^^^^^^^^

Preview mode is on by default. Edits will not show up on pages unless
``?preview=true`` is passed in the URL. This allows for easy editing
before content is live. Toggle the preview mode in the admin panel. If
previews are turned off, edits become live as they are saved.

Preview mode can be toggled in the configuration. To turn off previews
by default:

::

app.config['EDITS_PREVIEW'] = False

Turning off previews is recommended for use in production.

Roadmap
^^^^^^^

- Automatically register editable sections
- Jinja2 content with context evaluation
- Multiple database backends
- In-place page editing

Metadata

Release files for Flask-Edits 0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Flask-Edits 0.8
File Size Uploaded
Flask-Edits-0.8.tar.gz 253.3 kB Details

Release files / Flask-Edits-0.8.tar.gz

Download URL Flask-Edits-0.8.tar.gz
Size 253.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4f0e970753253bd1e36764c42a166fcf47df7d3405764c3a336ce5b9a18e00e3
BLAKE2b-256 checksum
How to use checksums
f763cee10bbe6de41f5919be16df84eff1d0472593cab17fa4ef0f70b8f55c1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.8 This release

1 release file

0.7

1 release file

0.6

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page