blog-post: let a post say who wrote it, in a form a machine can read - #6
Merged
Conversation
A post already carries the byline in prose -- "by Anthony 'chovy' Ettinger" -- which is exactly the form nothing can act on. Directories, feed readers and the fediverse all look for `rel="me"`, and the template published none, so a crawler could tell you the post existed and nothing about who to reach about it. Concretely: rssamplifier indexed this blog, found the author's name from the feed's managingEditor tag, and shipped an author page carrying an email and a GitHub link and nothing else -- because the pages genuinely declared nothing else. The only outbound links on the whole blog were two to kagi.com. `rel="me"` is the strongest evidence an identity extractor has, ranking above h-card, JSON-LD `sameAs` and ordinary footer links, because it is the one a publisher has to state deliberately. Verified against rssamplifier's own `identityFromHtml`: all three links come back as `source: "rel-me"`. Personal accounts only. The company's X and YouTube accounts are deliberately absent -- a directory that files an org account under a person is wrong in a way that is worse than finding nothing, and the good extractors reject them anyway. Kept inside `<article>` and smolweb-valid: one `<p>`, closed, no new elements. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ThreatCrush Security Scan2 finding(s) LOW: 2
Snippets are redacted; ThreatCrush never prints matched credential material. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
A post already carries its byline in prose — "by Anthony “chovy” Ettinger" — which is exactly the form nothing can act on. Directories, feed readers and the fediverse all look for
rel="me", and the template published none.Concretely: rssamplifier indexed this blog, got the author's name from the feed's
managingEditortag, and produced an author page with an email and a GitHub link and nothing else — because the pages genuinely declared nothing else. The only outbound links on the entire blog were two to kagi.com.What
One
<p>in the post footer, inside<article>:rel="me"outranks h-card, JSON-LDsameAsand ordinary footer links in every identity extractor I know of, because it is the one a publisher has to state deliberately.Verification
Run against rssamplifier's production
identityFromHtml, on the live page with the same block already applied:All three land as
rel-me. Both handles were confirmed to be the person rather than the company:defcon.social/@chovytitles as "Anthony Ettinger (@chovy@defcon.social)",github.com/ralyodioas "ralyodio (Anthony Ettinger)".Personal accounts only. The company X and YouTube accounts are deliberately absent — filing an org account under a person is worse than finding nothing, and good extractors reject them anyway.
Kept smolweb-valid: one paragraph, closed, no new elements.
pnpm test132 passing ·pnpm typecheckclean.Note
This changes the template for new posts. The live blog's
index.html— which is what a crawler actually fetches for the feed's site — was updated separately and directly, since that directory is not this repo.🤖 Generated with Claude Code