Skip to content

Quarto extension that allows to highlight text in a document for various formats: HTML, LaTeX, Typst, and Docx.

License

Notifications You must be signed in to change notification settings

mcanouil/quarto-highlight-text

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Highlight-text Extension For Quarto

This is a Quarto extension that allows to highlight text in a document for various format: HTML, LaTeX, Typst, and Docx.

Installing

quarto add mcanouil/quarto-highlight-text

This will install the extension under the _extensions subdirectory. If you're using version control, you will want to check in this directory.

Using

To use the extension, add the following to your document's front matter:

filters:
  - highlight-text

Then you can use the span syntax markup to highlight text in your document, e.g.:

[Red]{colour="#b22222" bg-colour="#abc123"} # UK
[Blue]{color="#0000FF" bg-color="#ABC123"} # US

You can also use the shorter syntax (v1.1.1):

[Red]{fg="red" bg="primary"}

Using colours from _brand.yml (v1.1.0):

color:
  palette:
    red: "#b22222"
  primary: "#abc123"
[Red]{colour="brand-color.red" bg-colour="brand-color.primary"}

Using colours from light/dark themes with Quarto CLI >=1.7.28 (v1.2.0):

  • From document front matter:

    brand:
      light:
        color:
          palette:
            fg: "#ffffff"
            bg: "#b22222"
      dark:
        color:
          palette:
            fg: "#b22222"
            bg: "#ffffff"
  • From _quarto.yml and _brand.yml file

    brand:
      dark: _brand.yml
[Light: White/Red | Dark: Red/White]{colour="brand-color.fg" bg-colour="brand-color.bg"}

Note

Only the html support light/dark mode switching. The other formats will use the light mode colours if available or the dark mode colours otherwise.

Limitations

LaTeX \colorbox command does not support wrapping/line breaks in the text to be highlighted. This means that the above example will not work well in LaTeX output.
In order to get a slightly better result, you can use the par=true attribute to add \parbox{\linewidth}:

[Red]{colour="#b22222" bg-colour="#abc123" par=true}

Examples

Here is the source code for a minimal example: example.qmd.

Outputs of example.qmd: