{"id":17658636,"url":"https://github.com/ruuda/blog","last_synced_at":"2025-04-05T21:06:49.585Z","repository":{"id":19006093,"uuid":"22228614","full_name":"ruuda/blog","owner":"ruuda","description":"My personal site","archived":false,"fork":false,"pushed_at":"2025-03-02T20:34:18.000Z","size":20520,"stargazers_count":129,"open_issues_count":0,"forks_count":11,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-29T20:03:53.775Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ruudvanasseldonk.com","language":"Haskell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruuda.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":"2014-07-24T19:52:57.000Z","updated_at":"2025-03-05T14:02:39.000Z","dependencies_parsed_at":"2025-01-20T08:17:44.796Z","dependency_job_id":null,"html_url":"https://github.com/ruuda/blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruuda","download_url":"https://codeload.github.com/ruuda/blog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399873,"owners_count":20932876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-23T15:27:45.775Z","updated_at":"2025-04-05T21:06:49.556Z","avatar_url":"https://github.com/ruuda.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Blog\n====\n\nThis is the source code for [my personal site][ruudva]. It is a static site\ngenerated by a homemade generator written in Haskell.\n\nThe generator includes a tiny templating engine, an html and css minifier, and\nan aggressive font subsetter. One of my objectives was to cut all the crap\n(which almost by definition includes javascript) without compromising on\ndesign. An average page of my site weighs less than jQuery alone (which\ndescribes itself as “lightweight footprint”). That includes webfonts.\n\nThis is version three of my blog. Previously I used [Hakyll][hakyll] (available\nin the `archived-hakyll` branch), and before that I used [Jekyll][jekyll].\n\n[ruudva]: https://ruudvanasseldonk.com\n[hakyll]: http://jaspervdj.be/hakyll/\n[jekyll]: http://jekyllrb.com/\n\nLicense\n-------\nThe source code for this site is licensed under version 3 of the the\n[GNU General Public Licence][gplv3]. See the `licence` file. The content of the\nposts is licensed under the [Creative Commons BY SA][cc] licence. For the font\nlicense details, see the readme in the fonts directory.\n\n[gplv3]: https://gnu.org/licenses/gpl.html\n[cc]:    https://creativecommons.org/licenses/by-sa/3.0/\n\nCompiling\n---------\n\nAll dependencies are available in a [Nix][nix] ≥ 2.14 development environment\nthat you can enter with\n\n    $ nix develop --command $SHELL\n\nThis will bring a `python3` on the path with the right requirements for font\nsubsetting, as well as the blog generator itself, and tools for compressing\nimages.\n\nThe generator gets built as part of the development environment, but you can\nalso compile it manually with GHC if you like. Then build the site (requires\nfonts to be present):\n\n    $ ghc -o blog src/*.hs # Optional\n    $ blog\n\n[nix]: https://nixos.org/nix/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruuda%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruuda%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruuda%2Fblog/lists"}