{"id":20285623,"url":"https://github.com/aep/monorake","last_synced_at":"2025-08-16T19:10:51.760Z","repository":{"id":140902081,"uuid":"260967204","full_name":"aep/MONORAKE","owner":"aep","description":"static website builder that just works","archived":false,"fork":false,"pushed_at":"2021-07-03T17:24:56.000Z","size":1621,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-16T09:01:16.184Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/aep.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":"2020-05-03T16:01:33.000Z","updated_at":"2023-08-22T18:40:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"3b0d4377-4b0f-4d29-b5d7-389438a78022","html_url":"https://github.com/aep/MONORAKE","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/aep/MONORAKE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aep%2FMONORAKE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aep%2FMONORAKE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aep%2FMONORAKE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aep%2FMONORAKE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aep","download_url":"https://codeload.github.com/aep/MONORAKE/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aep%2FMONORAKE/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270758214,"owners_count":24640199,"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","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-14T14:27:54.673Z","updated_at":"2025-08-16T19:10:51.738Z","avatar_url":"https://github.com/aep.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"THE MONORAKE\n------------\n\nstatic website builder that just works\n\n - scss\n - go templates\n - cache busting\n - zero dependencies, it will still work tomorrow\n - really really fast\n\n\ndownload binaries here: https://github.com/aep/MONORAKE/releases\n\n\n### processing\n\nput all your stuff in a directory named source/ in whatever structure.\nthe monorake processes those files according to their file endings from left to right.\n\nso for a file named **source/bla/thingy.template.scss.hash.css**\n\n 1. tpl\n 2. scss\n 3. hashed\n 4. copied to dist/bla/thingy-87128973198273.css\n\navailable processors:\n\n - scss:   https://sass-lang.com/\n - tpl:    https://golang.org/pkg/html/template/\n - nop:    does nothing (see processing passes)\n - hash:   append hash of file content to file name\n - layout: wrap in layout.candy.html\n\n## link to hashed file\n\nhashes are added to filenames for cache busting, so browsers re-fetch it when the contents change.\nto link the file from html or whatever, a global is available in candybars\n\ngiven a file src/img/lul.hash.jpeg, ref it like this:\n\n```html\n    \u003cimg src=\"{{call .Path \"img/lul.hash.jpeg\"}}\" alt=\"lol\"\u003e\n```\n\n## caveat: processing passes\n\nthere's no dependency tree, because i've got more important things to do, so processing is done in passes.\nGiven two files with identical processing depth, like doo.html.candy and dah.html.candy,\none cannot refer to the other as hashed file.\n\nyou can work around it by adding a nop processor like dah.html.candy.nop which delays\nthat file to one pass later than doo.html.candy\n\nif someone actually cares i might implement it correctly, but until then this works well enough for me\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faep%2Fmonorake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faep%2Fmonorake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faep%2Fmonorake/lists"}