{"id":17499482,"url":"https://github.com/pothos/schlocky","last_synced_at":"2026-01-22T23:40:53.787Z","repository":{"id":191047017,"uuid":"683820864","full_name":"pothos/schlocky","owner":"pothos","description":"A schlocky client-side static web site generator","archived":false,"fork":false,"pushed_at":"2023-08-31T21:07:39.000Z","size":16,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-19T21:06:51.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pothos.github.io/schlocky/","language":"HTML","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/pothos.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}},"created_at":"2023-08-27T19:56:36.000Z","updated_at":"2023-09-01T09:36:03.000Z","dependencies_parsed_at":"2025-03-04T21:41:46.147Z","dependency_job_id":null,"html_url":"https://github.com/pothos/schlocky","commit_stats":null,"previous_names":["pothos/schlocky"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pothos%2Fschlocky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pothos%2Fschlocky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pothos%2Fschlocky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pothos%2Fschlocky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pothos","download_url":"https://codeload.github.com/pothos/schlocky/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248896581,"owners_count":21179458,"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-19T17:10:30.598Z","updated_at":"2026-01-22T23:40:53.749Z","avatar_url":"https://github.com/pothos.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A schlocky client-side static web site generator\n\nGot carried away on a Sunday afternoon and the result is a static site generator that…\n\n- requires no build step or deployment pipeline because the Markdown rendering is done in the browser through [showdown](https://github.com/showdownjs/showdown)\n- fetches internal links without a full page reload\n- ships as a single `index.html` file, to use as-is or as base for customizations\n- loads a default style from `style.css` and default Javascript from `scripts.js`, both optional\n- has no template language (for now) but allows to prepend shared Markdown/HTML/CSS/JS parts, e.g., for a menu\n- lacks any advanced features!\n\nAs improvement one could do the link rewriting after fetching to show the final links in the tooltip and retain the base path context for links in includes that are relative.\n\nLive demo: [https://pothos.github.io/schlocky/](https://pothos.github.io/schlocky/)\n\nOr use it to render the [Rust contribution guide](https://pothos.github.io/schlocky/?i=https://raw.githubusercontent.com/rust-lang/rust/master/CONTRIBUTING.md).\n\n## Usage\n\nThe file to render gets specified in the URL as query parameter `?i=FILE`.\nThe default file is `index.md`. The `.md` suffix can be omitted, e.g., `/?i=about` (or `/index.html?i=about` if `/` does not directly serve `index.html`). You can even point it to a GitHub branch with `?i=https://raw.githubusercontent.com/USER/REPO/BRANCH/FILE.md`. Note that the paths are resolved with the `index.html` folder path prepended to absolute and relative paths. For external HTTP paths relative movement works but absolute paths will be resolved according to the current page.\n\nThis repository already contains example Markdown files, example `style.css` and `scripts.js` files, and a Linux helper script to run a local Python web server to try it out:\n\n```\n./serve.sh\n# Now open http://127.0.0.1:8000/\n```\n\nWhen using GitHub pages, make sure you create the `.nojekyll` file in your repo to publish all files.\n\nThe Markdown files can start with metadata that sets the page title and may prepend common parts. Here is how an `index.md` could look like:\n\n```\n---\ntitle: My Page\nincludes: menu.md\n---\nHere is the *index* page!\n```\n\nThe `menu.md` could contain this (here absolute paths are used to make the links also work when opened from subfolders where the menu is included with `includes: ../menu.md`, as the main page URL path still gets prepended to absolute links):\n\n```\n* [Index](?=/)\n* [About](?i=/about)\n```\n\nAnd `about.md` could be:\n\n```\n---\ntitle: My Page - About\nincludes: menu.md substyle.md\n---\nThis is the *about* page.\n```\n\nWhere `substyle.md` could inject CSS rules and code that are not part of `style.css` or `scripts.js` and only apply to `?i=about`:\n\n```\n\u003cstyle\u003e\nbody {\n  color: blue;\n}\n\u003c/style\u003e\n\u003cscript\u003e\nconsole.log(\"about\");\n\u003c/script\u003e\n```\n\n## Similar Projects\n\n[cms.js](https://github.com/chrisdiana/cms.js)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpothos%2Fschlocky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpothos%2Fschlocky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpothos%2Fschlocky/lists"}