github
html_url | issue_url | id | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
https://github.com/simonw/datasette/issues/654#issuecomment-568276548 | https://api.github.com/repos/simonw/datasette/issues/654 | 568276548 | MDEyOklzc3VlQ29tbWVudDU2ODI3NjU0OA== | 9599 | 2019-12-22T16:13:11Z | 2019-12-22T16:13:11Z | OWNER | Documentation: https://datasette.readthedocs.io/en/latest/config.html#template-debug Demos: * https://latest.datasette.io/?_context=1 * https://latest.datasette.io/fixtures?_context=1 * https://latest.datasette.io/fixtures/roadside_attractions?_context=1 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
541467590 | |
https://github.com/simonw/datasette/issues/654#issuecomment-568274570 | https://api.github.com/repos/simonw/datasette/issues/654 | 568274570 | MDEyOklzc3VlQ29tbWVudDU2ODI3NDU3MA== | 9599 | 2019-12-22T15:52:43Z | 2019-12-22T15:52:43Z | OWNER | One problem with this: what if secrets end up being dumped out in this debug view? This won't happen with default Datasette but could potentially happen with a plugin. This feature should be opt-in - maybe a `template_debug:1` config setting. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
541467590 | |
https://github.com/simonw/datasette/issues/654#issuecomment-568274520 | https://api.github.com/repos/simonw/datasette/issues/654 | 568274520 | MDEyOklzc3VlQ29tbWVudDU2ODI3NDUyMA== | 9599 | 2019-12-22T15:51:58Z | 2019-12-22T15:51:58Z | OWNER | Proof of concept: ```diff diff --git a/datasette/views/base.py b/datasette/views/base.py index 5182479..39d1f77 100644 --- a/datasette/views/base.py +++ b/datasette/views/base.py @@ -1,6 +1,7 @@ import asyncio import csv import itertools +import json import re import time import urllib @@ -138,28 +139,31 @@ class BaseView(AsgiView): ) extra_template_vars.update(extra_vars) + template_context = { + **context, + **{ + "app_css_hash": self.ds.app_css_hash(), + "select_templates": select_templates, + "zip": zip, + "body_scripts": body_scripts, + "extra_css_urls": self._asset_urls( + "extra_css_urls", template, context + ), + "extra_js_urls": self._asset_urls( + "extra_js_urls", template, context + ), + "format_bytes": format_bytes, + "database_url": self.database_url, + "database_color": self.database_color, + }, + **extra_template_vars, + } + if request.args.get("_context"): + return Response.html("<pre>{}</pre>".format( + escape(json.dumps(template_context, default=repr, indent=4)) + )) return Response.html( - await template.render_async( - { - **context, - **{ - "app_css_hash": self.ds.app_css_hash(), - "select_templates": select_templates, - "zip": zip, - "body_scripts": body_scripts, - "extra_css_urls": self._asset_urls( - "extra_css_urls", template, context - ), - "extra_js_urls": self._asset_urls( - "extra_js_urls", template, context - … | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
541467590 |