{"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-1722845490", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 1722845490, "node_id": "IC_kwDOBm6k_c5msIky", "user": {"value": 15178711, "label": "asg017"}, "created_at": "2023-09-18T06:55:52Z", "updated_at": "2023-09-18T06:55:52Z", "author_association": "CONTRIBUTOR", "body": "One note here: this feature could be called \"slots\", similar to [Layout Slots](https://vitepress.dev/guide/extending-default-theme#layout-slots) in Vitepress.\r\n\r\nIn Vitepress, you can add custom components/widget/gadgets into determined named \"slots\", like so:\r\n\r\n```\r\ndoc-top\r\ndoc-bottom\r\ndoc-footer-before\r\ndoc-before\r\ndoc-after\r\n...\r\n```\r\n\r\nWould be great to do in both Python and Javascript, with the upcoming JavaScript API #2052. In `datasette-write-ui`, all we do is add a few \"Insert row\" and \"edit this row\" buttons and that required completely capturing the `table.html` template, which isn't great for other plugins. But having \"slots\" like `table-footer-before` or `table-row-id` or something would be great to work with.\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-1200732975", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 1200732975, "node_id": "IC_kwDOBm6k_c5Hkbsv", "user": {"value": 2670795, "label": "brandonrobertz"}, "created_at": "2022-08-01T05:39:27Z", "updated_at": "2022-08-01T05:39:27Z", "author_association": "CONTRIBUTOR", "body": "I've got a URL shortening plugin that I would like to embed on the query page but I'd like avoid capturing the entire `query.html` template. A feature like this would solve it. Where's this at and how can I help?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-761104933", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 761104933, "node_id": "MDEyOklzc3VlQ29tbWVudDc2MTEwNDkzMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-15T18:21:26Z", "updated_at": "2021-12-17T07:03:02Z", "author_association": "OWNER", "body": "Also related: #857 (comprehensive documentation of variables available to templates) - since then the plugin hook could be fed the full template context and use that to do its thing.\r\n\r\nOr maybe the plugin hooks gets to return the name of a template that should be `{% include %}` into the page at that point? But the plugin may want to add extra context that is available to that template include.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-766524016", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 766524016, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NjUyNDAxNg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-25T03:59:17Z", "updated_at": "2021-01-25T03:59:17Z", "author_association": "OWNER", "body": "More work can happen in the PR: #1204", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-766523866", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 766523866, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NjUyMzg2Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-25T03:58:34Z", "updated_at": "2021-01-25T03:58:34Z", "author_association": "OWNER", "body": "I've got a good prototype working now, but I'm dropping this from the Datasette 0.54 milestone because it requires a bunch of additional work to make sure it is really well tested and documented.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-766466030", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 766466030, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NjQ2NjAzMA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-25T00:11:04Z", "updated_at": "2021-01-25T00:11:04Z", "author_association": "OWNER", "body": "I can combine this with #987 - each of these areas of the page can be wrapped in a `
` with a class that matches the name of the plugin hook, that way JavaScript plugins can append their content in the same place as Python plugins.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-765757433", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 765757433, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NTc1NzQzMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-22T23:43:43Z", "updated_at": "2021-01-22T23:43:43Z", "author_association": "OWNER", "body": "Another potential use for this: plugins that provide authentication (like `datasette-auth-passwords` and `datasette-auth-github`) could use it to add a chunk of HTML to the \"permission denied\" page that links to their mechanism of authenticating.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-761705076", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 761705076, "node_id": "MDEyOklzc3VlQ29tbWVudDc2MTcwNTA3Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-17T00:35:13Z", "updated_at": "2021-01-17T00:37:51Z", "author_association": "OWNER", "body": "I'm going to try using Jinja macros to implement this: https://jinja.palletsprojects.com/en/2.11.x/templates/#macros\r\n\r\nMaybe using one of these tricks to auto-load the macro? http://codyaray.com/2015/05/auto-load-jinja2-macros", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-761703368", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 761703368, "node_id": "MDEyOklzc3VlQ29tbWVudDc2MTcwMzM2OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-17T00:22:46Z", "updated_at": "2021-01-17T00:22:46Z", "author_association": "OWNER", "body": "I'm going to prototype this in a branch.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-761703232", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 761703232, "node_id": "MDEyOklzc3VlQ29tbWVudDc2MTcwMzIzMg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-17T00:21:31Z", "updated_at": "2021-01-17T00:21:54Z", "author_association": "OWNER", "body": "I think this ends up being a whole collection of new plugin hooks, something like:\r\n\r\n- `include_table_top`\r\n- `include_table_bottom`\r\n- `include_row_top`\r\n- `include_row_bottom`\r\n- `include_database_top`\r\n- `include_database_bottom`\r\n- `include_query_bottom`\r\n- `include_query_bottom`\r\n- `include_index_bottom`\r\n- `include_index_bottom`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-761703022", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 761703022, "node_id": "MDEyOklzc3VlQ29tbWVudDc2MTcwMzAyMg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-17T00:20:00Z", "updated_at": "2021-01-17T00:20:00Z", "author_association": "OWNER", "body": "Plugins that want to provide extra context to the template can already do so using the `extra_template_vars()` plugin hook.\r\n\r\nSo this hook could work by returning a list of template filenames to be included. Those templates can be bundled with the plugin. Since they are included they will have access to the template context and to any `extra_template_vars()` values.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1191#issuecomment-761103910", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1191", "id": 761103910, "node_id": "MDEyOklzc3VlQ29tbWVudDc2MTEwMzkxMA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-15T18:19:29Z", "updated_at": "2021-01-15T18:19:29Z", "author_association": "OWNER", "body": "This relates to #987 (documented HTML hooks for JavaScript plugins) but is not quite the same thing.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 787098345, "label": "Ability for plugins to collaborate when adding extra HTML to blocks in default templates"}, "performed_via_github_app": null}