Hello world

What this site is, and the conventions it runs on.

This is the first post. It exists to establish the conventions everything else follows, and to give the build something real to chew on.

Plain Markdown by default

Posts are .md files in src/content/posts/. Ordinary Markdown works exactly as you’d expect — bold, italic, inline code, links, lists, tables, blockquotes, and fenced code blocks:

function greet(name: string): string {
  return `hello, ${name}`;
}

Posts that need an interactive component switch to .mdx. Nothing else does.

Any post can link to any other with double brackets. This links to the widgets post: Widgets in posts. You can override the link text too: the one with the slider.

Links resolve against the target’s slug, then its aliases, then its title — so [[Hello world]] and [[colophon]] both find this page. The target’s page grows a “Linked from” panel automatically; there is nothing to maintain by hand.

A link that doesn’t resolve renders like this — a post that does not exist — and logs a build warning. It won’t fail the build. Typos in prose shouldn’t block a deploy.

Callouts

Three variants, all usable from plain Markdown:

Footnotes and the rest

Standard Markdown extensions work, including footnotes1 and strikethrough.

That’s the whole authoring surface. See the README for the frontmatter contract.

Footnotes

  1. Like this one.