datasette-edit-templates by simonw
163 downloads this week Star
README source code
datasette-edit-templates
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