过去一周半我所做的大部分工作都已记录在案:
- 通过 ChatGPT、Copilot 和 Advent of Code 学习 Rust
- 一个新的人工智能游戏:给我一些犯罪的想法
- 重要的: Datasette 的新 JSON 写入 API:Datasette 1.0 的第一个 alpha
- 还有我的 DjangoCon 谈话文章:连续项目囤积者的应对策略
我还发布了两个新的 Datasette 插件——其中一个支持 Datasette 1.0 alpha 版本,另一个仍在开发中。
数据集临时表
对于Datasette 1.0 alpha ,我希望人们可以尝试新的写入 API,而无需自己安装 Datasette。
但我不想致力于运行任何人都可以长期使用的公共可写演示。
我决定使用一个新插件来解决这个问题。我构建了 datasette-ephemeral-tables ,它创建了一个内存中的 SQLite 数据库,其中的表在创建十五分钟后自动删除。
这是一个非常有趣的小插件。 源代码在这里– 它通过每 2 秒运行一次任务来工作,该任务扫描ephemeral
数据库以查找新表并将它们的创建时间添加到字典中,然后删除超过 X 分钟前创建的任何内容。
它还使用 JavaScript 向表格页面添加了一个 UI 元素,它显示了一个突出的倒数计时器,警告您这个世界的表格不长:
然后,我在由latest.datasette.io演示实例托管的新临时表之上构建了todomvc.datasette.io演示。
让该演示工作涉及为写入 API 找出 CORS,这是我在Datasette 1.0a1 alpha版本中提供的一个非常有用的新功能。
数据集导出
datasette-export插件仍处于早期 alpha 阶段。这个想法是通过提供一个 CLI 将 Datasette 变成一个静态站点生成器工具,该 CLI 可以将多个页面从 Datasette 实例直接导出到磁盘上的静态文件。
这是一个实际的例子:
datasette export . \ --path / \ --path /plugins \ --sql "select '/plugins/' || name from content.plugins" \ --crossdb
这将针对当前目录( .
参数)中的数据库文件、模板和插件文件运行并导出/
页面和/plugins
页面,然后使用 SQL 查询指定附加页面的列表并将它们也导出。
--crossdb
选项是必需的,因为此示例项目( datasette.io站点)有多个数据库,使用该选项可以让您select ... from content.plugins
以指定特定数据库。
在该存储库的问题中有更多关于该项目的工作原理和下一步的详细信息。
本周发布
- datasette-public : 0.2.2 -(总共 4 个版本)- 2022-12-02
使特定的数据集表对公众可见 - datasette-ephemeral-tables : 0.2.2 -(总共 4 个版本)- 2022-12-02
提供在时间限制后过期的表 - 数据集: 1.0a1 -(总共 120 个版本)- 2022-12-01
用于探索和发布数据的开源多功能工具 - 数据集导出: 0.1a0 – 2022-11-27
将页面从 Datasette 导出到磁盘上的文件
直到本周
- 在 HTML 中延迟加载图像
- setup.py 项目的 actions/setup-python 缓存
- 使用 pipenv 和 Docker
- google-github-actions/setup-gcloud 错误的解决方法
原文: http://simonwillison.net/2022/Dec/5/weeknotes/#atom-everything