Skip to content

Commit b87fb1d

Browse files
committed
Merge branch 'main' into bugfix/9832
2 parents df5f4fc + a396be4 commit b87fb1d

File tree

758 files changed

+35527
-8437
lines changed

Some content is hidden

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

758 files changed

+35527
-8437
lines changed

.air.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[format]
2+
line-width = 80
3+
indent-width = 2
4+
indent-style = "space"
5+
line-ending = "auto"
6+
persistent-line-breaks = true
7+
exclude = []
8+
default-exclude = true

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,54 +6,52 @@ body:
66
- type: markdown
77
attributes:
88
value: |
9-
Welcome to the quarto GitHub repository!
9+
Welcome to the Quarto CLI GitHub repository!
1010
We are always happy to hear feedback from our users.
1111
1212
This is the repository for the command-line program `quarto`:
1313
1414
- If you're reporting an issue with the VS Code extension, please visit https://github.com/quarto-dev/quarto
1515
- If you're reporting an issue inside RStudio, please visit https://github.com/rstudio/rstudio
16+
- If you're reporting an issue inside **Positron**, please visit https://github.com/posit-dev/positron
17+
- If you want to ask for a feature, please use the [Feature Requests GitHub Discussions](https://github.com/quarto-dev/quarto-cli/discussions/categories/feature-requests).
18+
- If you want to ask for help, please use the [Q&A GitHub Discussions](https://github.com/quarto-dev/quarto-cli/discussions/categories/q-a).
1619
1720
Quarto is under active development!
1821
If convenient, we'd appreciate if you could check that the issue persists on the [latest pre-release](https://github.com/quarto-dev/quarto-cli/releases).
1922
2023
Finally, so that we can get the most out of your bug report, consider reading our ["Bug Reports" guide](https://quarto.org/bug-reports.html).
2124
22-
If you want to ask for a feature, please use the [Feature Requests GitHub Discussions](https://github.com/quarto-dev/quarto-cli/discussions/categories/feature-requests).
23-
If you want to ask for help, please use the [Q&A GitHub Discussions](https://github.com/quarto-dev/quarto-cli/discussions/categories/q-a).
24-
2525
Thank you for using Quarto!
2626
2727
---
2828
2929
You can share a Quarto document using the following syntax, _i.e._, using more backticks than you have in your document (usually four ` ```` `).
3030
For example with Quarto CLI >=1.5:
3131
32-
`````md
33-
````qmd
34-
---
35-
title: "Reproducible Quarto Document"
36-
format: html
37-
engine: jupyter
38-
---
39-
40-
This is a reproducible Quarto document using `format: html`.
41-
It is written in Markdown and contains embedded Python code.
42-
When you run the code, it will produce a message.
43-
44-
```{python}
45-
print("Hello, world!")
46-
```
47-
48-
![An image]({{< placeholder 600 400 >}}){#fig-placeholder}
49-
50-
{{< lipsum 1 >}}
51-
52-
A reference to @fig-placeholder.
53-
54-
The end.
55-
````
56-
`````
32+
````qmd
33+
---
34+
title: "Reproducible Quarto Document"
35+
format: html
36+
engine: jupyter
37+
---
38+
39+
This is a reproducible Quarto document using `format: html`.
40+
It is written in Markdown and contains embedded Python code.
41+
When you run the code, it will produce a message.
42+
43+
```{python}
44+
print("Hello, world!")
45+
```
46+
47+
![An image]({{< placeholder 600 400 >}}){#fig-placeholder}
48+
49+
{{< lipsum 1 >}}
50+
51+
A reference to @fig-placeholder.
52+
53+
The end.
54+
````
5755
5856
- type: textarea
5957
attributes:
@@ -98,13 +96,13 @@ body:
9896
9997
- type: textarea
10098
attributes:
101-
label: Expected behavior
102-
description: Tell us what should happen.
99+
label: Actual behavior
100+
description: Tell us what happens instead.
103101

104102
- type: textarea
105103
attributes:
106-
label: Actual behavior
107-
description: Tell us what happens instead.
104+
label: Expected behavior
105+
description: Tell us what should happen.
108106

109107
- type: textarea
110108
attributes:
Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,49 @@
1-
name: "Cache Typst package"
1+
name: "Restore any Typst package cache"
22
description: "Configures the caching for Typst packages"
3+
outputs:
4+
cache-hit:
5+
description: "Was a cache found with primary key ?"
6+
value: ${{ steps.cache-typst-restore.outputs.cache-hit }}
7+
cache-primary-key:
8+
description: "Key of the cache to find and save"
9+
value: ${{ steps.cache-typst-restore.outputs.cache-primary-key }}
10+
cache-matched-key:
11+
description: "Key of the cache found and used."
12+
value: ${{ steps.cache-typst-restore.outputs.cache-matched-key }}
13+
cache-path:
14+
description: "where is the packages cache for typst ?"
15+
value: ${{ steps.cache-typst-path.outputs.TYPST_CACHE }}
316

417
runs:
518
using: "composite"
619
steps:
720
- name: Typst Cache path
21+
id: cache-typst-path
822
run: |
923
case $RUNNER_OS in
1024
"Linux")
11-
echo "TYPST_CACHE=${XDG_CACHE_HOME:-~/.cache}/typst/packages/" >> $GITHUB_ENV
25+
typst_cache="${XDG_CACHE_HOME:-~/.cache}/typst/packages/"
1226
;;
1327
"macOS")
14-
echo "TYPST_CACHE=~/Library/Caches/typst/packages/" >> $GITHUB_ENV
28+
typst_cache="~/Library/Caches/typst/packages/"
1529
;;
1630
"Windows")
17-
echo "TYPST_CACHE=$LOCALAPPDATA/typst/packages/" >> $GITHUB_ENV
31+
typst_cache="$LOCALAPPDATA/typst/packages/"
1832
;;
1933
*)
2034
echo "$RUNNER_OS not supported"
2135
exit 1
2236
;;
2337
esac
38+
echo "TYPST_CACHE=${typst_cache}" >> $GITHUB_ENV
39+
echo "TYPST_CACHE=${typst_cache}" >> $GITHUB_OUTPUT
2440
shell: bash
2541

2642
- name: Cache Typst package folder
27-
uses: actions/cache@v4
43+
id: cache-typst-restore
44+
uses: actions/cache/restore@v4
2845
with:
2946
path: ${{ env.TYPST_CACHE }}
30-
key: ${{ runner.os }}-typst-1-${{ github.run_id }}
47+
key: ${{ runner.os }}-typst-1
3148
restore-keys: |
32-
${{ runner.os }}-typst-1-
33-
save-always: true
49+
${{ runner.os }}-typst-

.github/workflows/test-smokes.yml

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,16 @@ jobs:
105105
cat("r-version=", R.Version()$version.string, "\n", file = Sys.getenv("GITHUB_OUTPUT"), sep = "", append = TRUE)
106106
shell: Rscript {0}
107107

108-
- name: Cache R packages
109-
uses: actions/cache@v4
108+
- name: Restore Renv package cache
109+
id: cache-renv-packages-restore
110+
uses: actions/cache/restore@v4
110111
with:
111-
path: ${{ env.RENV_PATHS_ROOT }}
112-
key: ${{ steps.get-version.outputs.os-version }}-${{ steps.get-version.outputs.r-version }}-renv-2-${{ hashFiles('tests/renv.lock') }}
112+
path: |
113+
${{ env.RENV_PATHS_ROOT }}
114+
renv/library
115+
key: ${{ steps.get-version.outputs.os-version }}-${{ steps.get-version.outputs.r-version }}-renv-3-${{ hashFiles('tests/renv.lock') }}
113116
restore-keys: |
114-
${{ steps.get-version.outputs.os-version }}-${{ steps.get-version.outputs.r-version }}-renv-2-
115-
save-always: ${{ inputs.extra-r-packages == '' }} # don't save cache if we have extra R packages
117+
${{ steps.get-version.outputs.os-version }}-${{ steps.get-version.outputs.r-version }}-renv-3-
116118
117119
- name: Install missing system deps
118120
if: runner.os == 'Linux'
@@ -130,8 +132,8 @@ jobs:
130132
renv::restore()
131133
# Install dev versions for our testing
132134
# Use r-universe to avoid github api calls
133-
try(install.packages('knitr', repos = 'https://yihui.r-universe.dev'))
134-
try(install.packages('rmarkdown', repos = 'https://rstudio.r-universe.dev'))
135+
try(install.packages('rmarkdown', repos = c('https://rstudio.r-universe.dev', getOption('repos'))))
136+
try(install.packages('knitr', repos = c('https://yihui.r-universe.dev', getOption('repos'))))
135137
if ('${{ inputs.extra-r-packages }}' != '') {
136138
cat(sprintf("::notice::Running with the following extra R packages for pak: %s\n", "${{ inputs.extra-r-packages }}"))
137139
renv::install(strsplit("${{ inputs.extra-r-packages }}", split = ",")[[1]])
@@ -143,7 +145,7 @@ jobs:
143145
- name: Install uv for Python
144146
uses: astral-sh/setup-uv@v3
145147
with:
146-
version: "0.5.6"
148+
version: "0.5.9"
147149
enable-cache: true
148150
cache-dependency-glob: "tests/uv.lock"
149151

@@ -161,6 +163,7 @@ jobs:
161163
quarto install tinytex
162164
163165
- name: Cache Typst packages
166+
id: cache-typst
164167
uses: ./.github/actions/cache-typst
165168

166169
- name: Install Chrome
@@ -169,7 +172,7 @@ jobs:
169172
- name: Setup Julia
170173
uses: julia-actions/setup-julia@v2
171174
with:
172-
version: "1.10"
175+
version: "1.11.3"
173176

174177
- name: Cache Julia Packages
175178
uses: julia-actions/cache@v2
@@ -183,7 +186,7 @@ jobs:
183186
export JUPYTER=$(find $(dirname $(uv run --frozen which jupyter))/ -type f -name "jupyter.exe" -o -name "jupyter")
184187
uv run --frozen julia --color=yes --project=. -e "import Pkg; Pkg.instantiate(); Pkg.build(\"IJulia\"); Pkg.precompile()"
185188
echo "Julia Jupyter:"
186-
julia --project=. -e "import IJulia;println(IJulia.JUPYTER);println(IJulia.find_jupyter_subcommand(\"notebook\"))"
189+
uv run julia --project=. -e "import IJulia;println(IJulia.JUPYTER);println(IJulia.find_jupyter_subcommand(\"notebook\"))"
187190
188191
- name: Setup timing file for timed test
189192
if: ${{ matrix.time-test == true }}
@@ -289,9 +292,26 @@ jobs:
289292
name: timed test file
290293
path: tests/timing-for-ci.txt
291294

295+
- name: Save Typst cache
296+
if: always() && steps.cache-typst.outputs.cache-hit != 'true'
297+
uses: actions/cache/save@v4
298+
with:
299+
key: ${{ steps.cache-typst.outputs.cache-primary-key }}
300+
path: ${{ steps.cache-typst.outputs.cache-path }}
301+
302+
- name: Save Renv package cache
303+
# don't save cache if we have extra R packages
304+
if: ${{ always() && steps.cache-renv-packages-restore.outputs.cache-hit != 'true' && inputs.extra-r-packages == '' }}
305+
uses: actions/cache/save@v4
306+
with:
307+
path: |
308+
${{ env.RENV_PATHS_ROOT }}
309+
renv/library
310+
key: ${{ steps.cache-renv-packages-restore.outputs.cache-primary-key }}
311+
292312
- uses: actions/upload-artifact@v4
293-
# PLaywright test only runs on Linux for now
294-
if: ${{ !cancelled() && runner.os != 'Windows' }}
313+
# Upload pLaywright test report if they exists (playwright is only running on Linux for now)
314+
if: ${{ !cancelled() && runner.os != 'Windows' && hashFiles('tests/integration/playwright/playwright-report/**/*') != '' }}
295315
with:
296316
name: playwright-report
297317
path: ./tests/integration/playwright/playwright-report/

.gitignore

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,22 @@ _manuscript
3333
tests/docs/luacov/luacov.report.html
3434
tests/docs/luacov/report.html
3535

36+
# generated by test configuration, changes from machine to machine
37+
# so we don't want to track them
38+
tests/integration/playwright/package-lock.json
39+
3640
# tools build files
3741
tools/trace-viewer/edit-distance.js
3842
tools/trace-viewer/trace-viewer.html
3943
tools/trace-viewer/trace-viewer_files
4044
tools/bundle-bug-finder/node_modules
41-
tools/bundle-bug-finder/package-lock.json
45+
tools/bundle-bug-finder/package-lock.json
46+
tools/*/*_files
47+
tools/*/*.html
48+
package/src/common/import-report/*.html
49+
50+
# Files that are unique to specific committers of this repo
51+
tools/sass-variable-explainer/_publish.yml
52+
53+
# generated by tests
54+
tests/docs/callouts.pdf

.vscode/extensions.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"denoland.vscode-deno",
44
"esbenp.prettier-vscode",
55
"sumneko.lua",
6-
"nvarner.typst-lsp"
6+
"nvarner.typst-lsp",
7+
"Posit.air-vscode"
78
]
89
}

.vscode/settings.json

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
"editor.defaultFormatter": "denoland.vscode-deno"
44
},
55
"[r]": {
6-
"editor.formatOnSave": false,
7-
"editor.defaultFormatter": "REditorSupport.r"
6+
"editor.formatOnSave": true,
7+
"editor.defaultFormatter": "Posit.air-vscode"
8+
},
9+
"[quarto]": {
10+
"editor.formatOnSave": true,
11+
"editor.defaultFormatter": "quarto.quarto"
812
},
913
"[html]": {
1014
"editor.formatOnSave": false
@@ -16,5 +20,7 @@
1620
"deno.lint": true,
1721
"deno.unstable": true,
1822
"deno.importMap": "./src/import_map.json",
19-
"deno.disablePaths": ["tests/integration/playwright/"]
23+
"deno.disablePaths": ["tests/integration/playwright/"],
24+
// opt-out lintr as we use air formatter
25+
"r.lsp.diagnostics": false
2026
}

CITATION.cff

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,11 @@ authors:
1616
- family-names: "Dervieux"
1717
given-names: "Christophe"
1818
orcid: "https://orcid.org/0000-0003-4474-2498"
19+
- family-names: "Woodhull"
20+
given-names: "Gordon"
21+
orcid: "https://orcid.org/0009-0005-1809-8936"
1922
title: "Quarto"
20-
version: 1.4
23+
version: 1.7
2124
doi: 10.5281/zenodo.5960048
22-
date-released: 2024-02-15
25+
date-released: 2025-04-28
2326
url: "https://github.com/quarto-dev/quarto-cli"

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
You can contribute to Quarto in many ways:
44

55
- By opening issues to provide feedback and share ideas.
6-
- By submitting Pull Request (PR) to fix opened issues
6+
- By submitting Pull Request (PR) to fix open issues
77
- By submitting Pull Request (PR) to suggest new features (it is considered good practice to open an issue for discussion before working on a pull request for a new feature).
88

99
Please be mindful of our [code of conduct](https://github.com/quarto-dev/quarto-cli/blob/main/.github/CODE_OF_CONDUCT.md) as you interact with other community members.
@@ -26,8 +26,8 @@ Pull requests are very welcome! Here's how to contribute via PR:
2626
$ git checkout -b feature/newthing
2727
```
2828

29-
2. For significant changes (e.g more than small bug fixes), ensure that you have signed the [individual](https://posit.co/wp-content/uploads/2023/04/2023-03-13_TC_Indiv_contrib_agreement.pdf) or [corporate](https://posit.co/wp-content/uploads/2023/04/2023-03-13_TC_Corp_contrib_agreement.pdf) contributor agreement as appropriate. You can send the signed copy to [jj\@rstudio.com](mailto:[email protected]){.email}.
29+
2. For significant changes (e.g., more than small bug fixes), ensure that you have signed the [individual](https://posit.co/wp-content/uploads/2023/04/2023-03-13_TC_Indiv_contrib_agreement.pdf) or [corporate](https://posit.co/wp-content/uploads/2023/04/2023-03-13_TC_Corp_contrib_agreement.pdf) contributor agreement as appropriate. You can send the signed copy to [jj\@rstudio.com](mailto:[email protected]){.email}.
3030

31-
3. Submit the [pull request](https://help.github.com/articles/using-pull-requests). It is ok to submit as draft in your are still working on it but would like some feedback from us. It always good to share in the open that you are working on it.
31+
3. Submit the [pull request](https://help.github.com/articles/using-pull-requests). It is ok to submit as draft if your are still working on it but would like some feedback from us. It is always good to share in the open that you are working on it.
3232

3333
We'll try to be as responsive as possible in reviewing and accepting pull requests.

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,25 @@
22

33
# Quarto
44

5-
Quarto is an open-source scientific and technical publishing system built on [Pandoc](https://pandoc.org). Quarto documents are authored using [markdown](https://en.wikipedia.org/wiki/Markdown), an easy to write plain text format.
5+
Quarto is an open-source scientific and technical publishing system built on [Pandoc](https://pandoc.org). Quarto documents are authored using [Markdown](https://en.wikipedia.org/wiki/Markdown), an easy to write plain text format.
66

77
In addition to the core capabilities of Pandoc, Quarto includes:
88

99
1. Embedding code and output from Python, R, Julia, and JavaScript via integration with [Jupyter](https://jupyter.org/), [Knitr](https://yihui.org/knitr/), and [Observable](https://github.com/observablehq/).
1010

11-
2. A variety of extensions to Pandoc markdown useful for technical writing including cross-references, sub-figures, layout panels, hoverable citations and footnotes, callouts, and more.
11+
2. A variety of extensions to Pandoc Markdown useful for technical writing including cross-references, sub-figures, layout panels, hoverable citations and footnotes, callouts, and more.
1212

1313
3. A project system for rendering groups of documents at once, sharing options across documents, and producing aggregate output like [websites](https://quarto.org/docs/websites/) and [books](https://quarto.org/docs/books/).
1414

1515
4. Authoring using a wide variety of editors and notebooks including [JupyterLab](https://quarto.org/docs/tools/jupyter-lab.html), [RStudio](https://quarto.org/docs/tools/rstudio.html), and [VS Code](https://quarto.org/docs/tools/vscode.html).
1616

17-
5. A [visual markdown editor](https://quarto.org/docs/visual-editor/) that provides a productive writing interface for composing long-form documents.
17+
5. A [visual Markdown editor](https://quarto.org/docs/visual-editor/) that provides a productive writing interface for composing long-form documents.
1818

1919
Learn more about Quarto at <https://quarto.org>.
2020

2121
## Development Version
2222

23-
To install the development version of the Quarto CLI, clone the quarto-cli repository then run the configure script for your platform (`configure.sh` for Linux/macOS or `configure.cmd` for Windows). For example:
23+
To install the development version of the Quarto CLI, clone the `quarto-cli` repository then run the configure script for your platform (`configure.sh` for Linux/macOS or `configure.cmd` for Windows). For example:
2424

2525
```bash
2626
git clone https://github.com/quarto-dev/quarto-cli

0 commit comments

Comments
 (0)