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/687#issuecomment-592625825,https://api.github.com/repos/simonw/datasette/issues/687,592625825,MDEyOklzc3VlQ29tbWVudDU5MjYyNTgyNQ==,9599,2020-02-28T17:26:43Z,2020-02-28T17:26:43Z,OWNER,Current plugin docs: https://datasette.readthedocs.io/en/0.37/plugins.html,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293, https://github.com/simonw/datasette/issues/687#issuecomment-592626515,https://api.github.com/repos/simonw/datasette/issues/687,592626515,MDEyOklzc3VlQ29tbWVudDU5MjYyNjUxNQ==,9599,2020-02-28T17:27:08Z,2020-02-28T17:27:46Z,OWNER,"Suggested pages: - `plugins/tutorial.html` - `plugins/hooks.html` - `plugins/testing.html` - `plugins/packaging.html`","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293, https://github.com/simonw/datasette/issues/687#issuecomment-592814114,https://api.github.com/repos/simonw/datasette/issues/687,592814114,MDEyOklzc3VlQ29tbWVudDU5MjgxNDExNA==,9599,2020-02-29T02:07:03Z,2020-02-29T02:07:03Z,OWNER,"The tutorial should start by taking about development environments - how to get a new fresh copy of Datasette that you can start hacking plugins for, in a fresh virtual environment. It should then explain the `--plugins-dir` mechanism, and show how to use it to create a simple plugin that adds a custom SQL function. Does `--reload` work against plugins in the `plugins/` directory? It should. Then it should demonstrate a more complex plugin that uses the `datasette` argument to render a template. It should promote the next page which lists the plugin hooks. The hooks page should include links next to each hook to examples of plugins that use them. The packaging page can explain `setup.py` for distributing packages (let's not bother explaining single modules) and also needs to show how to bundle package data such as templates. It should also show how to use `pip install -e .[test]` for development, and mention that this works with `--reload`.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293, https://github.com/simonw/datasette/issues/687#issuecomment-592814610,https://api.github.com/repos/simonw/datasette/issues/687,592814610,MDEyOklzc3VlQ29tbWVudDU5MjgxNDYxMA==,9599,2020-02-29T02:08:49Z,2020-02-29T02:08:49Z,OWNER,Eventually I can also document what to do if your plugin needs to include its own CLI tool. I'm goong it show how to ship a CLI tool with the same name as the plugin using Click and `setup.py`. ,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293, https://github.com/simonw/datasette/issues/687#issuecomment-646930455,https://api.github.com/repos/simonw/datasette/issues/687,646930455,MDEyOklzc3VlQ29tbWVudDY0NjkzMDQ1NQ==,9599,2020-06-20T03:22:21Z,2020-06-20T03:22:21Z,OWNER,The tutorial can start by showing how to use the new cookiecutter template from #642.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293, https://github.com/simonw/datasette/issues/687#issuecomment-646938984,https://api.github.com/repos/simonw/datasette/issues/687,646938984,MDEyOklzc3VlQ29tbWVudDY0NjkzODk4NA==,9599,2020-06-20T04:22:25Z,2020-06-20T04:23:02Z,OWNER,"I think I want the ""Plugin hooks"" page to be top-level, parallel to ""Plugins"" and ""Internals for Plugins"". It's the page of documentation refer to most often so I don't want to have to click down a hierarchy from the side navigation to find it.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293, https://github.com/simonw/datasette/issues/687#issuecomment-647190144,https://api.github.com/repos/simonw/datasette/issues/687,647190144,MDEyOklzc3VlQ29tbWVudDY0NzE5MDE0NA==,9599,2020-06-21T22:32:13Z,2020-06-21T22:32:13Z,OWNER,"So the new plan is NOT to have a `plugins/` folder, but instead have several top-level pages: - Plugins (exists) - Writing plugins - Plugin hooks - Testing plugins - Internals for plugins (exists)","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293, https://github.com/simonw/datasette/issues/687#issuecomment-647190177,https://api.github.com/repos/simonw/datasette/issues/687,647190177,MDEyOklzc3VlQ29tbWVudDY0NzE5MDE3Nw==,9599,2020-06-21T22:32:36Z,2020-06-21T22:32:36Z,OWNER,I'm going to break out the plugin hooks first in a single commit to make for a cleaner commit history (since that way git can hopefully detect that the content moved).,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293, https://github.com/simonw/datasette/issues/687#issuecomment-647203845,https://api.github.com/repos/simonw/datasette/issues/687,647203845,MDEyOklzc3VlQ29tbWVudDY0NzIwMzg0NQ==,9599,2020-06-22T00:32:42Z,2020-06-22T00:32:42Z,OWNER,"Maybe add this to the plugins.rst page near the top: ``` .. toctree:: :caption: See also :maxdepth: 1 plugin_hooks internals ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293, https://github.com/simonw/datasette/issues/687#issuecomment-647237091,https://api.github.com/repos/simonw/datasette/issues/687,647237091,MDEyOklzc3VlQ29tbWVudDY0NzIzNzA5MQ==,9599,2020-06-22T02:44:10Z,2020-06-22T02:44:10Z,OWNER,"Now split into four pages: - https://datasette.readthedocs.io/en/latest/plugins.html - https://datasette.readthedocs.io/en/latest/writing_plugins.html - https://datasette.readthedocs.io/en/latest/plugin_hooks.html - https://datasette.readthedocs.io/en/latest/internals.html Still need to add the ""Testing plugins"" page, then I can close this issue. I should also do #855, documenting the new `datasette-plugin` cookiecutter template. That can go in `writing_plugins.rst`.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293, https://github.com/simonw/datasette/issues/687#issuecomment-647258199,https://api.github.com/repos/simonw/datasette/issues/687,647258199,MDEyOklzc3VlQ29tbWVudDY0NzI1ODE5OQ==,9599,2020-06-22T03:55:20Z,2020-06-22T03:55:20Z,OWNER,https://datasette.readthedocs.io/en/latest/testing_plugins.html,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",572896293,