The address a post is about
Somebody sends you an article. You read it, and you have two hundred words to say about it -- not a review, the thing you noticed and one sentence about why. The post is mostly the other page, and the address it is about has to live somewhere.
Until this release the honest answer was: in a paragraph, like any other link. The card such a post opens with existed as a block -- the importers make them, out of Tumblr and out of Bluesky -- but nothing anybody could type produced one. The writer that turns a post back into markdown had no syntax for it, so edit on a link post offered to drop the card, and add <file> could not make one at all. This project's own release posts stopped being link posts after 1.3 for that reason. The tool had changed; the intent had not.
Three lines in the header
---
tags: release
link: https://example.org/somebody-elses-article
link_title: The article by somebody else
link_description: What its own page says it is about.
---
Two things in this are wrong and one is worth stealing.

link: is the address the post is about. link_title: and link_description: are the words on the card. The card is drawn above the text rather than inside it: in the saved post it is the first block, ahead of the first sentence you wrote, and on the page it comes out as the paragraph before yours.
It is a header key rather than a line in the body because the card belongs to the post and not to a paragraph of it -- and because a paragraph that is only a link already means something else.
What the post is then called
A post with no title: of its own is named by the card. The heading becomes the card's title, and that heading is a link: it goes where the card goes, on the post's own page and in every listing. In a listing the date badge beside it is the way to the post itself. Below it the card does not say the same thing twice: the title has been lifted, so what is left is the description.
Two things stay yours. The post's address is still cut from your own opening words, not from the borrowed title. And the announcement, when the post goes out, carries the post's address rather than the other page's.
The type is derived, so nothing has to say type: link: a post that is a card and the words under it is filed as a link post and turns up under the site's own listing of them.
Give the post a title: and nothing is borrowed. Your heading stands, and the card renders in full underneath it -- its title, linked, with the description under it.
A paragraph that is only a link
It stays an ordinary link in ordinary text. A bare address on its own line is turned into a link and nothing more; a markdown link alone in a paragraph is a paragraph with a link in it.
That is a refusal, not an omission. If a lone link became a card, the two would be indistinguishable, and there would be no way left to write the first one -- the sentence that points at something on the way past.
What a card's address may be
A whole http:// or https:// address, or one rooted at this site -- /posts/2026/some-post/ -- for a card about another post here. The second shape is not a convenience. check --repair writes it when it straightens a relative link left behind by an import, and a value the engine writes has to be a value it reads back.
Everything else is refused before anything is written: a bare filename, a scheme that runs, and the two spellings that read as this site and resolve elsewhere, //host/path and /\host/path. A card is the one link on a post that may carry no words of its own to be judged by. link_title: with no link: behind it is refused too, rather than guessed at -- words about a card with no card.
check verifies a card rooted at this site against the archive: point one at a post that is not there and it says so by name and leaves non-zero. An address out on the web is only reached with --online.
What it costs
The card is header text, which means a desk: add <file>, or the editor that add and edit open, whose guide lists the key. The page at /write/ has no field for it -- a post written on a phone is written without a card.
Nothing goes and reads the other page. The title and the description are the ones you type -- two lines of copying, and they are plain text: markdown inside them stays on the page as the characters you wrote.
And the card goes the way a header line goes. Take the link: line out on a save and the card leaves the post, with nothing said: the save's loss guard counts the blocks under the header, and the card is no longer one of them. A card further down a post -- one an importer left there, which markdown still cannot write -- is guarded as it always was. The one in the header is a line to put back, and no warning that it is gone.

Comments