Skip to content

Remote fonts not recognised when using a brand extension #13685

@mykolaskrynnyk

Description

@mykolaskrynnyk

I have:

  • searched the issue tracker for similar issues
  • installed the latest version of Quarto CLI
  • formatted my issue following the Bug Reports guide

Bug description

Quarto erroneously treats a font URL as a file path, resulting in ERROR: NotFound: No such file or directory, when using a brand extension. Somewhat related to #12267.

Steps to reproduce

Consider this folder structure:

project/
├── _extensions/
│   └── brand-yml/
│       ├── _extension.yml
│       └── brand.yml
├── _quarto.yml
└── example.qmd

example.qmd

---
title: Test
---

{{< lipsum 2 >}}

brand.yml

typography:
  fonts:
    - family: Noto Sans
      source: file
      files:
        - path: https://notofonts.github.io/latin-greek-cyrillic/fonts/NotoSans/unhinted/ttf/NotoSans-Regular.ttf
  base:
    family: Noto Sans

Actual behavior

quarto preview ./example.qmd --no-browser --no-watch-inputs
pandoc 
  to: html
  output-file: example.html
  standalone: true
  section-divs: true
  html-math-method: mathjax
  wrap: none
  default-image-extension: png
  variables: {}
  
metadata
  document-css: false
  link-citations: true
  date-format: long
  lang: en
  title: Test
  
ERROR: NotFound: No such file or directory (os error 2): lstat '~/project/_extensions/brand-yml/https:/notofonts.github.io/latin-greek-cyrillic/fonts/NotoSans/unhinted/ttf/NotoSans-Regular.ttf'

Stack trace:
    at Object.lstatSync (ext:deno_fs/30_fs.js:405:3)
    at copyTo (file:///Applications/quarto/bin/quarto.js:78841:24)
    at doCopy (file:///Applications/quarto/bin/quarto.js:78882:5)
    at copyFileIfNewer (file:///Applications/quarto/bin/quarto.js:78899:5)
    at copyDependencyFile (file:///Applications/quarto/bin/quarto.js:112052:3)
    at copyFile3 (file:///Applications/quarto/bin/quarto.js:111965:7)
    at file:///Applications/quarto/bin/quarto.js:112043:50
    at Array.forEach (<anonymous>)
    at processHtmlDependencies (file:///Applications/quarto/bin/quarto.js:112043:28)
    at readAndInjectDependencies (file:///Applications/quarto/bin/quarto.js:111868:23)

Expected behavior

A remote location should be supported as described in brand-yml docs. Admittedly, if I move the brand file to the root of the project as _brand.yml, it correctly generates the output (with the font applied) as expected:

project/
├── _brand.yml
├── _quarto.yml
└── example.qmd

It seems like the issue only arrises when using an extension.

Your environment

  • IDE: VS Code 1.106.0
  • OS: MacOS Tahoe 26.1

Quarto check output

Quarto 1.8.26
[✓] Checking environment information...
      Quarto cache location: ~/Library/Caches/quarto
[✓] Checking versions of quarto binary dependencies...
      Pandoc version 3.6.3: OK
      Dart Sass version 1.87.0: OK
      Deno version 2.3.1: OK
      Typst version 0.13.0: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
      Version: 1.8.26
      Path: /Applications/quarto/bin

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

[✓] Checking LaTeX....................OK
      Using: Installation From Path
      Path: /usr/local/bin
      Version: 2025

[✓] Checking Chrome Headless....................OK
      Using: Chrome found on system
      Path: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
      Source: MacOS known location

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

[✓] Checking Python 3 installation....OK
      Version: 3.12.7 (Conda)
      Path: /opt/anaconda3/bin/python
      Jupyter: 5.7.2
      Kernels: python3

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

[✓] Checking R installation...........OK
      Version: 4.4.0
      Path: /Library/Frameworks/R.framework/Resources
      LibPaths:
        - /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library
      knitr: (None)
      rmarkdown: (None)

      The knitr package is not available in this R installation.
      Install with install.packages("knitr")
      The rmarkdown package is not available in this R installation.
      Install with install.packages("rmarkdown")

Metadata

Metadata

Labels

brand`_brand.yml`bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions