{"id":15011415,"url":"https://github.com/firesquid6/inkdocs","last_synced_at":"2026-02-07T23:05:32.001Z","repository":{"id":211373284,"uuid":"728511237","full_name":"FireSquid6/inkdocs","owner":"FireSquid6","description":"A hypertext based documentation site builder. Powered by bun and htmx.","archived":false,"fork":false,"pushed_at":"2025-12-25T18:49:39.000Z","size":1523,"stargazers_count":8,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-27T05:52:09.025Z","etag":null,"topics":["bun","bunjs","documentation","documentation-generator","documentation-site","html","htmx","markdown","static-site-generator","typescript"],"latest_commit_sha":null,"homepage":"https://inkdocs.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FireSquid6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-12-07T05:06:31.000Z","updated_at":"2025-12-25T18:49:42.000Z","dependencies_parsed_at":"2023-12-28T00:58:34.167Z","dependency_job_id":"6c9d480a-98b3-4d07-ba08-6950a255380c","html_url":"https://github.com/FireSquid6/inkdocs","commit_stats":{"total_commits":344,"total_committers":1,"mean_commits":344.0,"dds":0.0,"last_synced_commit":"8c30f2b18dffe0a9a45c69203333b7fd4464455d"},"previous_names":["firesquid6/inkdocs"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/FireSquid6/inkdocs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FireSquid6%2Finkdocs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FireSquid6%2Finkdocs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FireSquid6%2Finkdocs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FireSquid6%2Finkdocs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FireSquid6","download_url":"https://codeload.github.com/FireSquid6/inkdocs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FireSquid6%2Finkdocs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29211674,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T22:58:45.823Z","status":"ssl_error","status_checked_at":"2026-02-07T22:58:45.272Z","response_time":63,"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":["bun","bunjs","documentation","documentation-generator","documentation-site","html","htmx","markdown","static-site-generator","typescript"],"created_at":"2024-09-24T19:41:04.165Z","updated_at":"2026-02-07T23:05:31.981Z","avatar_url":"https://github.com/FireSquid6.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Inkdocs\n\nInkdocs is a static site generator built for documentation. It is currently in early development with an expected 1.0 release at the end of February 2024. It is actively maintained by [firesquid](https://github.com/firesquid6) with help from others from [Hack Club](https://github.com/hackclub).\n\n## Features\n\n- uses no framework. It ships **0** javascript to the frontend by default, and only ships htmx if you use the swap router.\n- ships your docs as a multi page application and does server side routing\n- uses markdown by default, but can use any other markup if you have a parser for it.\n- can be extensively styled and customized or just used out of the box.\n- can be easily extended with plugins to add hyperscript, tailwind, or any other functionality you may need\n\nComing soon:\n\n- internationalization plugin\n\n## The Swap Router\n\nWhile the swap router is an optional \"plugin,\" it is the main brain of Inkdocs and it is recommended that you use it. The swap router uses htmx to hijack all `a` tags in your page and make them only swap out the content that's changing. Let's imagine the follwoing html page:\n\n```html\n\u003chtml\u003e\n\u003chead\u003e\n    \u003ctitle\u003eExample Inkdocs\u003c/title\u003e\n    \u003clink rel=\"stylesheet\" href=\"/styles.css\"\u003e\n    \u003cscript src=\"https://unpkg.com/htmx.org@1.9.10\"\u003e\u003c/script\u003e\n\u003c/head\n\u003cbody cz-shortcut-listen=\"true\"\u003e\n\u003cmain id=\"layout\"\u003e\n    \u003cdiv\u003ePretend I'm some really cool sidebar\u003c/div\u003e\n    \u003carticle id=\"content\"\u003e\n        \u003ch1\u003eBlog\u003c/h1\u003e\n        \u003cp\u003eThis is some blog stuff you may need idk\u003c/p\u003e\n        \u003ca href=\"/docs\"\u003eBack to the docs\u003c/a\u003e\n        \u003ca href=\"/blog/another\"\u003eCheck Out Another Blog Post\u003c/a\u003e\n    \u003c/article\u003e\n\u003c/main\u003e\n\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\nWhen we visit another blog post, we really only need to change what's inside of the `article`. When we visit a page with a different layout (say /docs), then we only need to change what's inside of the `main` tag. The swap router is smart and will perform an `hx-swap` with the article when visiting another blog post, and swap the main when visiting a different page.\n\n# Contributing\n\nContributing will be kinda a mess until the 1.0. Contact @firesquid6 on discord if you think this project is cool and you'd like to help out.\n\n## Setting Up\n\nIf you're on nixos or using the nix package manager, just run `nix-shell` to start using all of the appropriate dependencies. You can also just create a `.envrc` with `use-nix`. if you'd like. Other users should read the comments of the `shell.nix` file and install the dependencies however is convienient.\n\n## Guide to This Repo\n\n- `/docs` - contains the documentation website for inkdocs (which is built in inkdocs)\n- `/packages` - contains all of the packages for inkdocs\n  - `/inkdocs` - the core of inkdocs. Contains the code for building and serving code as well as some of the core plugins\n  - `/devserver` - contains the code for the `inkdocs-devserver` package on npm. Helps with the inkdocs DX by adding the automatic reloading seen in stuff like vite.\n  - `/create-inkdocs` - cli for bootstrapping new inkdocs sites\n\n# Deploying\n\nComing soon. This will be handled using docker.\n\n# Acknowledgements\n\nInkdocs stands on the shoulders of many giants including Elysia, oven-sh, and htmx.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiresquid6%2Finkdocs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiresquid6%2Finkdocs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiresquid6%2Finkdocs/lists"}