Blog indexes and lists of pages in plain Markdown
A blog/ folder now lists itself, and a ```blog block or layout: list shows any folder as a blog index, a grid, a compact archive or a team page, and every post gets a proper post page. Works in .md.

You can now list the pages of any folder without MDX or components. Add layout: list to a folder's README.md, or put a ```blog block on any page:
- A
blog/orposts/folder lists itself, at any depth: with no README,/blogis a paginated index; a README or Obsidian folder note with only prose gets the list underneath. - Zero config: newest first, with images, dates, descriptions and author names, 20 per page.
- Latest posts anywhere:
```blogwithlimit: 3on your home page. - List and grid views: thumbnails on the left (or
media: thumb right), covers in the grid, and a letter tile for grid cards without an image (or your owndefaultImage).sort,whereandfieldschoose what each card shows. - Compact archives:
view: compactgives one line per post (date, then title), grouped by year on alayout: listpage. - Team pages:
view: peopleshows a folder of people as portraits with name, role and bio; people without a photo get their initials. - A featured post:
featured: 1puts the post markedfeatured: true(or the latest) in a large hero above the rest; withview: gridthat's a magazine-style home page. - Grouping:
group: year,month,folderor any field (group: team) adds a heading before each group. - Dates in your language with the new
localesetting. - Clear errors: a wrong key shows a card that names it and suggests the fix.
- Posts that look like posts: every dated page in a
blog/orposts/folder (or in alayout: listfolder of dated pages) gets a reading column, a big title with your description, the author's photo and the date, yourimageas a cover, and at the end its tags, previous and next links and three "Read more" cards (same tag first). Works in.mdand.mdx. See Post pages.
Themes: the official themes were updated for the new layouts. If you pin a theme version (theme: leaf@v0.1.8), move to v0.1.9 or later; if your custom.css restyles .list-component, scope those rules to .list-component:not([data-view]) to keep them on the old <List /> only.
See Listing pages. The <List /> component keeps working; the docs show how to switch.
⚠️ Check your site
- A
blog/orposts/README, index page or folder note with only prose now gets a generated list under it, in a reading-width column. Addlist: falseto its frontmatter to keep it as before. See A blog with nothing to write. ```listand```blogcode blocks now render as lists. To show one as code, wrap it in four backticks.draft: truein frontmatter now hides a page from listings (including<List />and changelog timelines), the RSS feed, the sitemap, site search, tag pages and the sidebar, and asks search engines not to index it. The page itself stays reachable at its URL. Worth checking if you imported posts from Hugo, Jekyll or Astro that still carry it. See Which pages are listed.- Dated pages in a
blog/orposts/folder, or in alayout: listfolder of mostly dated pages, now use the post layout: a narrower column, tags at the end instead of under the title, and new previous/next and "Read more" links. Theimagein a post's frontmatter now shows as a cover, uncropped, unless the post already shows it in its text or it is a small or square image such as a logo; addshowImage: falseto a post to hide it (the image stays its social card),layout: defaultto keep a page as it was, orpostLayout: falseto the folder's README for the whole folder. See Turning it off. - Author names link only to a page whose name matches exactly, preferring
people/andauthors/folders. See Author pages.
Fixes
- A page number past the last page of a list (
?page=99) is now a 404, as on the changelog, instead of an empty page. - Pages 2 and on of a paginated list block now point search engines at themselves rather than at page 1.
- Generated
blog/andposts/listing pages (folders without a README) are now in the sitemap. - A list block inside a changelog entry no longer shows page links on the changelog timeline.
<List />no longer lists pages markedpublish: false.<List />pagination shows one...per gap instead of one per hidden page.- The RSS feed no longer fails when a post has an unusual
title,authorordescription(a number, or a wiki link).