About Quarto

Open source tools for scientific and technical publishing

Goals

The overarching goal of Quarto is to make the process of creating and collaborating on scientific and technical documents dramatically better. We hope to do this in several dimensions:

  • Create a writing and publishing environment with great integrated tools for technical content. We want to make authoring with embedded code, equations, figures, complex diagrams, interactive widgets, citations, cross references, and the myriad other special requirements of scientific discourse straightforward and productive for everyone.

  • Help authors take full advantage of the web as a connected, interactive platform for communications, while still providing the ability to create excellent printed output from the same document source. Researchers shouldn’t need to choose between LaTeX, MS Word, and HTML but rather be able to author documents that target all of them at the same time.

  • Make reproducible research and publications the norm rather than the exception. Reproducibility requires that the code and data required to create a manuscript are an integrated part of it. However, this isn’t often straightforward in practice—Quarto aims to make it easier to adopt a reproducible workflow than not.

Quarto is open source software. We believe that it’s better for everyone if the tools used for research and science are free and open. Reproducibility, widespread sharing of knowledge and techniques, and the leveling of the playing field by eliminating cost barriers are but a few of the shared benefits of free software in science.

Project

At the core of Quarto is Pandoc, a powerful and flexible document processing tool. Quarto adds a number of facilities to Pandoc aimed at scientific and technical publishing, including:

  1. Embedding code and output from Python, R, and JavaScript via integration with Jupyter, Knitr, and Observable.

  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.

  3. A project system for rendering groups of documents at once, sharing options across documents, and producing aggregate output like websites and books.

Development of Quarto is sponsored by Posit, PBC, where we previously created a similar system (R Markdown) that shared the same goals, but was targeted principally at users of the R language. The same core team works on both Quarto and R Markdown:

With Quarto, we are hoping to bring these tools to a much wider audience.

Quarto is a registered trademark of Posit. Please see our trademark policy for guidelines on usage of the Quarto trademark.

Contribute

You can contribute to Quarto in many ways:

  • By opening issues to provide feedback and share ideas.
  • By submitting Pull Request (PR) to fix opened issues
  • 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).

Please be mindful of our code of conduct as you interact with other community members.

Pull Requests

Pull requests are very welcome! Here’s how to contribute via PR:

  1. Fork the repository, clone it locally, and make your changes in a new branch specific to the PR. For example:

    Terminal
    # clone your fork
    $ git clone https://github.com/<username>/quarto-cli
    
    # configure for your platform (./configure.sh or ./configure.cmd for windows)
    $ cd quarto-cli
    $ ./configure.sh
    
    # checkout a new branch
    $ git checkout -b feature/newthing
  2. For significant changes (e.g more than small bug fixes), ensure that you have signed the individual or corporate contributor agreement as appropriate. You can send the signed copy to .

  3. Submit the pull request. 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.

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