From 958384543915ac4b2615d07f001c50de39d19219 Mon Sep 17 00:00:00 2001 From: Trenton Taylor Date: Tue, 27 Oct 2026 17:31:49 -0500 Subject: [PATCH 1/2] Rewrite the README in plain language (#20) --- README.md | 113 ++++++++++----------------------------------------- package.json | 2 +- 2 files changed, 23 insertions(+), 92 deletions(-) diff --git a/README.md b/README.md index ed5809c..fdf6dbb 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,23 @@

Split Rail

-

- The attribution rail that closes every TaylorURL site. -

-

- One React component, imported by every project,
- so changing the bar changes every site at once. -

-

- Published for reading. Proprietary — see LICENSE.md. Outside contributions are not accepted. -

+

The "Built by TaylorURL" footer bar on TaylorURL sites, as a React component.

Version 2026.38.0 React 17 or later - No dependencies

-
- -## Why it is a package +Split Rail is the thin bar at the very bottom of a TaylorURL site's footer. On the left it says "Built by TaylorURL" and links to [taylorurl.com](https://www.taylorurl.com). On the right it has a Status link to the [status page](https://www.taylorurl.com/status), the site's version and the year. -A rail each project carries its own copy of is a rail nobody can change. Copies -drift in path, in length and in markup, and the bar that is supposed to be one -bar becomes as many bars as there are sites. Here it is one file with one -version, and a site takes a change by moving the dependency. +Each site installs it as a dependency instead of keeping its own copy, so a change here reaches every site when it bumps the version. - - - - - -
-

It paints nothing

-

No ground and no ink of its own. Every tone is mixed from the host's currentColor and the background stays transparent, so one rail lands correctly on a white brochure footer and a near-black dashboard alike.

-
-

It builds nowhere

-

Plain React.createElement, no JSX and no build step, so Vite, Create React App and Next.js all consume the published source as it stands.

-
+## What it does -
+- Picks up its colors from the footer it sits in, so it works on light and dark footers +- Shows the version you pass in, and the current year +- Gives the links bigger tap targets on touch screens +- Ships as plain JavaScript with no JSX, so it works in Vite, Create React App and Next.js without extra setup +- Has no dependencies apart from React 17 or later ## Install @@ -47,86 +25,39 @@ version, and a site takes a change by moving the dependency. npm install github:TaylorURL/split-rail#v2026.36.0 ``` -Pin the tag. Every consuming site does, which is what makes a new rail something a -site takes by moving its dependency rather than something that arrives on the next -install. +Pin a tag, so a site only picks up a new version of the bar when you move it. -React 17 or later is a peer dependency; the package brings nothing else with it. +## Usage -## Use - -Mount it inside the footer element, not beside it. +Put it inside the footer element, not after it. It takes its colors from its parent, so outside the footer it picks up the page background instead. ```jsx import SplitRail from '@taylorurl/split-rail' ``` -| Prop | Type | Does | -| :-------- | :------- | :----------------------------------------------------------------------------------------- | -| `version` | `string` | The build string the project already publishes. Left off, the rail shows no version. | -| `year` | `number` | The year a server render used, so a page built either side of midnight agrees with itself. | - -The rail takes its colours from the element above it, which is why its place is -inside the footer. At the app root it inherits the page body instead and reads -as a pale strip under a dark footer. - -`--tu-accent` is the one colour a host can retarget, for a palette whose hover -would otherwise fight the page. - -## Shipping plain JavaScript +| Prop | Type | What it does | +| :-------- | :------- | :------------------------------------------------ | +| `version` | `string` | The build version to show. Leave it off for none. | +| `year` | `number` | Overrides the year. You'll rarely need it. | -`src/index.js` calls `React.createElement` rather than using JSX. Two of the -consuming sites build with `react-scripts`, which does not transpile JSX inside -`node_modules`, so a JSX source file would fail their builds. +To change the hover color of the links, set the `--tu-accent` CSS variable. -## Checking a change - -`test/render.mjs` renders the component to static markup and asserts each marker -the stack checklist's rail probe reads the bar by, alongside the version, year -and colour behaviour the component promises. It names every case it ran and -exits non-zero on a failure. +## Working on it ```bash npm install npm test -``` - -`react` and `react-dom` are development dependencies, so the render has -something to render with. Neither reaches a consuming site: that takes React -from its own tree, through the peer dependency. - -Formatting and lint run over the whole tree: - -```bash -npm run format:check npm run lint +npm run format:check ``` -CI runs all three on every pull request, and `check` is the required context on -both branches. - -## Project structure - -``` -split-rail/ -├── src/index.js The component, its stylesheet, and the two links it carries -├── test/render.mjs The markup assertions a change has to keep passing -├── eslint.config.js The lint rules; .prettierrc holds the formatting ones -├── .github/workflows/ CI (the required `check` context) and the attribution gate -└── package.json Exports src/index.js directly; React is a peer dependency -``` +`npm test` renders the component to HTML and checks the markup. ## License -Copyright (c) 2026 TaylorURL LLC. All rights reserved. See [LICENSE.md](LICENSE.md). - -
- -

- One bar, one version, every site. -

+Proprietary. All rights reserved. See [LICENSE.md](LICENSE.md). diff --git a/package.json b/package.json index 7d3799a..bf9ca0d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@taylorurl/split-rail", "version": "2026.38.0", - "description": "The attribution rail that closes every TaylorURL site.", + "description": "Footer credit bar for TaylorURL sites, as a React component", "type": "module", "main": "./src/index.js", "module": "./src/index.js", From 613f8d48abdd2db5501c018f041b1578070d1be3 Mon Sep 17 00:00:00 2001 From: Trenton Taylor Date: Tue, 27 Oct 2026 17:32:22 -0500 Subject: [PATCH 2/2] Set the version to 2026.44.0 (#21) --- README.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fdf6dbb..37747b8 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

The "Built by TaylorURL" footer bar on TaylorURL sites, as a React component.

- Version 2026.38.0 + Version 2026.44.0 React 17 or later

diff --git a/package-lock.json b/package-lock.json index aefd88f..6780bea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@taylorurl/split-rail", - "version": "2026.38.0", + "version": "2026.44.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@taylorurl/split-rail", - "version": "2026.38.0", + "version": "2026.44.0", "license": "UNLICENSED", "devDependencies": { "@eslint/js": "^10.0.1", diff --git a/package.json b/package.json index bf9ca0d..aa39db4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@taylorurl/split-rail", - "version": "2026.38.0", + "version": "2026.44.0", "description": "Footer credit bar for TaylorURL sites, as a React component", "type": "module", "main": "./src/index.js",