mirror of
https://github.com/samsonjs/samhuri.net.git
synced 2026-04-02 10:15:55 +00:00
86 lines
1.9 KiB
Markdown
86 lines
1.9 KiB
Markdown
# samhuri.net
|
|
|
|
Source code for [samhuri.net](https://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
|
|
|
|
```bash
|
|
bin/bootstrap
|
|
```
|
|
|
|
Or manually:
|
|
|
|
```bash
|
|
rbenv install -s "$(cat .ruby-version)"
|
|
rbenv exec bundle install
|
|
```
|
|
|
|
## Build And Serve
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
rbenv exec bundle exec bake new_draft "Post title"
|
|
rbenv exec bundle exec bake publish_draft public/drafts/post-title.md
|
|
```
|
|
|
|
## Tests And Lint
|
|
|
|
```bash
|
|
rbenv exec bundle exec rspec
|
|
rbenv exec bundle exec standardrb
|
|
```
|
|
|
|
Or via bake:
|
|
|
|
```bash
|
|
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`.
|