8000 Component substitutions by bergie · Pull Request #16 · noflo/noflo-jekyll · GitHub
[go: up one dir, main page]

Skip to content

Component substitutions - #16

Merged
bergie merged 3 commits into
masterfrom
component-substitutions
Oct 17, 2026
Merged

bergie merged 3 commits into
masterfrom
component-substitutions

Conversation

@bergie
@bergie bergie commented Oct 17, 2026
Copy link
Copy Markdown
Member

No description provided.

The README was the 2014-era document: a dead Travis badge, grunt and
CoffeeScript-era library APIs, the removed jekyll/Jekyll graph, and the
1.x liquid-node engine. It now documents the 2.x reality: the ESM/Node
22 package, the jekyll/Build graph, the promise-based library API, the
assembly-wrapped standard components, the deterministic build
guarantees, the byte-parity testing against the Jekyll 3.9 reference
(with the documented rdiscount-vs-commonmark spacing as the one
deviation), and the remaining feature gaps.
8000
The per-scope state store the relay carried through the scopeless
re-fire era is obsolete under the one-firing rule: the engine re-fires
every scope that holds pending documents on each arrival, so documents
wait in the port buffer — one partition per message scope — and are
consumed head-first when the standing config and template store can
resolve them. The head is peeked at non-consumingly via a validator
pinned to the first data IP, so the any-match has() scan can never
consume a later document out of order. The drain guard is per scope:
a same-scope activation that fires while the drain is in flight
declines at the has-level, and the drain's re-checks pick its packet
up; other scopes drain independently.

The template corpus becomes standing site configuration on a control
gate: its arrival re-fires every scope that holds pending documents —
the only per-scope re-fire trigger for documents buffered behind the
corpus race, which a regular firing port's scopeless activation could
not reach. The corpus arrives as one bracket-framed stream (a second
StreamEnvelope merges the layouts and includes listings: the control
buffer keeps the latest stream, so two separate listing groups would
discard each other) and is re-registered idempotently on every firing
via the non-consuming control-stream read.

The config port follows the gate model accordingly: control, standing,
non-consuming.
@bergie
bergie merged commit ca6170b into master Oct 17, 2026
2 checks passed
@bergie
bergie deleted the component-substitutions branch October 17, 2026 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0