Quarto with Python Live Coding Video Series

2025-04-24
Image showcasing the 'Quarto' and 'Python' logos, with Keith Galli on the left pointing towards them, likely indicating a connection or relationship between the two technologies.

Level up your Python

Interested in more valuable Python tutorials and updates? Join our email list.

Keith Galli‘s video series is for Python developers looking to bridge the gap between code and communication.

Quarto is an open-source scientific and technical publishing system that combines the simplicity of Markdown with the power of languages like Python. This makes it incredibly versatile and extensible for creating a wide range of outputs.

Watching live coding demos is a dynamic way to grasp these tools in action, seeing firsthand how code translates into deployed outputs. And so Keith Galli has created a comprehensive video series demonstrating how to leverage Quarto’s capabilities with Python.
You can find Keith’s YouTube channel here (@KeithGalli) and the full Quarto with Python series playlist here.

This extensive series is broken down into six videos. Let’s explore what each one covers.

 

Quarto Crash Course | Create Professional Reports, Dashboards & Websites w/ Markdown & Python Code!

YouTube Video (1:36:24) | GitHub Repo

In this 96-minute walkthrough, you’ll learn: 

  • Quarto Explained: Open-source tool to turn Python code into reports, dashboards, etc.
  • Easy Install: Learn Quarto’s CLI and VS Code extension setup.
  • Markdown Basics: Structure documents simply.
  • Embed Python: Run Python code directly in your Quarto documents.
  • Multiple Formats: One file, many outputs (HTML, PDF, slides).
  • Customize Look: Style with YAML, fenced divs, CSS.
  • VSCode for Quarto: Use VS Code visual editor for easier formatting.
  • Notebook Friendly: Convert between .qmd and Jupyter notebooks.
  • Control Layout: Arrange content in columns, rows, and cards into dashboards.
  • Dynamic Reports: Use parameters for customized outputs.
  • CLI Basics: Render and pass parameters via the command line.
  • Real Examples: See reports with interactive plots, dashboards, and websites.
  • Share Online: Learn about deployment with Posit Connect Cloud.

 

Generate 100s of custom reports in minutes with Python & Quarto! (Parameterized report automation)

YouTube Video (25:50) | GitHub Repo, initial code | GitHub Repo, final code

This video is a practical guide to generating hundreds of customized reports using Quarto and Python. Learn how to leverage Quarto’s parameter system to create PDFs and HTML reports at scale. 

Using a movie dataset example, we’ll cover:

  • Video Overview: Understand the value of using parameters in Quarto and Python to efficiently generate numerous customized reports for various scenarios.
  • Walking through some starter code: See an example of a basic Quarto Markdown file that filters movie data by genre to display the top movies.
  • Passing parameters with Python into Quarto Markdown Files: Learn how to use the command line to render a Quarto report for a specific movie genre (e.g., “action”) by passing a parameter.
  • Using a Python script to render many reports with variable parameters: Discover how to write a Python script to iterate through different genres and automatically generate a separate report for each one.
  • Dynamically generating markdown sections with Python (output: asis – execution option): Learn how to use Python for loops and the “output: asis” option to dynamically generate Markdown content, like lists of movies with titles and overviews.
  • Adding images, table of contents, & pagebreaks to our reports: See how to include movie poster images, add a table of contents, and insert page breaks into the generated reports using Quarto syntax.
  • Adding plots to our reports: Learn how to embed Python-generated plots, such as histograms of movie ratings by genre, into your Quarto reports.
  • Tying everything together: See an example of rendering reports with multiple parameters, such as the number of movies to include and the genre, demonstrating the dynamic capabilities.
  • Adding fenced divs & styling/formatting dynamically with code: Discover how to use layout fence divs within Python code to control the arrangement.

 

Fastest way to Convert Jupyter Notebooks into Analytics Reports!

YouTube Video (33:57) | GitHub Repo

Learn how to transform messy Jupyter notebooks into polished HTML reports with Quarto. 

Create professional, client-ready reports that effectively communicate data science insights to stakeholders. 

