{"id":13439641,"url":"https://github.com/soupi/learn-haskell-blog-generator","last_synced_at":"2025-10-07T11:25:31.915Z","repository":{"id":38037140,"uuid":"310796561","full_name":"soupi/learn-haskell-blog-generator","owner":"soupi","description":"Learn Haskell by building a blog generator - an introductory book about Haskell.","archived":false,"fork":false,"pushed_at":"2025-03-30T12:47:00.000Z","size":17114,"stargazers_count":296,"open_issues_count":0,"forks_count":50,"subscribers_count":6,"default_branch":"book","last_synced_at":"2025-04-08T15:06:30.041Z","etag":null,"topics":["book","haskell","haskell-learning","learning-haskell","mdbook","tutorial"],"latest_commit_sha":null,"homepage":"https://learn-haskell.blog","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soupi.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2020-11-07T08:03:59.000Z","updated_at":"2025-04-01T02:35:30.000Z","dependencies_parsed_at":"2023-09-22T06:20:05.063Z","dependency_job_id":"ba5a9a28-206f-4020-b255-9fdbdcbd0132","html_url":"https://github.com/soupi/learn-haskell-blog-generator","commit_stats":{"total_commits":223,"total_committers":27,"mean_commits":8.25925925925926,"dds":"0.34080717488789236","last_synced_commit":"a0dac9cbd23bafc2f6e0f1589b92c9f925ab17c0"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soupi%2Flearn-haskell-blog-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soupi%2Flearn-haskell-blog-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soupi%2Flearn-haskell-blog-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soupi%2Flearn-haskell-blog-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soupi","download_url":"https://codeload.github.com/soupi/learn-haskell-blog-generator/tar.gz/refs/heads/book","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254471028,"owners_count":22076582,"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":["book","haskell","haskell-learning","learning-haskell","mdbook","tutorial"],"created_at":"2024-07-31T03:01:15.866Z","updated_at":"2025-10-07T11:25:26.846Z","avatar_url":"https://github.com/soupi.png","language":null,"funding_links":[],"categories":["HarmonyOS","Others"],"sub_categories":["Windows Manager"],"readme":"# learn-haskell-blog-generator\n\nThis is the source repository for\n\"Learn Haskell by building a blog generator\",\na project-oriented book about Haskell.\n\nTo view the book, visit the [website](https://learn-haskell.blog).\n\nTo report issues and ask questions,\nvisit the [issue tracker](https://github.com/soupi/learn-haskell-blog-generator/issues).\n\n## Code reference\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eChapter\u003c/th\u003e\n      \u003cth\u003eCode\u003c/th\u003e\n      \u003cth\u003eCommit\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e3.9 - HTML EDSL\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/tree/2a4691de627bcb280e92f3d02a88d5404179dc86\"\u003eTree\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e4.4 - Markup parsing\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/tree/9f951a05d4f78cf59190ee4f3cd8de85e1c33bd1\"\u003eTree\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/commit/9f951a05d4f78cf59190ee4f3cd8de85e1c33bd1\"\u003eDiff\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e5.1 - Markup to HTML conversion\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/tree/ad34f2264e9114f2d7436ff472c78da47055fcfe\"\u003eTree\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/commit/ad34f2264e9114f2d7436ff472c78da47055fcfe\"\u003eDiff\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e5.2 - IO\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/tree/908e7173cf32de5ce8507e43a1fb9124fc5d63f4\"\u003eTree\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/commit/908e7173cf32de5ce8507e43a1fb9124fc5d63f4\"\u003eDiff\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e5.3 - Package format\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/tree/8ca58aef80930db82cd20e85f44f5e34e1d74214\"\u003eTree\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/commit/8ca58aef80930db82cd20e85f44f5e34e1d74214\"\u003eDiff\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e5.4 - CLI options parsing\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/tree/d0d76aad632fe3abd8701e44db5ba687e0c7ac96\"\u003eTree\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/commit/d0d76aad632fe3abd8701e44db5ba687e0c7ac96\"\u003eDiff\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e6 - Richer HTML content\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/tree/110a19029f0be42eb2ac656f5d38356dbf9c5746\"\u003eTree\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/commit/110a19029f0be42eb2ac656f5d38356dbf9c5746\"\u003eDiff\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e6.5 - Handling multiple files\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/tree/a08d148d981fa00cb7025f1b651d7b75084dd1ae\"\u003eTree\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/commit/a08d148d981fa00cb7025f1b651d7b75084dd1ae\"\u003eDiff\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e7 - Environment\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/tree/f9fe7179fcf0e6c818f6caa860b52e991432dab2\"\u003eTree\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/commit/f9fe7179fcf0e6c818f6caa860b52e991432dab2\"\u003eDiff\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e8 - Testing\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/tree/da1615b6e0a2a4ff2728528240d790754853bf02\"\u003eTree\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/soupi/learn-haskell-blog-generator/commit/da1615b6e0a2a4ff2728528240d790754853bf02\"\u003eDiff\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoupi%2Flearn-haskell-blog-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoupi%2Flearn-haskell-blog-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoupi%2Flearn-haskell-blog-generator/lists"}