newsmode
search
Меню
arrow_back Назад

Listings from data – Hamel’s Blog - Hamel Husain

auto_awesomeКраткое саммари

Заметка Hamel Husain показывает, что для создания listing (списка) на странице Quarto необязательно иметь сами посты в блоге. Достаточно скомбинировать три YAML-файла: blog/_metadata.yml с настройками отображения (формат таблицы, сортировка по дате, поля date и name), blog/blogs.yml со списком записей (имя, путь, дата, категории и описание) и index.qmd, который через metadata-files и блок listing ссылается на эти файлы. Любую опцию из _metadata.yml можно переопределить, указав её позже во front matter. В качестве результата генерируется список постов в формате table, а также приводится минимальный пример с кодом на GitHub и ссылки на документацию Quarto по listings и shared metadata.

Чтобы создать listing на странице Quarto, вам необязательно иметь записи в блоге. Например, можно скомбинировать следующие три yaml-файла:

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

Этот файл задаёт список записей блога, которые могут находиться в другом месте

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.

Во front matter любой страницы (например, index.qmd) можно сослаться на blogs.yml и _metadata.yml следующим образом:

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 Subscribe via RSS: [](index.xml) ::: {#blog-listings} :::

Любую опцию, заданную в metadata.yml, можно переопределить, указав её после metadata-files. То, что идёт позже во front matter, переопределяет любые унаследованные файлы.

Результаты

В итоге будет сгенерирован список записей блога, который вы можете увидеть здесь, на моей странице — он сделан в формате table. Однако в listing можно добавить и картинки, как показано в Minimal Example.

Минимальный пример

Вот минимальный пример создания страницы-индекса со всеми записями вашего блога. В нём используются немного другие опции, чем в примере выше. Код для него можно посмотреть здесь.

Ресурсы

Quarto listings Quarto shared metadata