Skip to content

Markdown and discovery

Every docs and examples page, and the homepage, has a Markdown version: the same content as the HTML page, without navigation, scripts or styling, typically under a tenth of its size. Fetch the page you need as Markdown, and use an index to find it:

UseWhen
a page's Markdownyou know the page you want
llms.txtto find pages: every page, with what it's for
the docs sitemapto see how the docs are organized
llms-full.txtto load everything at once, offline or in bulk; it's large

Ask for Markdown

Add .md to a page's path, or request its own URL with Accept: text/markdown. Both return the same document:

curl https://june.dev/docs/workflows/parallelism.md
curl -H "Accept: text/markdown" https://june.dev/docs/workflows/parallelism

The homepage is https://june.dev/index.md and the docs overview is https://june.dev/docs.md.

  • Content type. Responses are text/markdown; charset=utf-8, with a Link header naming the page's canonical URL.
  • Browsers still get HTML. A request gets Markdown only when its Accept header names text/markdown and doesn't rate text/html higher, so */* and a browser's usual header get the page.
  • Links lead to Markdown. Links between pages are absolute https://june.dev/….md URLs, so an agent can follow them without getting HTML.
  • Unknown URLs are 404s. A .md URL that isn't a docs or examples page answers 404 in Markdown, and only pages in the docs can be requested, never files.
  • HTML pages point to it. Each page with a Markdown version names it in its head: <link rel="alternate" type="text/markdown" href="…">.

llms.txt

https://june.dev/llms.txt is the index, in the llms.txt format: what June is, then every page by docs section, each linked to its Markdown with a sentence on what it's for, then these agent interfaces. Read it first, then fetch only the pages you need.

The docs sitemap

https://june.dev/docs/sitemap.md is the sidebar as a nested Markdown list: each section, then its pages in reading order, linked to their Markdown. Use it to see how the docs are organized; llms.txt has the same pages with descriptions.

llms-full.txt

https://june.dev/llms-full.txt is every docs and examples page in one file, whole and in reading order. It's large, around 360 KB, so prefer llms.txt and single pages unless you want everything. Its first lines say how many documents follow, and nothing is truncated. Each document starts with a header between two lines of 80 = signs, with its title:, its section: in the docs, its page url: and its markdown: URL, one per line.

Where the Markdown comes from

It's the same source as the HTML page, not a copy. Pages about the june package are its own Markdown files, as they ship in the npm package, with links rewritten to June.dev. Pages written for the site are MDX, and each component in them has a fixed Markdown form: an excerpt of the Copy Agent's source, for example, becomes its fenced code and a link to the lines it came from. No model writes any of it.

Next