Curvenote CLI Overview

curvenote is a command line interface (CLI) for writing scientific and technical content in MyST Markdown and Jupyter Notebooks. It previews a project as a website while you write, exports it to PDF, LaTeX, Word and JATS, and publishes it to Curvenote as a site or a submission to a venue. The Curvenote extension for VS Code is its companion in the editor: suggestions as you type, documentation on hover, checks and quick fixes, and formatting on save.

npm install -g curvenote
curvenote init
curvenote start

Install the CLI to get started, then use curvenote init to set up a project and curvenote start to see it rendered.

curvenote start builds your project and serves it as a website that reloads as you write.

Figure 1:curvenote start builds your project and serves it as a website that reloads as you write.

What you can do

The Curvenote extension for VS Code suggests the options of the image directive, each with its documentation.

Figure 2:The Curvenote extension for VS Code suggests the options of the image directive, each with its documentation.

How the pieces fit

The CLI and the extension read the same project: the curvenote.yml (or myst.yml) at its root and the frontmatter at the top of each page. You write in VS Code with the extension checking your MyST as you go, preview with curvenote start, and publish with curvenote deploy or curvenote submit once you have signed in. Every command is in the command reference, and the theme your site renders in is set by its site template.

To change how a site draws a particular kind of content, ship render plugins with your project, and use the cn:articles directive to list a site’s latest articles on a page.

Open source

The Curvenote CLI is open source (MIT License) and lives in curvenote/curvenote, where you can open an issue. The VS Code extension is in curvenote/curvenote-vscode. Both are built on MyST Markdown, and we contribute to it upstream.

Abbreviations
CLI
Command Line Interface
HTML
Hypertext Markup Language
JATS
Journal Article Tag Suite
MyST
Markedly Structured Text
ORCID
Open Researcher and Contributor ID