Skip to content

Commit d5de74d

Browse files
committed
pull blog post into main
1 parent c68e3ab commit d5de74d

File tree

6 files changed

+281
-0
lines changed

6 files changed

+281
-0
lines changed
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
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-11-25T00:00:00Z"
8+
milestone <- "v1.7"
9+
10+
quarto_staff_vec <-
11+
c("allenmanning", "cderv", "cscheid", "cwickham", "dragonstyle",
12+
"jjallaire", "jooyoungseo", "kevinushey", "mcanouil",
13+
"rich-iannone", "gordonwoodhull", "tarleb", "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: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
---
2+
title: Quarto 1.7
3+
description: |
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.
5+
categories:
6+
- Quarto 1.7
7+
- Releases
8+
author: Charlotte Wickham
9+
date: "2025-04-28"
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"
13+
---
14+
15+
Quarto 1.7 is out! You can get the current release from the [download page](/docs/download/index.qmd).
16+
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.
115+
116+
117+
## Acknowledgements
118+
119+
We'd like to say a huge thank you to everyone who contributed to this release by opening issues and pull requests:
120+
121+
{{< include _contribs.md >}}
109 KB
Loading
88.2 KB
Loading

0 commit comments

Comments
 (0)