Skip to content

Commit 64db3a7

Browse files
committed
Merge branch 'main' into feature/improve-alias-warn
2 parents 67e4c3b + 7cfbe4c commit 64db3a7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+2541
-2228
lines changed

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ authors:
2020
given-names: "Gordon"
2121
orcid: "https://orcid.org/0009-0005-1809-8936"
2222
title: "Quarto"
23-
version: 1.6
23+
version: 1.7
2424
doi: 10.5281/zenodo.5960048
25-
date-released: 2024-11-27
25+
date-released: 2025-04-28
2626
url: "https://github.com/quarto-dev/quarto-cli"

configuration

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export ALGOLIA_SEARCH_INSIGHTS_JS=2.0.3
6161

6262

6363
# Quarto Info Version
64-
export QUARTO_VERSION=1.7
64+
export QUARTO_VERSION=1.8
6565
export QUARTO_NAME=Quarto
6666

6767
# Folder names. These are not the same as paths (those variable names end in _PATH).

dev-docs/checklist-make-a-new-quarto-release.md

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,21 @@
22
- [ ] create a branch `v1.x`, where x is the version being released
33
- `git checkout -b v1.4`
44
- `git push origin v1.4`
5-
- [ ] mark the current release as the stable release in the `main` branch
5+
- [ ] mark the current release as the new release in the `main` branch
66
- [ ] edit QUARTO_VERSION line in `/configuration` to be the new version (e.g. `1.5`)
77
- [ ] push the changes to the `main` branch
88
- [ ] kick off a v1.5 build in GHA: https://github.com/quarto-dev/quarto-cli/actions/workflows/create-release.yml
99
- [ ] ensure the build completes successfully
1010
- [ ] mark v1.4 release as stable
11-
- go to https://github.com/quarto-dev/quarto-cli/releases
12-
- find the latest v1.4 release and edit, (eg https://github.com/quarto-dev/quarto-cli/releases/edit/v1.4.549)
13-
- at the bottom of the page, there will be two checkboxes, "Set as pre-release" and "Set as latest release":
14-
- "Set as pre-release" should be unchecked, and
15-
- "Set as latest release" should be checked.
11+
- [ ] go to https://github.com/quarto-dev/quarto-cli/releases
12+
- [ ] find the latest v1.4 release and edit, (eg https://github.com/quarto-dev/quarto-cli/releases/edit/v1.4.549)
13+
- [ ] at the bottom of the page, there will be two checkboxes, "Set as pre-release" and "Set as latest release":
14+
- [ ] "Set as pre-release" should be unchecked, and
15+
- [ ] "Set as latest release" should be checked.
1616
- [ ] once the v1.5 build completes, edit the quarto.org website configuration on https://github.com/quarto-dev/quarto-web to reflect the new version
1717
- this means flipping the profile group configuration in `_quarto.yml` from `[rc,prelease]` to `[prerelease,rc]`
1818
- [ ] push the changes to the `main` branch
1919
- [ ] quarto-dev/quarto-web changes
20-
2120
- wait for the downloads file to be automatically updated by the GitHub Action on https://github.com/quarto-dev/quarto-web
2221
- [ ] wait for https://github.com/quarto-dev/quarto-web/actions/workflows/update-downloads.yml to run (it runs every 15 minutes, or you can manually trigger it)
2322
- This workflow run rendered the website: https://github.com/quarto-dev/quarto-web/actions/runs/12016407762
@@ -30,20 +29,22 @@
3029
- [ ] create `docs/prerelease/1.5/{_highlights, index, _pre-release-feature}.qmd` files based on the ones from the previous release
3130
- [ ] change `docs/prerelease/_highlights.qmd` so its include points to the new version-specific `_highlights.qmd` file (here, 1.5)
3231
- [ ] change `docs/prerelease/_highlights-release.qmd` so its include points to the new version-specific `_highlights.qmd` file (here, 1.4)
33-
- [ ] add the stable version to the older downloads list, like [this example](https://github.com/quarto-dev/quarto-web/commit/85ef62ec5036026d62d57f9cfb190d8b923b2d43)
34-
- [ ] run `quarto run tools/release-notes.R` to generate the release notes
32+
- [ ] add the stable version to the older downloads list by editing /docs/download/_download-older.yml
33+
- [ ] run `quarto run tools/release-notes.R` to generate the release notes
3534
- [ ] push the changes to `prerelease` branch, ensure they build correctly
36-
- [ ] Merge the `prerelease` branch into `main`
35+
- [ ] Merge the `prerelease` branch into `main`, push to `main`
3736
- [ ] ensure the build completes successfully
38-
- [ ] Merge `main` into `prerelease`
37+
- [ ] Merge `main` into `prerelease`, push to `prerelease`
3938
- [ ] ensure the build completes successfully
40-
- [ ] Create new tag on `main` (here, `v1.5`)
41-
- [ ] `git tag -a v1.5 -m "v1.5"`
42-
- [ ] `git push origin v1.5`
39+
- [ ] Create new tag on `main` with stable release version number (here, `v1.4`) to mark when the new main site version went live
40+
- [ ] `git tag -a v1.4 -m "v1.4"`
41+
- [ ] `git push origin v1.4`
4342
- [ ] Update `prerelease` version number (here, `v1.5`)
4443
- [ ] edit `_quarto-prerelease-docs.yml` to point to the new version
4544
- [ ] publish the release blog post that should exist in https://github.com/quarto-dev/quarto-web/tree/main/docs/blog/posts
46-
by removing the `draft: true` line in the metadata and changing the date to match the release date. Do this on a branch off of `main` to trigger our PR automation to make the corresponding change to `prerelease`.
45+
- [ ] Create a branch off of `main` (to trigger our PR automation to make the corresponding change to `prerelease`).
46+
- [ ] Removing the `draft: true` line in the metadata
47+
- [ ] Change the date to match the release date.
4748

4849
- [ ] Update https://github.com/quarto-dev/quarto-cli/blob/main/CITATION.cff
4950
- [ ] Packaging and package managers, etc
@@ -55,8 +56,8 @@
5556
- Check the "Whether to publish or not the package on chocolatey" checkbox
5657
- Wait for @cderv to receive email confirmation, no action needed
5758
- [ ] pypi
58-
- Goto the [quarto-cli-pypi repo](https://github.com/quarto-dev/quarto-cli-pypi)
59-
- Update `version.txt` to be the version you'd like to publish and commit
59+
- Go to the [quarto-cli-pypi repo](https://github.com/quarto-dev/quarto-cli-pypi)
60+
- [ ] Update `version.txt` to be the version you'd like to publish and commit
6061
- Go to actions
6162
- Select 'Publish Quarto PyPi'
6263
- [ ] Click "Run Workflow"

news/changelog-1.7.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ All changes included in 1.7:
122122
### `julia`
123123

124124
- ([#11803](https://github.com/quarto-dev/quarto-cli/pull/11803)): Added subcommands `status`, `kill`, `close [--force]` and `log` under the new CLI command `quarto call engine julia`.
125-
- ([#12121](https://github.com/quarto-dev/quarto-cli/pull/12121)): Update QuartoNotebookRunner to 0.16.0. Support for evaluating Python cells via [PythonCall.jl](https://github.com/JuliaPy/PythonCall.jl) added. Support for notebook caching via `execute.cache` added.
125+
- ([#12121](https://github.com/quarto-dev/quarto-cli/pull/12121)): Update QuartoNotebookRunner to 0.17.0. Support for evaluating Python cells via [PythonCall.jl](https://github.com/JuliaPy/PythonCall.jl) added. Support for notebook caching via `execute.cache` added.
126126
- ([#12151](https://github.com/quarto-dev/quarto-cli/pull/12151)): Basic YAML validation is now active for documents using Julia engine.
127127

128128
### `jupyter`
@@ -153,9 +153,15 @@ All changes included in 1.7:
153153
- ([#12326](https://github.com/quarto-dev/quarto-cli/issues/12326)): Add `quarto.shortcode.*` API entry points for shortcode developers.
154154
- ([#12365](https://github.com/quarto-dev/quarto-cli/pull/12365)): `brand color` shortcode takes an optional `brandMode` second parameter, default `light`.
155155
- ([#12453](https://github.com/quarto-dev/quarto-cli/issues/12453)): Expose `_quarto.modules.brand` as `quarto.brand` and add `has_mode()` function.
156+
- ([#12564](https://github.com/quarto-dev/quarto-cli/issues/12564)): `brand logo` shortcode also takes an optional `brandMode` second parameter, default `light`.
156157

157-
## Lua API
158+
### Conditional Content
158159

160+
- ([#4411](https://github.com/quarto-dev/quarto-cli/issues/12462)): Added support for new format and aliases in `when-format` and `unless-format`: `confluence`, `docusaurus` (and `docusaurus-md`), `email`, `dashboard`, `gfm`, `hugo` (and `hugo-md`).
161+
162+
### Quarto Lua API
163+
164+
- ([#4411](https://github.com/quarto-dev/quarto-cli/issues/12462)): `quarto.format.is_format` is now working as expected with support of more aliases: `confluence`, `docusaurus` (and `docusaurus-md`), `email`, `dashboard`, `gfm`, `hugo` (and `hugo-md`)
159165
- ([#12299](https://github.com/quarto-dev/quarto-cli/issues/12299)): `quarto.doc.pdf_engine()` now correctly returns the PDF engine used for the document. `quarto.doc.cite_method()` now returns `nil` if no citation method will be used (i.e. no references is the document set).
160166

161167
## Languages

news/changelog-1.8.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
All changes included in 1.8:
2+
3+

src/core/brand/brand.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,12 @@ export class Brand {
158158
if (v) {
159159
logo[size] = v;
160160
}
161-
for (const [key, value] of Object.entries(data.logo?.images ?? {})) {
162-
if (typeof value === "string") {
163-
logo.images[key] = { path: value };
164-
} else {
165-
logo.images[key] = value;
166-
}
161+
}
162+
for (const [key, value] of Object.entries(data.logo?.images ?? {})) {
163+
if (typeof value === "string") {
164+
logo.images[key] = { path: value };
165+
} else {
166+
logo.images[key] = value;
167167
}
168168
}
169169

src/resources/create/extensions/format-typst/_extensions/qstart-filesafename-qend/typst-show.typ

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ $endif$
5252
$if(mainfont)$
5353
font: ("$mainfont$",),
5454
$elseif(brand.typography.base.family)$
55-
font: ("$brand.typography.base.family$",),
55+
font: $brand.typography.base.family$,
5656
$endif$
5757
$if(fontsize)$
5858
fontsize: $fontsize$,
@@ -61,7 +61,7 @@ $elseif(brand.typography.base.size)$
6161
$endif$
6262
$if(title)$
6363
$if(brand.typography.headings.family)$
64-
heading-family: ("$brand.typography.headings.family$",),
64+
heading-family: $brand.typography.headings.family$,
6565
$endif$
6666
$if(brand.typography.headings.weight)$
6767
heading-weight: $brand.typography.headings.weight$,

src/resources/editor/tools/vs-code.mjs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16798,13 +16798,6 @@ var require_yaml_intelligence_resources = __commonJS({
1679816798
},
1679916799
description: "Theme name, theme scss file, or a mix of both."
1680016800
},
16801-
{
16802-
name: "renderings",
16803-
schema: {
16804-
arrayOf: "string"
16805-
},
16806-
description: "Array of rendering names, e.g. `[light, dark]`"
16807-
},
1680816801
{
1680916802
name: "body-classes",
1681016803
tags: {
@@ -24305,12 +24298,12 @@ var require_yaml_intelligence_resources = __commonJS({
2430524298
mermaid: "%%"
2430624299
},
2430724300
"handlers/mermaid/schema.yml": {
24308-
_internalId: 195005,
24301+
_internalId: 195e3,
2430924302
type: "object",
2431024303
description: "be an object",
2431124304
properties: {
2431224305
"mermaid-format": {
24313-
_internalId: 194997,
24306+
_internalId: 194992,
2431424307
type: "enum",
2431524308
enum: [
2431624309
"png",
@@ -24326,7 +24319,7 @@ var require_yaml_intelligence_resources = __commonJS({
2432624319
exhaustiveCompletions: true
2432724320
},
2432824321
theme: {
24329-
_internalId: 195004,
24322+
_internalId: 194999,
2433024323
type: "anyOf",
2433124324
anyOf: [
2433224325
{

src/resources/editor/tools/yaml/web-worker.js

Lines changed: 3 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/resources/editor/tools/yaml/yaml-intelligence-resources.json

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9770,13 +9770,6 @@
97709770
},
97719771
"description": "Theme name, theme scss file, or a mix of both."
97729772
},
9773-
{
9774-
"name": "renderings",
9775-
"schema": {
9776-
"arrayOf": "string"
9777-
},
9778-
"description": "Array of rendering names, e.g. `[light, dark]`"
9779-
},
97809773
{
97819774
"name": "body-classes",
97829775
"tags": {
@@ -17277,12 +17270,12 @@
1727717270
"mermaid": "%%"
1727817271
},
1727917272
"handlers/mermaid/schema.yml": {
17280-
"_internalId": 195005,
17273+
"_internalId": 195000,
1728117274
"type": "object",
1728217275
"description": "be an object",
1728317276
"properties": {
1728417277
"mermaid-format": {
17285-
"_internalId": 194997,
17278+
"_internalId": 194992,
1728617279
"type": "enum",
1728717280
"enum": [
1728817281
"png",
@@ -17298,7 +17291,7 @@
1729817291
"exhaustiveCompletions": true
1729917292
},
1730017293
"theme": {
17301-
"_internalId": 195004,
17294+
"_internalId": 194999,
1730217295
"type": "anyOf",
1730317296
"anyOf": [
1730417297
{

src/resources/filters/customnodes/content-hidden.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ function propertiesMatch(properties, profiles)
183183
local tests = {
184184
{ constants.kWhenMeta, check_meta, false },
185185
{ constants.kUnlessMeta, check_meta, true },
186-
{ constants.kWhenFormat, _quarto.format.isFormat, false },
187-
{ constants.kUnlessFormat, _quarto.format.isFormat, true },
186+
{ constants.kWhenFormat, quarto.format.is_format, false },
187+
{ constants.kUnlessFormat, quarto.format.is_format, true },
188188
{ constants.kWhenProfile, check_profile, false },
189189
{ constants.kUnlessProfile, check_profile, true }
190190
}

src/resources/filters/modules/typst_css.lua

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,28 @@ local function translate_font_weight(w, warnings)
636636
end
637637
end
638638

639+
local function dequote(s)
640+
return s:gsub('^["\']', ''):gsub('["\']$', '')
641+
end
642+
643+
local function quote(s)
644+
return '"' .. s .. '"'
645+
end
646+
647+
local function translate_font_family_list(sl)
648+
if sl == nil then
649+
return '()'
650+
end
651+
local strings = {}
652+
for s in sl:gmatch('([^,]+)') do
653+
s = s:gsub('^%s+', '')
654+
table.insert(strings, quote(dequote(s)))
655+
end
656+
local trailcomma = #strings == 1 and ',' or ''
657+
return '(' .. table.concat(strings, ', ') .. trailcomma .. ')'
658+
end
659+
660+
639661
local function translate_border_style(v, _warnings)
640662
local dash
641663
if v == 'none' then
@@ -763,6 +785,7 @@ return {
763785
translate_border_style = translate_border_style,
764786
translate_border_color = translate_border_color,
765787
translate_font_weight = translate_font_weight,
788+
translate_font_family_list = translate_font_family_list,
766789
consume_width = consume_width,
767790
consume_style = consume_style,
768791
consume_color = consume_color

src/resources/filters/normalize/flags.lua

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,6 @@ function compute_flags()
195195
elseif lightbox_auto == false then
196196
flags.has_lightbox = false
197197
end
198-
if el.renderings then
199-
flags.has_renderings = true
200-
end
201198
end,
202199
}}
203200
end

src/resources/filters/quarto-post/cell-renderings.lua

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,23 @@ function choose_cell_renderings()
88
return {json}
99
end
1010
end
11-
12-
local documentRenderings
1311

1412
return {
15-
traverse = "topdown",
16-
Meta = function(meta)
17-
if meta.renderings then
18-
documentRenderings = {}
19-
for _, inlines in ipairs(meta.renderings) do
20-
table.insert(documentRenderings, inlines[1].text)
21-
end
22-
end
23-
end,
2413
Div = function(div)
2514
-- Only process cell div with renderings attr
26-
if not div.classes:includes("cell") or (not documentRenderings and not div.attributes["renderings"]) then
15+
if not div.classes or not div.classes:includes("cell") or not div.attributes["renderings"] then
2716
return nil
2817
end
29-
local renderings
30-
if div.attributes['renderings'] then
31-
local renderingsJson = div.attributes['renderings']
32-
renderings = jsonDecodeArray(renderingsJson)
33-
else
34-
renderings = documentRenderings
35-
end
18+
local renderingsJson = div.attributes['renderings']
19+
local renderings = jsonDecodeArray(renderingsJson)
3620
if not type(renderings) == "table" or #renderings == 0 then
3721
quarto.log.warning("renderings expected array of rendering names, got", renderings)
3822
return nil
3923
end
4024
local cods = {}
4125
local firstCODIndex = nil
4226
for i, cellOutput in ipairs(div.content) do
43-
if cellOutput.classes:includes("cell-output-display") then
27+
if cellOutput.classes and cellOutput.classes:includes("cell-output-display") then
4428
if not firstCODIndex then
4529
firstCODIndex = i
4630
end

0 commit comments

Comments
 (0)