<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>rm -rf confusion</title><description>Tutorials, analysis and reference notes on software and cloud infrastructure, from an engineer who came to it from industrial controls.</description><link>https://rmrfconfusion.com/</link><language>en-US</language><item><title>Placeholder: typography and element specimen</title><link>https://rmrfconfusion.com/articles/placeholder-typography-specimen/</link><guid isPermaLink="true">https://rmrfconfusion.com/articles/placeholder-typography-specimen/</guid><description>PLACEHOLDER CONTENT - not a real article. This page exists to render every element the article template supports, so layout and CSS can be tuned against all of them at once. Delete it before the site goes live.</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate><content:encoded>**This is placeholder content.** Nothing here is a real claim about anything. It exists
so the article template can be evaluated with every element present at once.

Body text sits at the default measure. This paragraph is here to give the column a
realistic amount of prose to be judged against, because a layout that looks right with
two sentences often falls apart with two hundred words. Line height, measure, and the
spacing between block elements are all easier to judge at length than in isolation.

A second paragraph, to check the vertical rhythm between them. Inline elements appear
here: some `inline code`, a [link to another page](/articles/), **bold text**, and
*italic text* for emphasis.

## A level-two heading

Level-two headings carry a top border and become steps in the `HowTo` structured data
when an article&apos;s type is `tutorial`. They also populate the table of contents in the
right-hand rail, which only appears when there are more than two of them.

### A level-three heading

Level-three headings are indented in the table of contents and carry no border.

## Code blocks

Short blocks and long blocks behave differently, so both are here. A short one:

```bash
npm run build
```

And a long line, which must scroll inside its own box and must never make the page
scroll sideways:

```bash
aws cloudformation deploy --region us-east-1 --stack-name placeholder-stack --template-file iac/placeholder.yaml --capabilities CAPABILITY_NAMED_IAM
```

A multi-line block with syntax highlighting:

```typescript
export function placeholder(input: string): string[] {
  return input
    .split(&apos;,&apos;)
    .map((part) =&gt; part.trim())
    .filter(Boolean);
}
```

## Lists

An unordered list:

- First item, short.
- Second item, deliberately much longer so that it wraps onto a second line and the
  hanging indent can be checked against the bullet.
- Third item.

An ordered list:

1. First step.
2. Second step.
3. Third step.

## A table

Tables need to stay readable and must scroll inside their own container rather than
widening the page.

| Field | Type | Required | Notes |
|---|---|---|---|
| `title` | string | yes | 10–75 characters |
| `tldr` | string | yes | Answer-first, 80–400 characters |
| `type` | enum | yes | Selects the structured data graph |
| `scope` | enum | no | Defaults to `core` |

## A blockquote

&gt; Blockquotes are used sparingly, usually to set off a rule or a definition rather than
&gt; to quote a person. They carry a left border and muted text.

## A horizontal rule

Above the rule.

---

Below the rule.

## Closing

The last block in an article should not collide with the topic links that follow it.</content:encoded><updated>2026-08-12T00:00:00.000Z</updated><category>placeholder-alpha</category><category>placeholder-beta</category><author>Andrew</author></item><item><title>Placeholder: an analysis piece with a long-ish title to test wrapping</title><link>https://rmrfconfusion.com/articles/placeholder-analysis/</link><guid isPermaLink="true">https://rmrfconfusion.com/articles/placeholder-analysis/</guid><description>PLACEHOLDER CONTENT - not a real article. Type is `analysis`, which emits TechArticle structured data only, with no HowTo. Exists to give the index and filters density.</description><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate><content:encoded>Placeholder body. An `analysis` piece is opinionated argument rather than a procedure,
so it emits no `HowTo` graph even though it still has headings.

## First section

Body text. This article deliberately has only two headings, which is below the
threshold for the table of contents rail - useful for checking that the layout still
looks right when the rail is absent.

## Second section

More body text, so the page has some length to it.</content:encoded><updated>2026-08-08T00:00:00.000Z</updated><category>placeholder-beta</category><author>Andrew</author></item><item><title>Placeholder: a reference note</title><link>https://rmrfconfusion.com/articles/placeholder-reference/</link><guid isPermaLink="true">https://rmrfconfusion.com/articles/placeholder-reference/</guid><description>PLACEHOLDER CONTENT - not a real article. Type is `reference`, which adds FAQPage structured data on top of TechArticle. Short by design.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate><content:encoded>Placeholder body. Reference notes are short by design. This one also has an `updated`
date later than its `published` date, so the &quot;updated&quot; line renders in the byline and
in the article cards.

## The only section

Body text.</content:encoded><updated>2026-08-11T00:00:00.000Z</updated><category>placeholder-alpha</category><author>Andrew</author></item><item><title>Placeholder: an off-topic aside</title><link>https://rmrfconfusion.com/articles/placeholder-aside/</link><guid isPermaLink="true">https://rmrfconfusion.com/articles/placeholder-aside/</guid><description>PLACEHOLDER CONTENT - not a real article. Scope is `aside`, so this must NOT appear on the homepage, but must still be reachable from /articles/ and /topics/placeholder-gamma/.</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate><content:encoded>Placeholder body. The point of this one is the `scope: aside` behaviour - it should be
absent from the homepage and present everywhere else.

## A section

Body text.</content:encoded><updated>2026-08-02T00:00:00.000Z</updated><category>placeholder-gamma</category><author>Andrew</author></item></channel></rss>