All checks were successful
check / check (push) Successful in 9s
REPO_POLICIES.md mandates a fixed set of README sections; this README predated the standard being applied here and had About / Contributing / Technical Details / Entrypoints / License instead. It is now a Description first line followed by Getting Started, Entrypoints, Rationale, Design, TODO, License, Author, with Author last. Nothing the old headings held was dropped: the list of what the site publishes moved under the Description, and the contribute contact and the local-preview instructions moved into Getting Started. Getting Started was written against the current Makefile rather than carried over from the old prose, which had drifted. There is no `make build` target, so the old "Build: `hugo`" instruction is now `make test`; "Local Development: `hugo server`" is now `make setup` then `make serve`, and `make setup` is what makes a fresh clone buildable at all since it installs the pinned Hugo. Two stale claims are fixed. The site is deployed by Gitea Actions to Cloudflare Pages, not "automatically via GitHub Actions". And the Entrypoints bullet for `script/fmt` still described the top-level-markdown-only scope that #12 replaced with `'**/*.md'` and `'**/*.css'`; the rest of that section was verified accurate against the scripts, including the `script/check` order and the `CHECK_EPOCH` guard that makes a bare `docker build .` fail closed. The License section body is deliberately untouched and no LICENSE file is added: that is #10's, which is blocked on the owner's choice of license. For the same reason the Description sentence omits the license clause the policy asks for; #10 completes both. The Design section's claims were checked against the tree rather than assumed: the vendored theme, the `readFile` inline of style.css in baseof.html, the `hugo --minify` output to `public/`, and the deploy workflow.
117 lines
4.2 KiB
Markdown
117 lines
4.2 KiB
Markdown
# lora.vegas
|
|
|
|
`lora.vegas` is the website of the Las Vegas Meshtastic and LoRa community: a
|
|
single-page static site, built with Hugo, by [@sneak](https://sneak.berlin).
|
|
|
|
It publishes what the local mesh needs in one linkable place:
|
|
|
|
- Mesh channel configurations
|
|
- Community coordination links (Discord, Signal)
|
|
- Meetup information
|
|
- Local resources
|
|
|
|
## Getting Started
|
|
|
|
From a fresh clone, `make setup` installs every build dependency (git, make, go,
|
|
the pinned Hugo, node/npm) and the git pre-commit hook, and `make serve` starts
|
|
the Hugo development server:
|
|
|
|
```bash
|
|
git clone git@git.eeqj.de:sneak/lora.vegas.git
|
|
cd lora.vegas
|
|
make setup
|
|
make serve
|
|
```
|
|
|
|
Then open <http://localhost:1313> to preview the site.
|
|
|
|
To produce the production build, which writes the rendered site to `public/`:
|
|
|
|
```bash
|
|
make test
|
|
```
|
|
|
|
Before committing, run the full check suite — the production build, the lint
|
|
build, and the formatting check:
|
|
|
|
```bash
|
|
make check
|
|
```
|
|
|
|
`make fmt` rewrites the repo's markdown and CSS to the project's prettier
|
|
settings; run it if `make check` fails on formatting.
|
|
|
|
To contribute to this site, contact **sneak@sneak.berlin** for git repository
|
|
access.
|
|
|
|
## Entrypoints
|
|
|
|
This repository adheres to the
|
|
[Scripts to Rule Them All](https://github.com/github/scripts-to-rule-them-all)
|
|
standard: normalized scripts in `script/` are the entrypoints for the
|
|
development workflow, and the Makefile targets are thin shims that call them. We
|
|
provide:
|
|
|
|
- `script/bootstrap` — install all build dependencies (git, make, go, hugo,
|
|
node/npm) idempotently. Hugo is pinned to an exact version and installed with
|
|
`go install`, which verifies it against `sum.golang.org`; the version is the
|
|
`HUGO_VERSION` constant at the top of the script
|
|
- `script/setup` — prepare a fresh clone: run `script/bootstrap` and install the
|
|
git pre-commit hook
|
|
- `script/test` — the correctness check: a clean `hugo --minify` production
|
|
build
|
|
- `script/lint` — a clean build that surfaces broken links and path collisions
|
|
- `script/fmt` — format every markdown and CSS file in the repo with prettier;
|
|
the exclusions live in `.prettierignore` with the reason for each
|
|
- `script/fmt-check` — check that formatting (read-only)
|
|
- `script/check` — run `script/test`, `script/lint`, then `script/fmt-check`;
|
|
modifies no tracked files
|
|
- `script/docker` — build the Docker image tagged with the project name
|
|
- `script/cibuild` — the CI build; the Dockerfile runs `make check`
|
|
- `script/install-precommit` — install the git pre-commit hook that runs
|
|
`script/check`
|
|
|
|
Build the image through `script/cibuild` or `script/docker` only. Both pass a
|
|
per-invocation `CHECK_EPOCH` build argument that the Dockerfile requires, so the
|
|
`make check` layer can never be served from cache — without it Docker returns a
|
|
green it did not earn. A bare `docker build .` fails closed on the Dockerfile's
|
|
`CHECK_EPOCH` guard rather than caching its way to a false success.
|
|
|
|
A convenience `make serve` target runs `hugo server` for local preview.
|
|
|
|
## Rationale
|
|
|
|
The Las Vegas Meshtastic and LoRa community needs one durable, linkable place
|
|
for its channel configurations and group links. Those details otherwise live
|
|
inside a Discord or Signal thread, where they scroll away, cannot be linked to
|
|
from outside, are invisible to anyone who has not already joined, and quietly go
|
|
stale. A static site at a stable domain is the opposite of that: one URL to hand
|
|
to a newcomer, and one place to correct when a channel changes.
|
|
|
|
## Design
|
|
|
|
The site is a single page. All of its content is one Hugo content file,
|
|
`content/_index.md`, rendered by a minimal theme vendored in-repo at
|
|
`themes/loravega/` — there is no upstream theme dependency and no submodule.
|
|
|
|
The theme's `layouts/_default/baseof.html` inlines
|
|
`themes/loravega/static/css/style.css` into a `<style>` block with Hugo's
|
|
`readFile`, so the whole site ships as a single HTML document with no external
|
|
CSS request and no second round trip.
|
|
|
|
`hugo --minify` builds the site into `public/`. Deployment is automatic: on push
|
|
to `main`, the Gitea Actions workflow `.gitea/workflows/deploy.yml` builds the
|
|
site and publishes `public/` to Cloudflare Pages.
|
|
|
|
## TODO
|
|
|
|
The live task list is in [TODO.md](TODO.md).
|
|
|
|
## License
|
|
|
|
Content is provided as-is for community use.
|
|
|
|
## Author
|
|
|
|
[@sneak](https://sneak.berlin)
|