Working through an example based on a customer churn dataset, we’ll cover:

  • Video Overview & Accessing Code/Data: Learn how Quarto bridges the gap between data science notebooks and shareable reports.
  • Rendering Jupyter Notebook as HTML Output: See how to use the quarto render command in the terminal to convert a Jupyter Notebook into a basic HTML report.
  • Making quick improvements to our HTML Report (adjusting YAML parameters, hiding code/output cells): Discover how to use YAML parameters (e.g., code-echo: false) and code cell directives (e.g., #| output: false) to hide code, outputs, and warnings in the HTML report. Learn to use fence divs (::: {.content-hidden}) to hide larger content sections.
  • Understanding the Business Context & Insights from our Analysis and adding written details to the report: Understand how to interpret analysis insights (churn rate, customer behavior based on tenure, charges, contract type) and how to add markdown cells with text explanations to the report alongside the visualizations.
  • Improving page formatting (margins, body size, etc): Learn to adjust the HTML page layout by using YAML parameters such as page-layout: full and customizing the grid.body-width variable. 
  • Further aesthetic improvements: Explore additional formatting options like setting fontsize in YAML, organizing content into columns using layout directives in a Quarto Markdown (.qmd) file, and using fence divs for column layouts. Also learn about using plot.show() and interactive tables with the itables library.
  • Publishing and sharing reports effectively: Discover how to publish the generated HTML or Quarto Markdown report to Posit Connect Cloud for easy online sharing.

 

Real-World Python Dashboard Project w/ Quarto! (Airbnb Review Analysis)

YouTube Video (52:27) | GitHub Repo

In this video, we use Airbnb data as an example to put together a dashboard with Quarto and Python. We start with the basics of layout and simple components and then progress to more advanced topics, such as integrating Shiny within your Quarto doc.

  • Overview: Learn how to build interactive dashboards using Python and Quarto, featuring various components, plots, tables, and multiple pages.
  • Dataset introduction: Understand the Airbnb review data from insideairbnb.com, for Boston, access the GitHub repo with the data and starter files, and create the initial .qmd file.
  • Basic Quarto Dashboard Layout Information: Discover how to structure a Quarto dashboard using rows and cells to arrange different content blocks.
  • Adding Value Boxes to our Dashboard: Learn how to use Quarto’s value boxes to display key summary statistics with customizable titles, icons (from bootstrap icons), and colors.
  • Prepping our Airbnb Data for our Dashboard: See how to load and access the listings and reviews data from CSV files using pandas, potentially using helper functions for cleaner code.
  • Adding Matplotlib Data Visualizations to our Dashboard (line graph, bar chart): Learn how to create and embed Matplotlib plots, such as average rating trends over time and histograms of rating counts, within the dashboard.
  • Add a Map of Airbnb Listings using Latitude & Longitude (Folium Library): Discover how to use the Folium library to generate an interactive map displaying Airbnb listings based on their latitude and longitude, including custom markers and tooltips.
  • Adding Additional Dashboard Pages with Interactive Tables (itables library): Learn how to create multiple pages in your dashboard and add interactive tables of listing details and recent reviews using the itables library, including customization options and dynamic filtering. Note that the video mentions using itables version 2.0.
  • When to use Quarto versus Shiny for Dashboards?: Understand the differences between Quarto and Shiny for dashboard creation, with Quarto being suitable for static or less frequently updated dashboards shareable as a single HTML file.
  • Using Shiny within a Quarto Project: Get a brief preview of how you can integrate Shiny’s interactive capabilities (like input controls) within a Quarto dashboard for more dynamic experiences, although this is not covered in detail.
  • Hosting your Quarto Documents with Posit Connect Cloud: Learn how to host your Quarto dashboard online by publishing it to Posit Connect Cloud from a public GitHub repository.

 

Create slideshows with Markdown & Python Code

YouTube Video (40:09) | GitHub Repo | Quarto’s Brand YAML | Quarto’s slides demo page

Learn how to transform Markdown and Python code into interactive slide presentations using Quarto and reveal.js. This tutorial covers essential features like code execution, data visualization, LaTeX equations, custom styling, and slide transitions. Starting with basic slides, we’ll explore advanced functionality including background customization, animations, chalkboard annotations, and brand theming. 

  • Overview: Get an introduction to creating interactive slideshow presentations using a combination of Markdown and Python code with Quarto.
  • Getting Started with the Code: Learn about the associated GitHub repository containing the presentation files and extra assets.
  • Quarto Slideshow Basics: Understand how to create a basic slideshow by starting a .qmd file and adding initial YAML parameters to specify the Reveal.js format, along with basic markdown for slides.
  • Generating Powerpoint (pptx) Presentation Outputs: Briefly see the option to render the Quarto presentation as a PowerPoint (pptx) file, although the focus will be on Reveal.js.
  • RevealJS HTML Output Options & Features (Code Animation, Line Highlighting): Discover various interactive features of Reveal.js, such as animating code differences and highlighting specific lines of code within slides.
  • Data Visualization in Quarto (Matplotlib, Plotly, Seaborn): Learn how to embed different Python data visualizations (Matplotlib, Plotly for interactive plots, and Seaborn) into your Quarto slideshow.
  • Displaying Dataframes on Slides: See how to display Pandas DataFrames as tables within your slides and how to use the great_tables library for more enhanced table styling.
  • Presentation Features (Incrementally Revealing Items, Image Positioning, Slide Transitions, etc.): Explore various presentation features like incrementally revealing list items, absolute positioning of images with fragment indexing, and different slide transition effects.
  • Keyboard Shortcuts Functionality (Zoom in, Chalkboard, Save Presentation as PDF, etc.): Learn about useful keyboard shortcuts such as zooming, using the chalkboard for annotations (press ‘C’), accessing a PDF-friendly view (press ‘E’) for printing, and navigation controls.
  • Styling Presentations with a _brand.yml File (New in Quarto 1.6): Discover the new brand.yaml feature for creating custom themes with specified colors, logos, and potentially typography, and how naming it _brand.yaml applies it automatically.
  • Jupyter Notebook to RevealJS Slideshow: Learn how to convert a Jupyter Notebook into a Quarto Reveal.js slideshow by adding YAML parameters and rendering it using the Quarto CLI, including the importance of the --execute flag.

 

How to Build a Data Science Portfolio Website with Python & Quarto!

YouTube Video 52:07 | Quarto is Fun Website | GitHub Repo, initial code | GitHub Repo, final code

In this video, you’ll learn how to build and deploy a professional data portfolio website using Quarto and Python. This comprehensive tutorial covers everything from creating a basic website structure to adding navigation, custom themes, and interactive elements like dashboards and slideshows. By the end, you’ll know how to showcase your data science projects on your own custom domain using either Posit Connect Cloud or Netlify for deployment.

  • Overview: Get an introduction to building a data science portfolio website using Python and Quarto, tying together concepts from previous tutorials to create a deployable website.
  • Getting Started Building Websites with Quarto & Python: Learn the initial steps of creating a basic website with Quarto and Python, including setting up a directory, creating .qmd files, and rendering them.
  • Adding a Sidebar with Navigation to Your Website: Discover how to implement a sidebar for website navigation using the _quarto.yml configuration file.
  • Building a Data Portfolio of Our Past Work: See how to link previous Quarto projects and tutorials within the new portfolio website structure.
  • Choosing a Custom Website Theme: Learn how to apply different built-in themes (like Cosmo, Sketchy, Slate, Solar) to change the visual appearance of the website by modifying the _quarto.yml file.
  • Adding Many Pages & Sections to Our Website: Understand how to add more pages and organize content into sections within the website’s navigation using the _quarto.yml file, including the use of wildcards to include multiple files.
  • Adding Social Media Links (with Icons) to Your Site (GitHub, LinkedIn, YouTube, etc.): Learn how to incorporate social media links with icons in the website’s navigation bar using the _quarto.yml file and specifying Bootstrap icons.
  •  Adding More Sections to Our Site & Linking to Specific Pages: See how to further customize the navigation bar by adding more sections with specific links to different pages within the website.
  • Adding a Navbar Menu with Clickable Links to Our Website: Learn how to create a top navigation menu with clickable links to various sections and external resources, including controlling how external links are opened.
  • Adding Custom Branding and Logo Favicons & Images (_brand.yml): Discover how to use a _brand.yml file (requiring Quarto 1.6+) to add custom branding elements like a favicon and navigation bar logo to the website.
  • Deploying Our Website with Posit Connect Cloud: Learn the steps to deploy the Quarto website using Posit Connect Cloud, including setting up the necessary files and using the quarto publish command.
  • Deploying to Your Own Custom Domain (Netlify): Understand how to deploy the website to a custom domain using Netlify, including the quarto publish netlify option and connecting a purchased domain.

 

Quarto with Python Series Coda

 

This series explores creating professional reports, dashboards, slideshows, and even websites by combining Markdown and Python with Quarto’s versatile output formats and extensive customization. While it may seem comprehensive, we are just scratching the surface in terms of how Quarto may benefit you. We hope it empowers you to explore Quarto and consider adopting it to streamline your workflows, enhance collaboration, and efficiently share your data-driven results.

Join our email list for more valuable Python tutorials and updates.