Skip to content

Repository files navigation

The btclib.org organization site

pre-commit.ci status lint homepage links

The organization site served at btclib.org, and nothing else: no package, no suite, no documentation build. GitHub Pages builds it from this repository's main branch at the root, with the classic Jekyll builder, and CNAME is what claims the domain — REPOSITORY.md reads both settings back from the endpoint.

The homepage is generated

index.md is btclib-org/.github's profile/README.md under Jekyll front matter, and that file is the organization's page — what github.com/btclib-org renders. One text, one place it is written, and a second copy of it here is the thing this arrangement exists to avoid: a transcription is the copy that goes stale.

.github/scripts/derive-homepage.sh is what writes it, from the commit its own front matter records, and the file's body is the source's bytes with nothing added or rewritten. So the derivation is checkable by anybody in one command, without reading the script:

awk 'n>=2 {print} $0=="---" {n++}' index.md | cmp - <(curl -fsSL \
  "https://raw.githubusercontent.com/btclib-org/.github/$(awk \
  '$0=="---"{n++;next} n==1&&$1=="source_commit:"{print $2;exit}' \
  index.md)/profile/README.md")

homepage.yml asks the same question on every pull request, and asks a second one on main: whether that source still says what this site says. CONTRIBUTING.md's Changing the homepage is what to do about either answer, and the script's own header has the alternatives that were weighed against deriving — transcribing the page, a git submodule, a fetch at build time — and what rejects each.

The rest of the tree

_config.yml is the site's configuration and decides what else in the root is published at all: the exclude: list there replaces Jekyll's default rather than adding to it, so a file added to this directory without an entry becomes a URL under btclib.org whether anybody meant it to or not.

CNAME holds btclib.org, and Pages reads it out of the built site on every build: it is the domain claim as a file rather than only as a setting, which is why website.yml asserts that the site it builds still carries it.

Gemfile names the github-pages release GitHub's own builder runs, so website.yml can build the site with the same toolchain and fail out loud where the builder on GitHub's side fails silently.

The rest is what section 2 of the organization's standard gives a tier-3 repository: CONTRIBUTING.md and REVIEWING.md, each the same file in every repository up to its last section, REPOSITORY.md for the settings that live outside the tree, CLAUDE.md for what a session needs, and CHANGELOG.md, LICENSE, COPYRIGHT and AUTHORS.md.

About

The btclib-org organization site

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages