Skip to content

Commit f2baada

Browse files
authored
Blog/v1.8 (#1787)
* Fix aliases * Link to prerelease site for 1.9 highlights * Blog boilerplate * Add highlights * Add brand items * Flesh out other items * Fix based on review * Add lua api links * Add execution info links * FIx date
1 parent eda2736 commit f2baada

File tree

9 files changed

+396
-4
lines changed

9 files changed

+396
-4
lines changed

docs/authoring/brand.qmd

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,17 @@ logo:
332332
small: quarto-logo
333333
```
334334

335+
#### Light and Dark Logos {#light-and-dark-logos}
336+
337+
Specify different logos for light and dark mode with `light` and `dark` options under `small`, `medium`, or `large`:
338+
339+
``` {.yaml filename="_brand.yml"}
340+
logo:
341+
medium:
342+
light: logo.png
343+
dark: logo-white.png
344+
```
345+
335346
#### Document logo customization
336347

337348
You can further customize the logo at the document level with the `logo` option.
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
[Aariq](https://github.com/Aariq),
2+
[AndreasThinks](https://github.com/AndreasThinks),
3+
[ArthurData](https://github.com/ArthurData),
4+
[Blake-Madden](https://github.com/Blake-Madden),
5+
[ColinFay](https://github.com/ColinFay),
6+
[DCEW](https://github.com/DCEW),
7+
[DanStuder](https://github.com/DanStuder),
8+
[Data-Wise](https://github.com/Data-Wise),
9+
[EllaKaye](https://github.com/EllaKaye),
10+
[EmilHvitfeldt](https://github.com/EmilHvitfeldt),
11+
[FrankwaP](https://github.com/FrankwaP),
12+
[GabrielCoffee9](https://github.com/GabrielCoffee9),
13+
[GeorgRamer](https://github.com/GeorgRamer),
14+
[Gewerd-Strauss](https://github.com/Gewerd-Strauss),
15+
[GuillaumeDehaene](https://github.com/GuillaumeDehaene),
16+
[HarunCelikOtto](https://github.com/HarunCelikOtto),
17+
[HayesJohnD](https://github.com/HayesJohnD),
18+
[Joao-O-Santos](https://github.com/Joao-O-Santos),
19+
[MateusMolina](https://github.com/MateusMolina),
20+
[MichaelHatherly](https://github.com/MichaelHatherly),
21+
[PeteArm](https://github.com/PeteArm),
22+
[Selbosh](https://github.com/Selbosh),
23+
[SergeCroise](https://github.com/SergeCroise),
24+
[SrShelo](https://github.com/SrShelo),
25+
[VisruthSK](https://github.com/VisruthSK),
26+
[Vistales](https://github.com/Vistales),
27+
[abhiaagarwal](https://github.com/abhiaagarwal),
28+
[aborruso](https://github.com/aborruso),
29+
[adamblake](https://github.com/adamblake),
30+
[adamiturabi](https://github.com/adamiturabi),
31+
[alastairrushworth](https://github.com/alastairrushworth),
32+
[albertomercurio](https://github.com/albertomercurio),
33+
[alecloudenback](https://github.com/alecloudenback),
34+
[alex-r-bigelow](https://github.com/alex-r-bigelow),
35+
[allefeld](https://github.com/allefeld),
36+
[alyst](https://github.com/alyst),
37+
[andrewheiss](https://github.com/andrewheiss),
38+
[andrewpbray](https://github.com/andrewpbray),
39+
[austin-hoover](https://github.com/austin-hoover),
40+
[batpigandme](https://github.com/batpigandme),
41+
[bauerj](https://github.com/bauerj),
42+
[benkeks](https://github.com/benkeks),
43+
[benz0li](https://github.com/benz0li),
44+
[bkowshik](https://github.com/bkowshik),
45+
[blackerby](https://github.com/blackerby),
46+
[boshek](https://github.com/boshek),
47+
[brandonmontez](https://github.com/brandonmontez),
48+
[bryce-carson](https://github.com/bryce-carson),
49+
[carschandler](https://github.com/carschandler),
50+
[christopherkenny](https://github.com/christopherkenny),
51+
[cl-roberts](https://github.com/cl-roberts),
52+
[cmadland](https://github.com/cmadland),
53+
[co1emi11er2](https://github.com/co1emi11er2),
54+
[coatless](https://github.com/coatless),
55+
[cpcloud](https://github.com/cpcloud),
56+
[daxkellie](https://github.com/daxkellie),
57+
[dixslyf](https://github.com/dixslyf),
58+
[dkapitan](https://github.com/dkapitan),
59+
[econmaett](https://github.com/econmaett),
60+
[edavidaja](https://github.com/edavidaja),
61+
[edvinsyk](https://github.com/edvinsyk),
62+
[ethanwhite](https://github.com/ethanwhite),
63+
[fermarsan](https://github.com/fermarsan),
64+
[fredguth](https://github.com/fredguth),
65+
[fuhrmanator](https://github.com/fuhrmanator),
66+
[gadenbuie](https://github.com/gadenbuie),
67+
[georgestagg](https://github.com/georgestagg),
68+
[ghisvail](https://github.com/ghisvail),
69+
[ghost](https://github.com/ghost),
70+
[github-actions[bot]](https://github.com/apps/github-actions),
71+
[glin](https://github.com/glin),
72+
[gregswinehart](https://github.com/gregswinehart),
73+
[gwbrck](https://github.com/gwbrck),
74+
[halleysfifthinc](https://github.com/halleysfifthinc),
75+
[hansfn](https://github.com/hansfn),
76+
[hchulkim](https://github.com/hchulkim),
77+
[holtzy](https://github.com/holtzy),
78+
[htbunn](https://github.com/htbunn),
79+
[hturner](https://github.com/hturner),
80+
[hugetim](https://github.com/hugetim),
81+
[hutch3232](https://github.com/hutch3232),
82+
[iagopinal](https://github.com/iagopinal),
83+
[ihrke](https://github.com/ihrke),
84+
[jameslairdsmith](https://github.com/jameslairdsmith),
85+
[jdfoote](https://github.com/jdfoote),
86+
[jeremy9959](https://github.com/jeremy9959),
87+
[jfy133](https://github.com/jfy133),
88+
[jkrumbiegel](https://github.com/jkrumbiegel),
89+
[jmgirard](https://github.com/jmgirard),
90+
[jonpeake](https://github.com/jonpeake),
91+
[jvcarli](https://github.com/jvcarli),
92+
[jxpeng98](https://github.com/jxpeng98),
93+
[kandolfp](https://github.com/kandolfp),
94+
[kapsner](https://github.com/kapsner),
95+
[kathsherratt](https://github.com/kathsherratt),
96+
[kazuyanagimoto](https://github.com/kazuyanagimoto),
97+
[kevinah95](https://github.com/kevinah95),
98+
[kippandrew](https://github.com/kippandrew),
99+
[koldle](https://github.com/koldle),
100+
[lachlansimpson](https://github.com/lachlansimpson),
101+
[lbm364dl](https://github.com/lbm364dl),
102+
[leovuong](https://github.com/leovuong),
103+
[lostmygithubaccount](https://github.com/lostmygithubaccount),
104+
[lu-kas](https://github.com/lu-kas),
105+
[lukmanaj](https://github.com/lukmanaj),
106+
[lwjohnst86](https://github.com/lwjohnst86),
107+
[maelle](https://github.com/maelle),
108+
[mahmudstat](https://github.com/mahmudstat),
109+
[masud90](https://github.com/masud90),
110+
[melaniewalsh](https://github.com/melaniewalsh),
111+
[mfisher87](https://github.com/mfisher87),
112+
[mipmip](https://github.com/mipmip),
113+
[mpr1255](https://github.com/mpr1255),
114+
[multimeric](https://github.com/multimeric),
115+
[musvaage](https://github.com/musvaage),
116+
[mvuorre](https://github.com/mvuorre),
117+
[nathanj3](https://github.com/nathanj3),
118+
[nessan](https://github.com/nessan),
119+
[nichtich](https://github.com/nichtich),
120+
[odysseu](https://github.com/odysseu),
121+
[ofkoru](https://github.com/ofkoru),
122+
[olivroy](https://github.com/olivroy),
123+
[oyvindbso](https://github.com/oyvindbso),
124+
[pagiraud](https://github.com/pagiraud),
125+
[parmsam](https://github.com/parmsam),
126+
[peter-gy](https://github.com/peter-gy),
127+
[pm-gusmano](https://github.com/pm-gusmano),
128+
[produnis](https://github.com/produnis),
129+
[rabyj](https://github.com/rabyj),
130+
[raffaem](https://github.com/raffaem),
131+
[randyzwitch](https://github.com/randyzwitch),
132+
[rben01](https://github.com/rben01),
133+
[rossbowen](https://github.com/rossbowen),
134+
[rundel](https://github.com/rundel),
135+
[ryanzomorrodi](https://github.com/ryanzomorrodi),
136+
[ryjohnson09](https://github.com/ryjohnson09),
137+
[s2t2](https://github.com/s2t2),
138+
[salim-b](https://github.com/salim-b),
139+
[samcarter](https://github.com/samcarter),
140+
[serialc](https://github.com/serialc),
141+
[sgelzenleuchter](https://github.com/sgelzenleuchter),
142+
[skriptum](https://github.com/skriptum),
143+
[spaette](https://github.com/spaette),
144+
[stragu](https://github.com/stragu),
145+
[sun123zxy](https://github.com/sun123zxy),
146+
[sverrirarnors](https://github.com/sverrirarnors),
147+
[tecosaur](https://github.com/tecosaur),
148+
[temospena](https://github.com/temospena),
149+
[thatchermo](https://github.com/thatchermo),
150+
[topepo](https://github.com/topepo),
151+
[tylere](https://github.com/tylere),
152+
[winniehell](https://github.com/winniehell),
153+
[wklimowicz](https://github.com/wklimowicz),
154+
[yogabonito](https://github.com/yogabonito),
155+
[youcc](https://github.com/youcc),
156+
[yves-amevoin](https://github.com/yves-amevoin),
157+
[yyzeng](https://github.com/yyzeng).
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Run using `quarto run get-contribs.R`
2+
3+
library(tidyverse)
4+
library(gh)
5+
library(glue)
6+
7+
last_release <- "2024-04-28T00:00:00Z"
8+
milestone <- "v1.8"
9+
10+
quarto_staff_vec <-
11+
c("allenmanning", "cderv", "cscheid", "cwickham", "dragonstyle",
12+
"jjallaire", "jooyoungseo", "kevinushey", "mcanouil",
13+
"rich-iannone", "gordonwoodhull", "tarleb", "vezwork", "mine-cetinkaya-rundel")
14+
15+
# Get milestone number -----
16+
17+
milestones <- gh("/repos/{owner}/{repo}/milestones",
18+
owner = "quarto-dev",
19+
repo = "quarto-cli")
20+
21+
milestone_number <- map_int(milestones, "number")[map_chr(milestones, "title") == milestone]
22+
23+
# Get cli issues tagged with current milestone -----
24+
25+
quarto_issues <-
26+
gh(
27+
endpoint = "/repos/quarto-dev/quarto-cli/issues",
28+
.limit = 2000,
29+
.progress = FALSE,
30+
.params = list(
31+
state = "all",
32+
milestone = milestone_number
33+
)
34+
)
35+
36+
quarto_issues_tbl <- map(quarto_issues, \(x) data.frame(login = x$user$login, html_url = x$user$html_url)) |>
37+
list_rbind()
38+
39+
# Get web issues since last release -----
40+
41+
quarto_web_issues <-
42+
gh(
43+
endpoint = "/repos/quarto-dev/quarto-web/issues",
44+
.limit = 1500,
45+
.progress = FALSE,
46+
.params = list(
47+
state = "all",
48+
since = last_release
49+
)
50+
)
51+
52+
quarto_web_issues_tbl <- map(quarto_web_issues, \(x) data.frame(login = x$user$login, html_url = x$user$html_url)) |>
53+
list_rbind()
54+
55+
# Put together, exclude staff and write to file -----
56+
57+
cli_and_web_users <- bind_rows(quarto_web_issues_tbl, quarto_issues_tbl) |>
58+
filter(!(login %in% quarto_staff_vec)) |>
59+
arrange(login) |>
60+
distinct()
61+
62+
strings <- cli_and_web_users |>
63+
glue_data("[{login}]({html_url}), ")
64+
65+
strings[length(strings)] <- str_c(str_sub(strings[length(strings)], 1, -3), ".")
66+
67+
strings |> write_lines("_contribs.md")
68+
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
---
2+
title: Quarto 1.8
3+
description: |
4+
Quarto 1.8 improves brand support, introduces brand extensions, adds HTML accessibility checks, and gives access to execution context.
5+
categories:
6+
- Quarto 1.8
7+
- Releases
8+
author: Charlotte Wickham
9+
date: "2025-10-13"
10+
draft: false
11+
image: thumbnail.png
12+
image-alt: "Quarto 1.8 with a lightbulb emoji"
13+
css: /docs/output-formats/autodark.css
14+
---
15+
16+
Quarto 1.8 is available! You can get the current release from the [download page](/docs/download/index.qmd).
17+
18+
Quarto 1.8 improves support for light and dark brand colors and logos, brand extensions for sharing brands across Quarto projects, HTML accessibility checks powered by Axe-core, and access to more information about execution context from your code cells.
19+
You can read about these improvements and some other highlights below. You can find all the changes in this version in the [Release Notes](/docs/download/changelog/1.8/).
20+
21+
## Dark and light colors and logos in brand
22+
23+
You can now specify `light` and `dark` versions of any colors or logo in a brand specification:
24+
25+
```{.yaml filename="_brand.yml"}
26+
color:
27+
foreground:
28+
light: "#333333"
29+
dark: "#EEEEEE"
30+
background:
31+
light: "#EEEEEE"
32+
dark: "#333333"
33+
logos:
34+
medium:
35+
light: logo.png
36+
dark: logo-white.png
37+
```
38+
39+
This works in `_brand.yml` files as well as `brand` specified directly in document metadata.
40+
You can also present in dark mode by specifying `brand-mode: dark` in your `format: revealjs` presentations.
41+
42+
Read more in the updated [Guide > Brand](/docs/authoring/brand.qmd):
43+
44+
- [Light and dark colors](/docs/authoring/brand.qmd#light-and-dark-colors)
45+
- [Light and dark logos](/docs/authoring/brand.qmd#light-and-dark-logos)
46+
- [Brand mode](/docs/authoring/brand.qmd#brand-mode)
47+
48+
## Brand extensions
49+
50+
Share brand definitions and assets across Quarto projects with a brand extension.
51+
52+
Get started with:
53+
54+
```{.default filename="Terminal"}
55+
quarto create extension brand
56+
```
57+
58+
Read more in [Extensions > Brand](/docs/extensions/brand.qmd), and keep an eye out for other ways to reuse and share your brand in future releases.
59+
60+
## Accessibility checks for HTML
61+
62+
You can add accessibility checks using the [Axe-core engine](https://github.com/dequelabs/axe-core) to HTML documents (`format`: `html`, `revealjs` and `dashboard`) with the new `axe` option.
63+
64+
For example, you can get a summary of violations right in your document preview:
65+
66+
::: {.light-content}
67+
![A rendered webpage with an accessibility violation warning](/docs/output-formats/images/axe-violation.png){.border fig-alt="A webpage with a box in the bottom left that warns 'Serious: Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds'."}
68+
:::
69+
70+
::: {.dark-content}
71+
![A rendered webpage with an accessibility violation warning](/docs/output-formats/images/axe-violation.png){.border .autodark fig-alt="A webpage with a box in the bottom left that warns 'Serious: Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds'."}
72+
:::
73+
74+
Read about your options in [HTML Accessibility Checks](/docs/output-formats/html-accessibility.qmd)
75+
76+
We know accessability is a big concern for many of our users, and more improvements will be coming in future releases.
77+
78+
## Accessing execution information
79+
80+
Quarto sets the `QUARTO_EXECUTE_INFO` environment variable, which allows you to access information about execution context from code cells.
81+
82+
Read the JSON file located at `QUARTO_EXECUTE_INFO` and access properties such as `document-path`, `format`, `metadata` and more:
83+
84+
::: {.panel-tabset}
85+
86+
## R
87+
88+
```{.r}
89+
library(jsonlite)
90+
execute_info <- read_json(Sys.getenv("QUARTO_EXECUTE_INFO"))
91+
execute_info$`document-path`
92+
```
93+
94+
## Python
95+
96+
```{.python}
97+
import json
98+
import os
99+
100+
with open(os.getenv("QUARTO_EXECUTE_INFO")) as f:
101+
execute_info = json.load(f)
102+
execute_info["document-path"]
103+
```
104+
105+
## Julia
106+
107+
```{.julia}
108+
using JSON
109+
110+
execute_info = JSON.parsefile(ENV["QUARTO_EXECUTE_INFO"])
111+
execute_info["document-path"]
112+
```
113+
114+
:::
115+
116+
Read more in [Access execution settings from code cells](/docs/advanced/quarto-execute-info.qmd).
117+
118+
## Other Highlights
119+
120+
- Access [metadata](/docs/extensions/lua-api.qmd#metadata-access) and [variables](/docs/extensions/lua-api.qmd#variables-access) in filters and shortcodes: Use the new `quarto.variables.get()` and `quarto.metadata.get()` APIs.
121+
122+
- The default LaTeX engine is now `lualatex`.
123+
124+
Dependency updates:
125+
126+
- `mermaidjs` updated to 11.6.0.
127+
- Bootstrap icons updated to v1.13.1
128+
- `QuartoNotebookRunner` in `julia` engine updated to 0.17.3
129+
130+
## Acknowledgements
131+
132+
We'd like to say a huge thank you to everyone who contributed to this release by opening issues and pull requests:
133+
134+
{{< include _contribs.md >}}
135+
136+
The lightbulb emoji in the [listing and social card image](thumbnail.png) for this post comes from [OpenMoji](https://openmoji.org/){.external}– the open-source emoji and icon project. License: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/#){.external}
56.8 KB
Loading

docs/download/prerelease.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ anchor-sections: false
1818
editor: source
1919
image: /images/hero_right.png
2020
aliases:
21-
- changelog/1.8/
21+
- changelog/1.9/
2222
---
2323

2424
::: {.content-visible when-profile="prerelease"}

0 commit comments

Comments
 (0)