Listings from data
You don’t need to have blog posts to create a listing on a Quarto page. For example, you can combine the following three yaml files:
blog/_metadata.yml
listing:
max-description-length: 75
date-format: short
feed: true
filter-ui: false
type: table
sort-ui: false
sort: "date desc"
categories: false
fields: [date, name]
field-links: [name]
field-display-names:
name: Title
format:
html:
anchor-sections: true
This file specifies a list of blog posts that you can have elsewhere
blog/blogs.yml
- name: "nbdev + Quarto: A new secret weapon for productivity"
path: https://www.fast.ai/2022/07/28/nbdev-v2/
date: 2022-07-28
categories: [Jupyter, Quarto, nbdev]
description: |
Our favorite tool for software engineering productivity–nbdev, now re-written with Quarto.
- name: Notebooks in production with Metaflow
path: https://outerbounds.com/blog/notebooks-in-production-with-metaflow/
date: 2022-02-09
categories: [Metaflow, Jupyter]
description: |
Introduces a new Metaflow feature that allows users to use notebooks in production ML workflows.
In the front matter of any page (like index.qmd
) you can reference blogs.yml
and _metadata.yml
like so:
index.qmd
---
sidebar: false
description: "A collection of technical blogs and talks on machine learning and data science."
toc: true
metadata-files:
- blog/_metadata.yml
listing:
id: blog-listings
contents: blog/blogs.yml
---
## Reference the listing somewhere on the page like this
[<i class="bi bi-rss"></i>](index.xml)
Subscribe via RSS:
::: {#blog-listings} :::
You can override any option specified in metadata.yml
by setting that after metadata-files
. Things that come later in the front-matter will override any inherited files.
Results
This will generate a list of blog posts that you can see here on my page, this is in the table
format. However, you can have pictures on your listing as well, which you can see from the Minimal Example.
Minimal Example
Here is a minimal example of creating an index page of all your blog posts. It uses slightly different options than I did in the above example. You can see the code for that here.
Resources
- Quarto listings
- Quarto shared metadata