{"id":43962252,"url":"https://github.com/nrdxp/sukr","last_synced_at":"2026-02-07T05:34:18.698Z","repository":{"id":335773066,"uuid":"1146969760","full_name":"nrdxp/sukr","owner":"nrdxp","description":"Minimal static site compiler — suckless, Rust, zero JS.","archived":false,"fork":false,"pushed_at":"2026-02-01T05:24:48.000Z","size":14290,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-01T13:34:36.413Z","etag":null,"topics":["no-javascript","no-js","static-site-generator","static-website"],"latest_commit_sha":null,"homepage":"https://sukr.io","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nrdxp.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-01T01:07:37.000Z","updated_at":"2026-02-01T05:24:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nrdxp/sukr","commit_stats":null,"previous_names":["nrdxp/sukr"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/nrdxp/sukr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nrdxp%2Fsukr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nrdxp%2Fsukr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nrdxp%2Fsukr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nrdxp%2Fsukr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nrdxp","download_url":"https://codeload.github.com/nrdxp/sukr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nrdxp%2Fsukr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29187247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T05:07:31.176Z","status":"ssl_error","status_checked_at":"2026-02-07T05:06:15.227Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["no-javascript","no-js","static-site-generator","static-website"],"created_at":"2026-02-07T05:34:18.210Z","updated_at":"2026-02-07T05:34:18.688Z","avatar_url":"https://github.com/nrdxp.png","language":"Rust","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/static/logo.png\" alt=\"sukr logo\" width=\"128\" /\u003e\n\u003c/p\u003e\n\n# sukr\n\n**Minimal static site compiler — suckless, Rust, zero JS.**\n\nsukr transforms Markdown content into high-performance static HTML. No bloated runtimes, no client-side JavaScript, just clean output.\n\n## Why sukr?\n\nMost static site generators punt rich content to the browser. sukr doesn't.\n\n- **Tree-sitter syntax highlighting** — Proper parsing, not regex. Supports language injection (Nix shells, HTML scripts).\n- **Build-time math** — KaTeX renders LaTeX to static HTML. No 300KB JavaScript bundle.\n- **Build-time diagrams** — Mermaid compiles to inline SVG. Diagrams load instantly.\n\n## Features\n\n- **Syntax highlighting** — Tree-sitter with language injection (Nix→Bash, HTML→JS/CSS)\n- **Math rendering** — LaTeX to HTML via KaTeX at build time\n- **Mermaid diagrams** — Rendered to inline SVG, no client JS\n- **Tera templates** — Customize without recompiling\n- **Hierarchical navigation** — Nested sections with table of contents\n- **Atom feeds** — Auto-generated for blog sections\n- **Sitemap** — SEO-ready XML sitemap\n- **CSS minification** — LightningCSS optimization\n- **Monorepo support** — Multiple sites via `-c` flag\n\n## Comparison\n\n| Feature             |    sukr     |  Zola   |  Hugo  | Eleventy |\n| :------------------ | :---------: | :-----: | :----: | :------: |\n| Syntax Highlighting | Tree-sitter | syntect | Chroma | Plugins  |\n| Build-time Math     |     ✅      |   ❌    |   ❌   |  Plugin  |\n| Build-time Diagrams |     ✅      |   ❌    |   ❌   |  Plugin  |\n| Zero JS Output      |     ✅      |   ❌    |   ❌   | Optional |\n| Single Binary       |     ✅      |   ✅    |   ✅   |    ❌    |\n\nSee the [full comparison](https://sukr.io/comparison.html) for details.\n\n## Quick Start\n\n```bash\n# Build\ncargo build --release\n\n# Run (uses ./site.toml)\nsukr\n\n# Custom config (monorepo)\nsukr -c docs/site.toml\n```\n\n## Configuration\n\nCreate `site.toml`:\n\n```toml\ntitle    = \"My Site\"\nauthor   = \"Your Name\"\nbase_url = \"https://example.com\"\n\n[paths]  # All optional, defaults shown\ncontent   = \"content\"\noutput    = \"public\"\nstatic    = \"static\"\ntemplates = \"templates\"\n\n[nav]  # Optional\nnested = false  # Show section children in nav\ntoc    = false  # Enable table of contents\n```\n\n## Content Structure\n\n```\ncontent/\n├── _index.md              # Homepage\n├── getting-started.md     # Page → /getting-started.html\n├── configuration.md       # Page → /configuration.html\n└── features/\n    ├── _index.md          # Section index → /features/index.html\n    └── templates.md       # Page → /features/templates.html\n...\n```\n\n## Documentation\n\nFull documentation at [sukr.io](https://sukr.io) (built with sukr).\n\n## Security\n\nsukr processes content at **build time only** — there is no runtime attack surface.\n\n**Trust Model:**\n\n- **Untrusted:** Markdown content, frontmatter, third-party templates\n- **Trusted:** The compiled sukr binary, Tree-sitter grammars\n\n**Security Implications:**\n\n- Raw HTML in Markdown is passed through (CommonMark spec). If your content comes from untrusted sources, review it before building.\n- URLs in links and images are escaped to prevent attribute injection.\n- Templates use Tera's auto-escaping for variables; `{{ content | safe }}` is used intentionally for pre-rendered HTML.\n\nFor deployment-time security (CSP headers, etc.), see the [Security docs](https://sukr.io/security.html).\n\n## License\n\nMIT\n","funding_links":[],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnrdxp%2Fsukr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnrdxp%2Fsukr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnrdxp%2Fsukr/lists"}