Listings from data

Example of how to generate listings for external blog posts

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:

  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]
    name: Title
    anchor-sections: true

This file specifies a list of blog posts that you can have elsewhere

- name: "nbdev + Quarto: A new secret weapon for productivity"
  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
  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:

sidebar: false
description: "A collection of technical blogs and talks on machine learning and data science."
toc: true
  - blog/_metadata.yml
  id: blog-listings
  contents: blog/blogs.yml

## Reference the listing somewhere on the page like this

Subscribe via RSS: [<i class="bi bi-rss"></i>](index.xml)

::: {#blog-listings}
Overriding YAML configurations

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.


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.