html_url,issue_url,id,node_id,user,user_label,created_at,updated_at,author_association,body,reactions,issue,issue_label,performed_via_github_app https://github.com/simonw/datasette/issues/648#issuecomment-619591380,https://api.github.com/repos/simonw/datasette/issues/648,619591380,MDEyOklzc3VlQ29tbWVudDYxOTU5MTM4MA==,9599,simonw,2020-04-26T17:33:04Z,2020-04-26T17:33:04Z,OWNER,"> > Stretch goal: it would be neat if these pages could return custom HTTP headers (eg content-type) and maybe even status codes (eg for redirects) somehow. > > I think I could do that with a custom template function - if that function is called during the render then we follow those instructions instead of returning the rendered HTML. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",534492501,Mechanism for adding arbitrary pages like /about, https://github.com/simonw/datasette/pull/737#issuecomment-619591533,https://api.github.com/repos/simonw/datasette/issues/737,619591533,MDEyOklzc3VlQ29tbWVudDYxOTU5MTUzMw==,9599,simonw,2020-04-26T17:33:48Z,2020-04-26T17:33:48Z,OWNER,"> > Stretch goal: it would be neat if these pages could return custom HTTP headers (eg content-type) and maybe even status codes (eg for redirects) somehow. > > I think I could do that with a custom template function - if that function is called during the render then we follow those instructions instead of returning the rendered HTML. https://github.com/simonw/datasette/issues/648#issuecomment-619591380","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",607067303,"Custom pages mechanism, refs #648", https://github.com/simonw/datasette/pull/737#issuecomment-619593811,https://api.github.com/repos/simonw/datasette/issues/737,619593811,MDEyOklzc3VlQ29tbWVudDYxOTU5MzgxMQ==,9599,simonw,2020-04-26T17:48:31Z,2020-04-26T17:48:31Z,OWNER,"Design challenge: the function that can be called in the custom template to return a custom status code and/or headers. Proposed design: ``` {{ custom_headers({""x-foo"": ""bar""}) }} {{ custom_status_code(404) }} ``` Or should I combine them into one function? ``` {{ custom_headers({""x-foo"": ""bar""}, status=404) }} ``` A common use-case here would be a redirect. How should that look? ``` {{ custom_redirect(""/foo"") }} - defaults to 301 {{ custom_redirect(""/foo"", status=302) }} ``` Maybe avoid dictionary syntax entirely: ``` {{ custom_header(""x-foo"", ""bar"") }} ``` ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",607067303,"Custom pages mechanism, refs #648", https://github.com/simonw/datasette/pull/737#issuecomment-619593899,https://api.github.com/repos/simonw/datasette/issues/737,619593899,MDEyOklzc3VlQ29tbWVudDYxOTU5Mzg5OQ==,9599,simonw,2020-04-26T17:49:06Z,2020-04-26T17:49:06Z,OWNER,"I'm going with `custom_header(name, value)`, `custom_status(numeric_code)`, `custom_redirect(""URL"")`.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",607067303,"Custom pages mechanism, refs #648", https://github.com/simonw/datasette/pull/737#issuecomment-619599904,https://api.github.com/repos/simonw/datasette/issues/737,619599904,MDEyOklzc3VlQ29tbWVudDYxOTU5OTkwNA==,9599,simonw,2020-04-26T18:21:06Z,2020-04-26T18:21:06Z,OWNER,Just needs documentation now.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",607067303,"Custom pages mechanism, refs #648", https://github.com/simonw/datasette/issues/648#issuecomment-619604720,https://api.github.com/repos/simonw/datasette/issues/648,619604720,MDEyOklzc3VlQ29tbWVudDYxOTYwNDcyMA==,9599,simonw,2020-04-26T18:50:30Z,2020-04-26T18:50:30Z,OWNER,Documentation: https://datasette.readthedocs.io/en/latest/custom_templates.html#custom-pages,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",534492501,Mechanism for adding arbitrary pages like /about, https://github.com/simonw/datasette/issues/738#issuecomment-619605811,https://api.github.com/repos/simonw/datasette/issues/738,619605811,MDEyOklzc3VlQ29tbWVudDYxOTYwNTgxMQ==,9599,simonw,2020-04-26T18:58:56Z,2020-04-26T18:58:56Z,OWNER,"https://github.com/simonw/datasette/blob/304e7b1d9fd904ae1c35600bc03662eb90eeeae0/datasette/app.py#L781-L789 `request` is an optional argument here: https://github.com/simonw/datasette/blob/304e7b1d9fd904ae1c35600bc03662eb90eeeae0/datasette/app.py#L556-L558","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",607086780,Pass a request object to custom page templates, https://github.com/simonw/datasette/issues/731#issuecomment-619611417,https://api.github.com/repos/simonw/datasette/issues/731,619611417,MDEyOklzc3VlQ29tbWVudDYxOTYxMTQxNw==,9599,simonw,2020-04-26T19:28:12Z,2020-04-26T19:28:12Z,OWNER,"I've shipped #648 now, so no reason not to go with the `static/` folder as the thing that gets detected and mounted as `/static`.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",605110015,Option to automatically configure based on directory layout, https://github.com/simonw/datasette/issues/648#issuecomment-619612675,https://api.github.com/repos/simonw/datasette/issues/648,619612675,MDEyOklzc3VlQ29tbWVudDYxOTYxMjY3NQ==,9599,simonw,2020-04-26T19:35:09Z,2020-04-26T19:35:09Z,OWNER,https://www.niche-museums.com/about now uses this mechanism. It used to be an empty `about.db` database but you can see from https://www.niche-museums.com/-/databases that it's now using the new mechanism.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",534492501,Mechanism for adding arbitrary pages like /about, https://github.com/simonw/datasette/issues/731#issuecomment-619621388,https://api.github.com/repos/simonw/datasette/issues/731,619621388,MDEyOklzc3VlQ29tbWVudDYxOTYyMTM4OA==,9599,simonw,2020-04-26T20:38:09Z,2020-04-26T20:38:30Z,OWNER,Work now happening in the pull request: https://github.com/simonw/datasette/issues/739,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",605110015,Option to automatically configure based on directory layout, https://github.com/simonw/datasette/pull/739#issuecomment-619622311,https://api.github.com/repos/simonw/datasette/issues/739,619622311,MDEyOklzc3VlQ29tbWVudDYxOTYyMjMxMQ==,9599,simonw,2020-04-26T20:45:07Z,2020-04-26T20:45:07Z,OWNER,I think ALL explicit options should over-ride options that were detected in the directory structure. This means my current implementation isn't quite right - using a class method makes it hard to merge the details with the explicit options passed to the CLI function.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",607107849,Configuration directory mode, https://github.com/simonw/datasette/pull/725#issuecomment-619489720,https://api.github.com/repos/simonw/datasette/issues/725,619489720,MDEyOklzc3VlQ29tbWVudDYxOTQ4OTcyMA==,4312421,stonebig,2020-04-26T06:09:59Z,2020-04-26T06:10:13Z,NONE,"as a complementary remark: the versioning of datasette dependancies will become a problem when the new pip ""dependancy resolver"" will be activated. for now, it's just warnings via pip checks, later it will be a ""no"": ```` datasette 0.40 has requirement aiofiles~=0.4.0, but you have aiofiles 0.5.0. datasette 0.40 has requirement Jinja2~=2.10.3, but you have jinja2 2.11.2. ````","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",598891570,"Update aiofiles requirement from ~=0.4.0 to >=0.4,<0.6",