quarto-dev / quarto-dev/quarto-cli

Improve validation for layout to help distill conversion ?

Open
#2,013 8 comments 0 reactions 2 assignees View on GitHub

@cderv is already working on this.

Since Nov 15, 2022.

enhancement yaml-validation
Dominant language
JavaScript
Stars
6k
Forks
458
Avg merge
1d 9h
Merged PRs (30d)
41

Description

Bug description

distill has also a layout option, and for now if the option is not correctly converted to Quarto supported one then there is an useful error

  • Content from distill without using YAML syntax
---
title: "A small example"
format: html
page-layout: article
---

```{r setup, layout="l-body-outset"}
mtcars[,1:3] |> head()
```
  • After conversion using knitr::convert_chunk_header()
---
title: "A small example"
format: html
page-layout: article
---

```{r}
#| layout: l-body-outset
mtcars[,1:3] |> head()
```

in both case, we'll have this issue

Error running filter C:/Users/chris/scoop/apps/quarto-prerelease/current/share/filters/layout/layout.lua:
...prerelease\current\bin\..\share\pandoc\datadir\_json.lua:167: bad 'for' initial value (number expected, got nil)
stack traceback:
	...prerelease\current\bin\..\share\pandoc\datadir\_json.lua:381: in function '_json.decode'
	...uarto-prerelease/current/share/filters/layout/layout.lua:3641: in function 'parseLayoutWidths'
	...uarto-prerelease/current/share/filters/layout/layout.lua:4274: in function 'layoutCells'
	...uarto-prerelease/current/share/filters/layout/layout.lua:4098: in function <...uarto-prerelease/current/share/filters/layout/layout.lua:4091>
ERROR: unexpected character 'l' at line 1 col 1

Not so useful.
And in the second case, YAML validation does not help to detect that. No error detected for the layout field in the chunk for me.

Can we do better in the error or at least in the validation ?

quarto check Output
$ quarto check

[>] Checking Quarto installation......OK
      Version: 1.1.80
      Path: C:\Users\chris\scoop\apps\quarto-prerelease\current\bin\
      CodePage: unknown

[>] Checking basic markdown render....OK

[>] Checking Python 3 installation....OK
      Version: 3.9.13
      Path: C:/Users/chris/scoop/apps/pyenv/current/pyenv-win/versions/3.9.13/python3.exe
      Jupyter: 4.11.1
      Kernels: bash, julia-1.7, python3

[>] Checking Jupyter engine render....OK

(\) Checking R installation...........++ Activating rlang global_entrace

++ Setting QUARTO_PYTHON

[>] Checking R installation...........OK
      Version: 4.2.0
      Path: C:/PROGRA~1/R/R-42~1.0
      LibPaths:
        - C:/Users/chris/AppData/Local/R/win-library/4.2
        - C:/Program Files/R/R-4.2.0/library
      rmarkdown: 2.14.3

[>] Checking Knitr engine render......OK

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.