{"id":20748971,"url":"https://github.com/rhaeguard/rhaeguard.github.io","last_synced_at":"2026-04-15T11:31:40.863Z","repository":{"id":197173814,"uuid":"698101661","full_name":"rhaeguard/rhaeguard.github.io","owner":"rhaeguard","description":"mon blog où j'écris des articles sur des sujets aléatoires","archived":false,"fork":false,"pushed_at":"2025-09-07T00:51:38.000Z","size":7984,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-25T23:30:56.733Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://rhaeguard.github.io","language":"Python","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/rhaeguard.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-29T06:54:11.000Z","updated_at":"2025-09-07T00:51:42.000Z","dependencies_parsed_at":"2025-07-06T08:27:30.247Z","dependency_job_id":"25affc4e-60c5-421e-aef1-33173d8c1354","html_url":"https://github.com/rhaeguard/rhaeguard.github.io","commit_stats":null,"previous_names":["rhaeguard/unfunction","rhaeguard/rhaeguard.github.io"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rhaeguard/rhaeguard.github.io","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhaeguard%2Frhaeguard.github.io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhaeguard%2Frhaeguard.github.io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhaeguard%2Frhaeguard.github.io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhaeguard%2Frhaeguard.github.io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhaeguard","download_url":"https://codeload.github.com/rhaeguard/rhaeguard.github.io/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhaeguard%2Frhaeguard.github.io/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31839202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T11:29:19.690Z","status":"ssl_error","status_checked_at":"2026-04-15T11:29:19.171Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-17T08:19:48.693Z","updated_at":"2026-04-15T11:31:40.840Z","avatar_url":"https://github.com/rhaeguard.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# le blog\n\n[![Build the blog and deploy it to Github Pages](https://github.com/rhaeguard/rhaeguard.github.io/actions/workflows/static.yml/badge.svg?branch=main)](https://github.com/rhaeguard/rhaeguard.github.io/actions/workflows/static.yml)\n\nA custom blog engine, made for my use case, which is neither unique nor particularly challenging. It's just more fun to make my own blog engine.\n\nThis repo consists of these sections:\n\n- [main.py](./main.py) is the engine. It coordinates everything - generation of HTML, compiling Sass, etc.\n- [data.json](./data.json) is the configuration file where I keep the global data.\n- [templating_engine.py](./templating_engine.py) is the templating engine. It has a very small DSL that's capable of doing all the necessary things for my use case (variables, conditionals, loops).\n    - [templates](./templates/) is the folder where templates/fragments are kept; these templates are loaded by the engine to generate different parts of a page.\n- [css folder](./css/) contains the Sass file.\n- [posts folder](./posts/) contains all the posts written in Markdown format.\n- [assets](./assets/) contains the static assets\n\nThe code has been tested with Python 3.11. To install dependencies (create a venv if you want):\n\n```sh\npip install -r requirements.txt\n```\n\nTo generate the files:\n\n```sh\npython main.py\n```\n\nTo quickly serve the blog:\n\n```sh\n# go to the ./build folder and run\npython -m http.server\n```\n\nThe blog should be accessible at `http://localhost:8000`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhaeguard%2Frhaeguard.github.io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhaeguard%2Frhaeguard.github.io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhaeguard%2Frhaeguard.github.io/lists"}