datasette-edit-templates by simonw

97 downloads this week        Star

README source code

datasette-edit-templates

PyPI Changelog Tests License

Plugin allowing Datasette templates to be edited within Datasette.

Installation

Install this plugin in the same environment as Datasette.

datasette install datasette-edit-templates

Usage

On startup. a _templates_ table will be created in the database you are running Datasette against.

Use the app menu to navigate to the /-/edit-templates page, and edit templates there.

Changes should become visible instantly, and will be persisted to your database.

The interface is only available to users with the edit-templates permission.

The root user is granted this permission by default. You can sign in as the root user using datasette mydb.db --root.

Configuration

To put the _templates_ table in a specific database, set the datasette-edit-templates: database plugin configuration option:

{
    "plugins": {
        "datasette-edit-templates": {
            "database": "some_database"
        }
    }
}

On Datasette 1.0a5 or higher you can use the internal database with "internal_db: true":

{
    "plugins": {
        "datasette-edit-templates": {
            "internal_db": true
        }
    }
}

By default the prepare_jinja2_environment() hook will be used to load the custom templates.

You can disable this behavior using the skip_prepare_jinja2_environment plugin configuration option:

{
    "plugins": {
        "datasette-edit-templates": {
            "skip_prepare_jinja2_environment": true
        }
    }
}

Set this option if you want to further customize how the templates are loaded using another plugin.

The menu item used to access this plugin is labeled "Edit templates" by default. You can customize this using the menu_label plugin configuration option:

{
    "plugins": {
        "datasette-edit-templates": {
            "menu_label": "Custom templates"
        }
    }
}

Set that to null to hide the menu option entirely.

Development

To set up this plugin locally, first checkout the code. Then create a new virtual environment:

cd datasette-edit-templates
python3 -mvenv venv
source venv/bin/activate

Or if you are using pipenv:

pipenv shell

Now install the dependencies and tests:

pip install -e '.[test]'

To run the tests:

pytest