{"id":15722196,"url":"https://github.com/ashanan/datasette-knightlab-timeline","last_synced_at":"2026-04-24T16:39:26.487Z","repository":{"id":66432520,"uuid":"502740489","full_name":"ashanan/datasette-knightlab-timeline","owner":"ashanan","description":"Datasette plugin for creating timelines with TimelineJS","archived":false,"fork":false,"pushed_at":"2022-07-04T23:34:13.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T23:43:30.137Z","etag":null,"topics":["datasette-plugin","timelinejs"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashanan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-12T22:18:54.000Z","updated_at":"2022-06-12T22:31:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"1665d919-b6d8-4267-9d72-456bd9cafbbd","html_url":"https://github.com/ashanan/datasette-knightlab-timeline","commit_stats":{"total_commits":39,"total_committers":2,"mean_commits":19.5,"dds":0.07692307692307687,"last_synced_commit":"f5f41aec51477f92da56edb7394a125ee3ac79d4"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ashanan/datasette-knightlab-timeline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashanan%2Fdatasette-knightlab-timeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashanan%2Fdatasette-knightlab-timeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashanan%2Fdatasette-knightlab-timeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashanan%2Fdatasette-knightlab-timeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashanan","download_url":"https://codeload.github.com/ashanan/datasette-knightlab-timeline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashanan%2Fdatasette-knightlab-timeline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32231457,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datasette-plugin","timelinejs"],"created_at":"2024-10-03T22:05:08.579Z","updated_at":"2026-04-24T16:39:26.470Z","avatar_url":"https://github.com/ashanan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# datasette-knightlab-timeline\n\n[![PyPI](https://img.shields.io/pypi/v/datasette-knightlab-timeline.svg)](https://pypi.org/project/datasette-knightlab-timeline/)\n[![Changelog](https://img.shields.io/github/v/release/ashanan/datasette-knightlab-timeline?include_prereleases\u0026label=changelog)](https://github.com/ashanan/datasette-knightlab-timeline/releases)\n[![Tests](https://github.com/ashanan/datasette-knightlab-timeline/workflows/Test/badge.svg)](https://github.com/ashanan/datasette-knightlab-timeline/actions?query=workflow%3ATest)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/ashanan/datasette-knightlab-timeline/blob/main/LICENSE)\n\nA Datasette plugin to create timelines using the TimelineJS library.\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n    datasette install datasette-knightlab-timeline\n\n## Usage\n\nAdd a `datasette-knightlab-timeline` object to the metadata plugins section.\n\n```json\n{\n    \"title\": \"This is the top-level title in metadata.json\",\n    \"plugins\": {\n\t\t\"datasette-knightlab-timeline\": {\n\t\t\t\"databases\": [{\n\t\t\t\t\"database\": \"database_one\",\n\t\t\t\t\"query\": \"SELECT date_measured as start_date, text FROM measurement_event WHERE date_measured \u003e (SELECT DATETIME('now', '-30 day'))\"\n\t\t\t}, {\n\t\t\t\t\"database\": \"inaturalist\",\n\t\t\t\t\"query\": \"SELECT created_at as start_date, 'Nature observation!  Observed ' || species_guess || '.' AS text FROM observations WHERE created_at \u003e (SELECT DATETIME('now', '-30 day'))\"\n\t\t\t}]\n\t\t}\n    }\n}\n\n\n```\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n    cd datasette-knightlab-timeline\n    python3 -m venv venv\n    source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n    pip install -e '.[test]'\n\nTo run the tests:\n\n    pytest\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashanan%2Fdatasette-knightlab-timeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashanan%2Fdatasette-knightlab-timeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashanan%2Fdatasette-knightlab-timeline/lists"}