Repository: luxintenebris-ai-news Clone: git clone https://github.com/moses-y/luxintenebris-ai-news
The Problem
Maintaining a daily AI news archive on a static host requires an automated pipeline that turns JSON‑based editions into consumable Markdown and RSS feeds, while keeping the file tree tidy and deployable to GitHub Pages. Manual conversion and publishing would be error‑prone and slow.
What This Does
- Stores each edition in its own sub‑directory under
archive/(e.g.,archive/2026-07-07/edition.json). - Generates Markdown files for every edition and a global RSS feed (
rss.xml). - Deploys the static site to
luxintenebris.newsvia GitHub Actions. - Keeps the archive lightweight by referencing only fonts, images, and a single stylesheet per day.
Key files: scripts/build_markdown.py, .github/workflows/deploy.yml, README.md.
How It Is Wired
Entry Point: scripts/build_markdown.py
main()– iterates over allarchive/*/edition.jsonfiles.load_edition(path)– reads JSON, returns a dict.render_markdown(edition)– formats the edition into Markdown, writes toeditions/<date>.md.update_rss(editions)– buildsrss.xmlfrom the list of editions.- Exit – script finishes after writing files, no external I/O beyond the file system.
The pipeline touches the filesystem only: reads JSON, writes Markdown and RSS. No network calls are embedded in the script. The GitHub Action (deploy.yml) reads the generated files and pushes the docs/ folder to the gh-pages branch, exposing the static site.
The only external dependency is the Python standard library (json, pathlib, datetime). No hidden side effects.
How To Use It
Setup
# No packages to install; ensure Python 3.8+ is available
Configuration No environment variables. Editions are placed under archive/<YYYY-MM-DD>/edition.json.
Running
python3 scripts/build_markdown.py
The command regenerates all Markdown editions and the RSS feed in the repository root. Commit the changes and push to trigger the GitHub Action.
Real‑World Use
A newsroom can drop a new edition.json into archive/<today>/ and run the script locally or let the CI build automatically publish the new page and update the feed. The JSON schema matches the fields used in render_markdown, so adding a new field requires only a tweak in that function.
Code Health & Issues
- Missing License –
LICENSEfile absent. Usage rights unclear. (Medium) –README.md - Sparse Tests – Only two test files (
tests/test_build.py,tests/test_rss.py) cover minimal cases. (Low) –tests/ - No Linting – No
.flake8orpyproject.toml. (Low) – None - No Docker/CI for lint – Only deploy workflow present. (Low) –
.github/workflows/deploy.yml
The code base is small, but the lack of a license and limited test coverage are notable gaps.
The Bottom Line
This repo delivers a straightforward, static‑site daily AI news archive with an automated Markdown/RSS pipeline. Its minimal Python script and GitHub Actions make it easy to run locally or deploy automatically. However, the absence of a license and shallow test coverage reduce confidence for wider reuse. It is best suited for hobby projects or internal news feeds where legal clarity and rigorous testing are not critical.