Skip to content

Commit 1d138b3

Browse files
authored
Blog post for 1.7 release (#1632)
* Draft release blog post * Improve colors in thumbnail * Not draft for review * Typo * Update freeze * Add contributors
1 parent ce84898 commit 1d138b3

File tree

10 files changed

+213
-7
lines changed

10 files changed

+213
-7
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"hash": "eaf4705019cee9d3d958f8443a2eef44",
3+
"result": {
4+
"engine": "knitr",
5+
"markdown": "---\ntitle: Quarto 1.7 \ndescription: |\n Quarto 1.7 brings big improvements to dark mode along with updates to Typst, Pandoc, a new `version` shortcode, and improvements to the `julia` engine.\ncategories:\n - Quarto 1.7\n - Releases\nauthor: Charlotte Wickham\ndate: \"xx/xx/2025\"\ndraft: false\nimage: thumbnail-1.7.jpeg\nimage-alt: \"Quarto 1.7: half the Quarto logo is light on dark, the other half dark on light\"\n---\n\nQuarto 1.7 is out! You can get the current release from the [download page](/docs/download/index.qmd).\n\nWe are especially enthusiastic about the improvements 1.7 brings to dark mode: you can now specify light and dark themes via brand, map computational outputs to themes, and have your website theme follow your viewer's preference.\nTo celebrate these changes, this site, [quarto.org](/), now has a light and dark mode.\nToggle the switch in the navigation bar (`<i class=\"bi bi-toggle-off\"></i>`{=html}) to see the difference.\n\nYou 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.7/).\n\n## Dark Mode Improvements\n\n### Specify light and dark themes via **brand.yml**\n\nYou can now specify a light and dark brand.\nFor example, at a project-level you can provide two brand files:\n\n```{.yaml filename=\"_quarto.yml\"}\nbrand:\n light: light-brand.yml\n dark: dark-brand.yml\n```\n\nStandalone HTML pages, websites, and dashboards will gain a light switch toggle allowing viewers to switch between the light and dark themes. \n\n::: {layout-ncol=2}\n\n![`light` brand](light.png){fig-alt=\"Screenshot of a webpage with a light blue body and charcoal text. A switch toggle in the navbar is 'off'.\"}\n\n![`dark` brand](dark.png){fig-alt=\"Screenshot of a webpage with a dark charcoal body and light blue text. A switch toggle in the navbar is 'on'.\"}\n\n:::\n\n\nBy default Typst documents will use the light brand, but you can set the `brand-mode` option to use the dark brand instead:\n\n```{.yaml filename=\"document.qmd\"}\n---\nformat:\n typst:\n brand-mode: dark\n---\n```\n\nRead about other ways to set a light and dark brand in [Guide > Brand](/docs/authoring/brand.qmd#dark-brand).\n\n\n### Map computational outputs to themes\n\nA new code cell option, `renderings`, allows you to indicate which computational outputs should be displayed in light and dark mode. \nCreate light and dark versions of your outputs in a single code cell, \nand add the option `renderings` to specify the order of the outputs.\nFor example, this cell creates a `light` version of a plot, \nthen a `dark` version:\n\n\n::: {.cell renderings='[\"light\",\"dark\"]'}\n\n````{.cell-code}\n```{{r}}\n#| renderings: [light, dark]\nplot(1:10) # Shown in `light` mode\n\npar(bg = \"#000000\", fg = \"#FFFFFF\", col.axis = \"#FFFFFF\")\nplot(1:10) # Shown in `dark` mode\n```\n````\n\n::: {.cell-output-display}\n![](index_files/figure-html/unnamed-chunk-1-1.png){width=672}\n:::\n\n::: {.cell-output-display}\n![](index_files/figure-html/unnamed-chunk-1-2.png){width=672}\n:::\n:::\n\n\nBoth outputs are produced, but you'll only see the one corresponding to the current state of the light switch.\nToggle the switch in the navigation bar to see the image change to reflect the theme.\n\n### Respect user color scheme\n\nSet the new `html` format option `respect-user-color-scheme` to `true` if you would like your site to honor the viewer’s operating system or browser preference for light or dark mode:\n\n```{.yaml filename=\"_quarto.yml\"}\nformat:\n html:\n respect-user-color-scheme: true\n```\n\n## Other Highlights\n\n- Typst updated to 0.13.0\n- Pandoc updated to 3.6.3\n- New [`version` shortcode](/docs/authoring/version.qmd) to insert the version of Quarto used to build your document:\n \n ::: {layout-ncol=2 layout-valign=\"center\"}\n \n ```{.markdown shortcodes=\"false\"}\n Rendered with Quarto {{< version >}}\n ```\n ::: {.border .p-1}\n Rendered with Quarto {{< version >}}\n :::\n\n :::\n\n- Improvements to the `julia` engine: \n - [`juliaup` integration](/docs/computations/julia.qmd#juliaup-integration): Use specific versions of Julia in your notebooks.\n \n - [R and Python support](/docs/computations/julia.qmd#r-and-python-support): Include `{r}` and `{python}` executable code cells via the RCall and PythonCall packages.\n \n - [Caching](/docs/computations/julia.qmd#caching-julia): Save time rendering long-running notebooks by caching results.\n \n - [Revise.jl integration](/docs/computations/julia.qmd#revise.jl-integration): Automatically update function definitions in Julia sessions.\n\n\n## Acknowledgements\n\nWe'd like to say a huge thank you to everyone who contributed to this release by opening issues and pull requests:\n\n[AndreasThinks](https://github.com/AndreasThinks), \n[ArthurData](https://github.com/ArthurData), \n[BrendonChau](https://github.com/BrendonChau), \n[DanStuder](https://github.com/DanStuder), \n[DavidFirth](https://github.com/DavidFirth), \n[Eli-78-fas](https://github.com/Eli-78-fas), \n[EllaKaye](https://github.com/EllaKaye), \n[EmilHvitfeldt](https://github.com/EmilHvitfeldt), \n[EvoArt](https://github.com/EvoArt), \n[FMKerckhof](https://github.com/FMKerckhof), \n[FrankwaP](https://github.com/FrankwaP), \n[JanPalasek](https://github.com/JanPalasek), \n[Jocarnail](https://github.com/Jocarnail), \n[MHellmund](https://github.com/MHellmund), \n[MichaelHatherly](https://github.com/MichaelHatherly), \n[Noghpu](https://github.com/Noghpu), \n[PeneLoopy](https://github.com/PeneLoopy), \n[Rafnuss](https://github.com/Rafnuss), \n[SergeCroise](https://github.com/SergeCroise), \n[TonyFly3000](https://github.com/TonyFly3000), \n[actuaristai](https://github.com/actuaristai), \n[alex-r-bigelow](https://github.com/alex-r-bigelow), \n[andrewheiss](https://github.com/andrewheiss), \n[ant-durrant](https://github.com/ant-durrant), \n[antoine4ucsd](https://github.com/antoine4ucsd), \n[arnaudgallou](https://github.com/arnaudgallou), \n[aronatkins](https://github.com/aronatkins), \n[arthurgailes](https://github.com/arthurgailes), \n[bkowshik](https://github.com/bkowshik), \n[boshek](https://github.com/boshek), \n[cbrnr](https://github.com/cbrnr), \n[cl-roberts](https://github.com/cl-roberts), \n[cmadland](https://github.com/cmadland), \n[coatless](https://github.com/coatless), \n[deepayan](https://github.com/deepayan), \n[devmcp](https://github.com/devmcp), \n[dhimmel](https://github.com/dhimmel), \n[dkapitan](https://github.com/dkapitan), \n[dmenne](https://github.com/dmenne), \n[eamcvey](https://github.com/eamcvey), \n[edavidaja](https://github.com/edavidaja), \n[fredguth](https://github.com/fredguth), \n[fuhrmanator](https://github.com/fuhrmanator), \n[gadenbuie](https://github.com/gadenbuie), \n[github-actions[bot]](https://github.com/apps/github-actions), \n[glin](https://github.com/glin), \n[gwbrck](https://github.com/gwbrck), \n[hchulkim](https://github.com/hchulkim), \n[hguturu](https://github.com/hguturu), \n[hturner](https://github.com/hturner), \n[ihrke](https://github.com/ihrke), \n[jdutant](https://github.com/jdutant), \n[jenslaufer](https://github.com/jenslaufer), \n[jkrumbiegel](https://github.com/jkrumbiegel), \n[jmgirard](https://github.com/jmgirard), \n[joelostblom](https://github.com/joelostblom), \n[kandolfp](https://github.com/kandolfp), \n[kapsner](https://github.com/kapsner), \n[kazuyanagimoto](https://github.com/kazuyanagimoto), \n[kdheepak](https://github.com/kdheepak), \n[kingo55](https://github.com/kingo55), \n[knuesel](https://github.com/knuesel), \n[kubu4](https://github.com/kubu4), \n[kv9898](https://github.com/kv9898), \n[kylie-foster](https://github.com/kylie-foster), \n[loneguardian](https://github.com/loneguardian), \n[lwjohnst86](https://github.com/lwjohnst86), \n[ma2048](https://github.com/ma2048), \n[markjholmes](https://github.com/markjholmes), \n[maurosilber](https://github.com/maurosilber), \n[mipmip](https://github.com/mipmip), \n[mroavi](https://github.com/mroavi), \n[mroberts1](https://github.com/mroberts1), \n[msh855](https://github.com/msh855), \n[mvuorre](https://github.com/mvuorre), \n[nathanj3](https://github.com/nathanj3), \n[odysseu](https://github.com/odysseu), \n[parmsam](https://github.com/parmsam), \n[peter-gy](https://github.com/peter-gy), \n[pvelayudhan](https://github.com/pvelayudhan), \n[raffaem](https://github.com/raffaem), \n[robmcd](https://github.com/robmcd), \n[ryanzomorrodi](https://github.com/ryanzomorrodi), \n[stragu](https://github.com/stragu), \n[sun123zxy](https://github.com/sun123zxy), \n[t-kalinowski](https://github.com/t-kalinowski), \n[temospena](https://github.com/temospena), \n[tjni](https://github.com/tjni), \n[torven-schalk](https://github.com/torven-schalk), \n[turcotte](https://github.com/turcotte), \n[wenyaoliu](https://github.com/wenyaoliu), \n[yhkee0404](https://github.com/yhkee0404).\n\n",
6+
"supporting": [
7+
"index_files"
8+
],
9+
"filters": [
10+
"rmarkdown/pagebreak.lua"
11+
],
12+
"includes": {},
13+
"engineDependencies": {},
14+
"preserve": {},
15+
"postProcess": true
16+
}
17+
}
45.9 KB
Loading
42.8 KB
Loading
32.6 KB
Loading
34.5 KB
Loading
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
[AndreasThinks](https://github.com/AndreasThinks),
2+
[ArthurData](https://github.com/ArthurData),
3+
[BrendonChau](https://github.com/BrendonChau),
4+
[DanStuder](https://github.com/DanStuder),
5+
[DavidFirth](https://github.com/DavidFirth),
6+
[Eli-78-fas](https://github.com/Eli-78-fas),
7+
[EllaKaye](https://github.com/EllaKaye),
8+
[EmilHvitfeldt](https://github.com/EmilHvitfeldt),
9+
[EvoArt](https://github.com/EvoArt),
10+
[FMKerckhof](https://github.com/FMKerckhof),
11+
[FrankwaP](https://github.com/FrankwaP),
12+
[JanPalasek](https://github.com/JanPalasek),
13+
[Jocarnail](https://github.com/Jocarnail),
14+
[MHellmund](https://github.com/MHellmund),
15+
[MichaelHatherly](https://github.com/MichaelHatherly),
16+
[Noghpu](https://github.com/Noghpu),
17+
[PeneLoopy](https://github.com/PeneLoopy),
18+
[Rafnuss](https://github.com/Rafnuss),
19+
[SergeCroise](https://github.com/SergeCroise),
20+
[TonyFly3000](https://github.com/TonyFly3000),
21+
[actuaristai](https://github.com/actuaristai),
22+
[alex-r-bigelow](https://github.com/alex-r-bigelow),
23+
[andrewheiss](https://github.com/andrewheiss),
24+
[ant-durrant](https://github.com/ant-durrant),
25+
[antoine4ucsd](https://github.com/antoine4ucsd),
26+
[arnaudgallou](https://github.com/arnaudgallou),
27+
[aronatkins](https://github.com/aronatkins),
28+
[arthurgailes](https://github.com/arthurgailes),
29+
[bkowshik](https://github.com/bkowshik),
30+
[boshek](https://github.com/boshek),
31+
[cbrnr](https://github.com/cbrnr),
32+
[cl-roberts](https://github.com/cl-roberts),
33+
[cmadland](https://github.com/cmadland),
34+
[coatless](https://github.com/coatless),
35+
[deepayan](https://github.com/deepayan),
36+
[devmcp](https://github.com/devmcp),
37+
[dhimmel](https://github.com/dhimmel),
38+
[dkapitan](https://github.com/dkapitan),
39+
[dmenne](https://github.com/dmenne),
40+
[eamcvey](https://github.com/eamcvey),
41+
[edavidaja](https://github.com/edavidaja),
42+
[fredguth](https://github.com/fredguth),
43+
[fuhrmanator](https://github.com/fuhrmanator),
44+
[gadenbuie](https://github.com/gadenbuie),
45+
[github-actions[bot]](https://github.com/apps/github-actions),
46+
[glin](https://github.com/glin),
47+
[gwbrck](https://github.com/gwbrck),
48+
[hchulkim](https://github.com/hchulkim),
49+
[hguturu](https://github.com/hguturu),
50+
[hturner](https://github.com/hturner),
51+
[ihrke](https://github.com/ihrke),
52+
[jdutant](https://github.com/jdutant),
53+
[jenslaufer](https://github.com/jenslaufer),
54+
[jkrumbiegel](https://github.com/jkrumbiegel),
55+
[jmgirard](https://github.com/jmgirard),
56+
[joelostblom](https://github.com/joelostblom),
57+
[kandolfp](https://github.com/kandolfp),
58+
[kapsner](https://github.com/kapsner),
59+
[kazuyanagimoto](https://github.com/kazuyanagimoto),
60+
[kdheepak](https://github.com/kdheepak),
61+
[kingo55](https://github.com/kingo55),
62+
[knuesel](https://github.com/knuesel),
63+
[kubu4](https://github.com/kubu4),
64+
[kv9898](https://github.com/kv9898),
65+
[kylie-foster](https://github.com/kylie-foster),
66+
[loneguardian](https://github.com/loneguardian),
67+
[lwjohnst86](https://github.com/lwjohnst86),
68+
[ma2048](https://github.com/ma2048),
69+
[markjholmes](https://github.com/markjholmes),
70+
[maurosilber](https://github.com/maurosilber),
71+
[mipmip](https://github.com/mipmip),
72+
[mroavi](https://github.com/mroavi),
73+
[mroberts1](https://github.com/mroberts1),
74+
[msh855](https://github.com/msh855),
75+
[mvuorre](https://github.com/mvuorre),
76+
[nathanj3](https://github.com/nathanj3),
77+
[odysseu](https://github.com/odysseu),
78+
[parmsam](https://github.com/parmsam),
79+
[peter-gy](https://github.com/peter-gy),
80+
[pvelayudhan](https://github.com/pvelayudhan),
81+
[raffaem](https://github.com/raffaem),
82+
[robmcd](https://github.com/robmcd),
83+
[ryanzomorrodi](https://github.com/ryanzomorrodi),
84+
[stragu](https://github.com/stragu),
85+
[sun123zxy](https://github.com/sun123zxy),
86+
[t-kalinowski](https://github.com/t-kalinowski),
87+
[temospena](https://github.com/temospena),
88+
[tjni](https://github.com/tjni),
89+
[torven-schalk](https://github.com/torven-schalk),
90+
[turcotte](https://github.com/turcotte),
91+
[wenyaoliu](https://github.com/wenyaoliu),
92+
[yhkee0404](https://github.com/yhkee0404).
109 KB
Loading

docs/blog/posts/2025-xx-xx-1.7-release/index.qmd

Lines changed: 104 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,117 @@
11
---
2-
title: Quarto 1.6
2+
title: Quarto 1.7
33
description: |
4-
Quarto 1.7 ...
4+
Quarto 1.7 brings big improvements to dark mode along with updates to Typst, Pandoc, a new `version` shortcode, and improvements to the `julia` engine.
55
categories:
66
- Quarto 1.7
77
- Releases
88
author: Charlotte Wickham
99
date: "xx/xx/2025"
10-
draft: true
11-
# image:
12-
# image-alt:
10+
draft: false
11+
image: thumbnail-1.7.jpeg
12+
image-alt: "Quarto 1.7: half the Quarto logo is light on dark, the other half dark on light"
1313
---
1414

15-
Quarto 1.7 has been officially released! You can get the current release from the [download page](/docs/download/index.qmd)
15+
Quarto 1.7 is out! You can get the current release from the [download page](/docs/download/index.qmd).
1616

17-
You can read about these new features and a couple of breaking changes in the sections below. You can find all the changes in this version in the [Release Notes](/docs/download/changelog/1.7/).
17+
We are especially enthusiastic about the improvements 1.7 brings to dark mode: you can now specify light and dark themes via brand, map computational outputs to themes, and have your website theme follow your viewer's preference.
18+
To celebrate these changes, this site, [quarto.org](/), now has a light and dark mode.
19+
Toggle the switch in the navigation bar (`<i class="bi bi-toggle-off"></i>`{=html}) to see the difference.
20+
21+
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.7/).
22+
23+
## Dark Mode Improvements
24+
25+
### Specify light and dark themes via **brand.yml**
26+
27+
You can now specify a light and dark brand.
28+
For example, at a project-level you can provide two brand files:
29+
30+
```{.yaml filename="_quarto.yml"}
31+
brand:
32+
light: light-brand.yml
33+
dark: dark-brand.yml
34+
```
35+
36+
Standalone HTML pages, websites, and dashboards will gain a light switch toggle allowing viewers to switch between the light and dark themes.
37+
38+
::: {layout-ncol=2}
39+
40+
![`light` brand](light.png){fig-alt="Screenshot of a webpage with a light blue body and charcoal text. A switch toggle in the navbar is 'off'."}
41+
42+
![`dark` brand](dark.png){fig-alt="Screenshot of a webpage with a dark charcoal body and light blue text. A switch toggle in the navbar is 'on'."}
43+
44+
:::
45+
46+
47+
By default Typst documents will use the light brand, but you can set the `brand-mode` option to use the dark brand instead:
48+
49+
```{.yaml filename="document.qmd"}
50+
---
51+
format:
52+
typst:
53+
brand-mode: dark
54+
---
55+
```
56+
57+
Read about other ways to set a light and dark brand in [Guide > Brand](/docs/authoring/brand.qmd#dark-brand).
58+
59+
60+
### Map computational outputs to themes
61+
62+
A new code cell option, `renderings`, allows you to indicate which computational outputs should be displayed in light and dark mode.
63+
Create light and dark versions of your outputs in a single code cell,
64+
and add the option `renderings` to specify the order of the outputs.
65+
For example, this cell creates a `light` version of a plot,
66+
then a `dark` version:
67+
68+
```{r}
69+
#| echo: fenced
70+
#| renderings: [light, dark]
71+
plot(1:10) # Shown in `light` mode
72+
73+
par(bg = "#000000", fg = "#FFFFFF", col.axis = "#FFFFFF")
74+
plot(1:10) # Shown in `dark` mode
75+
```
76+
77+
Both outputs are produced, but you'll only see the one corresponding to the current state of the light switch.
78+
Toggle the switch in the navigation bar to see the image change to reflect the theme.
79+
80+
### Respect user color scheme
81+
82+
Set the new `html` format option `respect-user-color-scheme` to `true` if you would like your site to honor the viewer’s operating system or browser preference for light or dark mode:
83+
84+
```{.yaml filename="_quarto.yml"}
85+
format:
86+
html:
87+
respect-user-color-scheme: true
88+
```
89+
90+
## Other Highlights
91+
92+
- Typst updated to 0.13.0
93+
- Pandoc updated to 3.6.3
94+
- New [`version` shortcode](/docs/authoring/version.qmd) to insert the version of Quarto used to build your document:
95+
96+
::: {layout-ncol=2 layout-valign="center"}
97+
98+
```{.markdown shortcodes="false"}
99+
Rendered with Quarto {{< version >}}
100+
```
101+
::: {.border .p-1}
102+
Rendered with Quarto {{< version >}}
103+
:::
104+
105+
:::
106+
107+
- Improvements to the `julia` engine:
108+
- [`juliaup` integration](/docs/computations/julia.qmd#juliaup-integration): Use specific versions of Julia in your notebooks.
109+
110+
- [R and Python support](/docs/computations/julia.qmd#r-and-python-support): Include `{r}` and `{python}` executable code cells via the RCall and PythonCall packages.
111+
112+
- [Caching](/docs/computations/julia.qmd#caching-julia): Save time rendering long-running notebooks by caching results.
113+
114+
- [Revise.jl integration](/docs/computations/julia.qmd#revise.jl-integration): Automatically update function definitions in Julia sessions.
18115

19116

20117
## Acknowledgements
109 KB
Loading
88.2 KB
Loading

0 commit comments

Comments
 (0)