{"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068318454", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068318454, "node_id": "IC_kwDOBm6k_c4_rT72", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T18:25:11Z", "updated_at": "2022-03-15T18:25:11Z", "author_association": "OWNER", "body": "Demo:\r\n\r\n- https://latest.datasette.io/fixtures/table~2Fwith~2Fslashes~2Ecsv\r\n- https://latest.datasette.io/fixtures/table~2Fwith~2Fslashes~2Ecsv.csv\r\n- https://latest.datasette.io/fixtures/table~2Fwith~2Fslashes~2Ecsv.json", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068306916", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068306916, "node_id": "IC_kwDOBm6k_c4_rRHk", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T18:15:11Z", "updated_at": "2022-03-15T18:15:11Z", "author_association": "OWNER", "body": "Now live here: https://fivethirtyeight.datasettes.com/fivethirtyeight/august-senate-polls~2Faugust_senate_polls", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068296042", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068296042, "node_id": "IC_kwDOBm6k_c4_rOdq", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T18:05:54Z", "updated_at": "2022-03-15T18:05:54Z", "author_association": "OWNER", "body": "Documentation: https://docs.datasette.io/en/latest/internals.html#tilde-encoding", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068181623", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068181623, "node_id": "IC_kwDOBm6k_c4_qyh3", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T16:18:23Z", "updated_at": "2022-03-15T16:18:23Z", "author_association": "OWNER", "body": "Moving this to a PR.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068148013", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068148013, "node_id": "IC_kwDOBm6k_c4_qqUt", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T15:50:15Z", "updated_at": "2022-03-15T15:50:15Z", "author_association": "OWNER", "body": "The thing that broke everything was this change:\r\n\r\n\"image\"\r\n\r\nI'm going to bring back the horrible `get_format()` method for the moment, with its weird mutations of the `args` object, then try and get rid of it again later.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068126821", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068126821, "node_id": "IC_kwDOBm6k_c4_qlJl", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T15:31:54Z", "updated_at": "2022-03-15T15:31:54Z", "author_association": "OWNER", "body": "The state I had got to prior to that revert is in https://github.com/simonw/datasette/tree/issue-1657-wip", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068125636", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068125636, "node_id": "IC_kwDOBm6k_c4_qk3E", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T15:30:54Z", "updated_at": "2022-03-15T15:30:54Z", "author_association": "OWNER", "body": "I've made a real mess of this. I'm going to revert Datasette`main` back to the last commit that passed the tests and try this again 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": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1067423720", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1067423720, "node_id": "IC_kwDOBm6k_c4_n5fo", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-14T23:59:56Z", "updated_at": "2022-03-14T23:59:56Z", "author_association": "OWNER", "body": "Updated test:\r\n```python\r\n@pytest.mark.parametrize(\r\n \"original,expected\",\r\n (\r\n (\"abc\", \"abc\"),\r\n (\"/foo/bar\", \"~2Ffoo~2Fbar\"),\r\n (\"/-/bar\", \"~2F-~2Fbar\"),\r\n (\"-/db-/table.csv\", \"-~2Fdb-~2Ftable~2Ecsv\"),\r\n (r\"%~-/\", \"~25~7E-~2F\"),\r\n (\"~25~7E~2D~2F\", \"~7E25~7E7E~7E2D~7E2F\"),\r\n ),\r\n)\r\ndef test_tilde_encoding(original, expected):\r\n actual = utils.tilde_encode(original)\r\n assert actual == expected\r\n # And test round-trip\r\n assert original == utils.tilde_decode(actual)\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1067414156", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1067414156, "node_id": "IC_kwDOBm6k_c4_n3KM", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-14T23:38:41Z", "updated_at": "2022-03-14T23:38:41Z", "author_association": "OWNER", "body": "And in https://datatracker.ietf.org/doc/html/rfc3986#section-2.3 \"Unreserved Characters\":\r\n\r\n unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1067413691", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1067413691, "node_id": "IC_kwDOBm6k_c4_n3C7", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-14T23:37:42Z", "updated_at": "2022-03-14T23:37:42Z", "author_association": "OWNER", "body": "Relevant: https://datatracker.ietf.org/doc/html/rfc3986#section-2.1\r\n\r\n```\r\n\r\n reserved = gen-delims / sub-delims\r\n\r\n gen-delims = \":\" / \"/\" / \"?\" / \"#\" / \"[\" / \"]\" / \"@\"\r\n\r\n sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\"\r\n / \"*\" / \"+\" / \",\" / \";\" / \"=\"\r\n```\r\nNotably `~` is not in either of those lists.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1067382232", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1067382232, "node_id": "IC_kwDOBm6k_c4_nvXY", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-14T22:58:47Z", "updated_at": "2022-03-14T22:58:47Z", "author_association": "OWNER", "body": "Asked about this [on Twitter](https://twitter.com/simonw/status/1503499169775849473):\r\n\r\n> Anyone ever seen a proxy or other URL handling system do anything surprising with the tilde \"~\" character?\r\n>\r\n> I'm considering it as an escaping character, in place of \"-\" as described in\r\n\r\nReplies so far seem like it should be OK - Apache has supported this for home directories for a couple of decades now without any problems.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1067381556", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1067381556, "node_id": "IC_kwDOBm6k_c4_nvM0", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-14T22:57:27Z", "updated_at": "2022-03-14T22:57:45Z", "author_association": "OWNER", "body": "The problem with the [dash encoding mechanism](https://simonwillison.net/2022/Mar/5/dash-encoding/) is that it turns out dashes are used in a LOT of existing Datasette instances - much of https://fivethirtyeight.datasettes.com/fivethirtyeight for example, and even https://datasette.io/ itself: https://datasette.io/dogsheep-index\r\n\r\nIt's pretty ugly to force all of those to change to their dash-encoded equivalent - and in fact it broke https://datasette.io/ in a subtle way:\r\n\r\n- https://github.com/simonw/datasette.io/issues/94\r\n\r\nI'm going to try using `~` instead and see if that works as well and causes less breakage to existing sites.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null}