{"id":15512272,"url":"https://github.com/timriley/my-site","last_synced_at":"2025-04-24T05:07:57.916Z","repository":{"id":29729369,"uuid":"122613237","full_name":"timriley/my-site","owner":"timriley","description":"Work in progress personal website; proof of concept static site generator using dry-system, rom-rb, and dry-view","archived":false,"fork":false,"pushed_at":"2024-10-05T14:34:26.000Z","size":17329,"stargazers_count":13,"open_issues_count":3,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-12-12T23:51:29.904Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/timriley.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":"2018-02-23T11:32:01.000Z","updated_at":"2024-10-05T14:34:29.000Z","dependencies_parsed_at":"2024-07-11T12:53:37.675Z","dependency_job_id":null,"html_url":"https://github.com/timriley/my-site","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/timriley%2Fmy-site","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timriley%2Fmy-site/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timriley%2Fmy-site/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timriley%2Fmy-site/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timriley","download_url":"https://codeload.github.com/timriley/my-site/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231333802,"owners_count":18360467,"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-02T09:53:33.776Z","updated_at":"2025-01-13T14:12:36.173Z","avatar_url":"https://github.com/timriley.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"# Tim’s site\n\nThis is my personal home page, implemented as a [Hanami][hanami] app extended to produce static\ncontent for deployment.\n\n[hanami]: http://hanamirb.org\n\n## Getting started\n\nRun `./bin/setup` to set up the application.\n\nReview `.env` and adjust the settings as required.\n\n## Building the site\n\nRun `./bin/build` to build the site. This will empty the `build/` directory and then repopulate it\nwith a new copy of the site's files.\n\n## Rationale\n\nI wanted a static site generator that would allow me to work in the same way I do when building a\ntypical server-side web application. So rather than building within the confines of a static site\ngeneration framework, I wanted an ordinary Ruby app app that just so happens to export a static site\nas part of its behavior.\n\nThis means:\n\n- A standard, extensible application structure, provided here by [Hanami][hanami].\n- A focus on data and types\n- A distinct layer for with working with persisted data\n- And a fully-fleshed view layer (with proper encapsulation of view behaviour, no helpers!)\n\n## Structure\n\nThis is a typical Hanami app, with a couple of additions:\n\n- An in-memory SQLite database, populated from the static files in `source/` by `Site::Prepare`\n- An extension to the router that captures GET routes\n- A `Site::Generate` that uses these routes and their matching actions to output static content\n- An `#each` method on dynamic actions that outputs their possible slugs, used by the above\n- All tied together by a `bin/build` script that is run on deploy to create the static site\n\n## License\n\nAll code is MIT licensed. All site content (in `app/assets/` and `source/`) is copyright Tim Riley,\nall rights reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimriley%2Fmy-site","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimriley%2Fmy-site","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimriley%2Fmy-site/lists"}