samhuri.net/Readme.md

1.9 KiB

samhuri.net

Source code for samhuri.net, powered by a Ruby static site generator.

Overview

This repository is now a single integrated Ruby project. The legacy Swift generators (gensite/ and samhuri.net/) have been removed.

  • Generator core: lib/
  • Build tasks and utility workflows: bake.rb
  • Tests: spec/
  • Config: site.toml and projects.toml
  • Content: posts/ and public/
  • Output: www/

Requirements

  • Ruby (see .ruby-version)
  • Bundler
  • rbenv recommended

Setup

bin/bootstrap

Or manually:

rbenv install -s "$(cat .ruby-version)"
rbenv exec bundle install

Build And Serve

rbenv exec bundle exec bake debug   # build for http://localhost:8000
rbenv exec bundle exec bake serve   # serve www/ locally

Configuration

Site metadata and project data are configured with TOML files at the repository root:

  • site.toml: site identity, default scripts/styles, and projects_plugin assets.
  • projects.toml: project listing entries using [[projects]].

Pressa.create_site loads both files from the provided source_path and still supports URL overrides for debug, beta, and release builds.

Other targets:

rbenv exec bundle exec bake mudge
rbenv exec bundle exec bake beta
rbenv exec bundle exec bake release
rbenv exec bundle exec bake watch
rbenv exec bundle exec bake publish_beta
rbenv exec bundle exec bake publish

Draft Workflow

rbenv exec bundle exec bake new_draft "Post title"
rbenv exec bundle exec bake publish_draft public/drafts/post-title.md

Tests And Lint

rbenv exec bundle exec rspec
rbenv exec bundle exec standardrb

Or via bake:

rbenv exec bundle exec bake test
rbenv exec bundle exec bake lint

Notes

  • bake watch is Linux-only and requires inotifywait.
  • Deployment uses rsync to the configured mudge host paths in bake.rb.