quarto-dev / quarto-dev/quarto-cli

project-type and project sidebar configurations cannot always merge

Open
#9,482 1 comment 0 reactions 1 assignee View on GitHub

@cscheid is already working on this.

Since Apr 25, 2024.

enhancement extensions projects websites
Dominant language
JavaScript
Stars
6k
Forks
458
Avg merge
1d 9h
Merged PRs (30d)
41

Description

Bug description

The website.sidebar configuration is sometimes an array and sometimes an object. When an extension defines a custom website project type and sets some website.sidebar properties, that prevents a downstream project from using a different style of sidebar configuration.

For example, the extension may declare some sidebar defaults:

contributes:
  project:
    project:
      type: website
    website:
      sidebar:
        style: "floating"
        collapse-level: 1
        pinned: false

The project using this extension might try to use hybrid navigation, like the following:

  sidebar:
    - title: "Tutorials"
      style: "docked"
      background: light
      contents:
        - tutorials.qmd
        - tutorial-1.qmd
        - tutorial-2.qmd

    - title: "How-To"
      contents:
        - howto.qmd
        # navigation items

These two types of sidebar configurations cannot be merged.

An example of an extension which attempted to define the sidebar:

quarto add posit-dev/product-doc-theme@v1.1.0

We have abandoned sidebar configuration in the extension because of this issue.

Steps to reproduce

No response

Expected behavior

I do not know enough about all the sidebar configuration options to know if two configurations can always be merged. If they can, then that is what should happen. If they cannot be merged, Quarto should produce a message (warning or error) indicating that the extension and project sidebar configurations are incompatible.

Actual behavior

The extension-provided sidebar configuration appeared to win. The project sidebar configuration is not shown.

Your environment

No response

Quarto check output
Quarto 1.4.551
[✓] Checking versions of quarto binary dependencies...
      Pandoc version 3.1.11: OK
      Dart Sass version 1.69.5: OK
      Deno version 1.37.2: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
      Version: 1.4.551
      Path: /Users/aron/quarto/quarto-1.4.551-macos/bin

[✓] Checking tools....................OK
      TinyTeX: (not installed)
      Chromium: (not installed)

[✓] Checking LaTeX....................OK
      Using: Installation From Path
      Path: /Library/TeX/texbin
      Version: 2024

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

[✓] Checking Python 3 installation....OK
      Version: 3.12.2
      Path: /opt/homebrew/opt/python@3.12/bin/python3.12
      Jupyter: (None)

      Jupyter is not available in this Python installation.
      Install with python3 -m pip install jupyter

[✓] Checking R installation...........OK
      Version: 4.3.3
      Path: /Library/Frameworks/R.framework/Resources
      LibPaths:
        - /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library
      knitr: 1.45
      rmarkdown: 2.26

[✓] 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.