Giter Site home page Giter Site logo

curvenote

curvenote on npm MIT License CI

Create, edit, share and publish scientific documents.

Overview

curvenote is an open source library and command line interface (CLI) to create share and publish technical documents.

  • Write papers and reports in Markdown and Jupyter (docs)
  • Create and share interactive websites (docs)
  • Export to Word, LaTeX, and PDF with any template (docs)

In addition to being completely local, curvenote can optionally sync content to https://curvenote.com to allow you to work with collaborators who enjoy WYSIWYG editing, commenting & real time collaboration for technical documents.

Get Started

Curvenote is available through Node and NPM. Unless you already have this on your system you will have to install NodeJS. See full install instructions in the docs!

npm install -g curvenote
curvenote init
curvenote start
curvenote deploy

Built with Curvenote

Curvenote allows you to easily create, edit, and publish content to the web as a fast, optimized site with interactive citations, cross-referencing, math, and dynamic figures from Jupyter Notebooks.

Curvenote can be used to create all sorts of open-access content, click the links below to see some examples!

Interactive and Linked

The default website you create can have interactive Jupyter Notebook features, and live-preview of cross-references and citations.

PhD Thesis with linked references, equations, and export to PDF.

Interactive Papers with Jupyter Notebooks and interactive visualizations.

These interactive scientific sites can be easily deployed on a hosting service called curve.space or can also be hosted on your own custom domain.

Work locally with Live Reload

The client library is entirely local, and rebuilds in ~50ms for most projects. Meaning you can preview your content as you are writing!

Direct export from Curvenote

First login, see authorization docs to get an API token.

curvenote token set
> YOUR_API_TOKEN

Then you can directly export your curvenote documents to:

  • Microsoft Word (.docx)
  • Markdown (.md) - using MyST
  • LaTeX (.tex)
  • PDF (.pdf)
curvenote export docx https://curvenote.com/@curvenote/blog/communicating-science communicating-science.docx
curvenote export md https://curvenote.com/@curvenote/blog/version-control-for-scientists version-control.md
curvenote export tex https://curvenote.com/@curvenote/blog/version-control-for-scientists version-control.tex -template plain_latex
curvenote export pdf https://curvenote.com/@curvenote/blog/version-control-for-scientists version-control.pdf -template arxiv_nips

LaTeX and PDF Dependencies

Exporting to:

  • LaTeX (latex|tex) with a template option specified
  • or to PDF

Requires the jtex python package to be installed and available on the user's PATH.

With python 3.7 or greater installed, install jtex via pip:

python -m pip install jtex

Development

All dependencies for curvenote are included in this repository (a monorepo!).

What's inside?

curvenote uses npm as a package manager. It includes the following packages/apps:

Apps:

  • curvenote: the Curvenote command line interface (CLI)
  • curvespace: the web-experience for Curvenote sites, using Remix

Packages:

  • ui-providers: React providers for references and site configuration
  • myst-to-react: expose MyST content as an article, built with React
  • site: components and utilities for building React and Remix sites
  • icons: icons used throughout our projects, built for React
  • citation-js-utils: utilities for using the citation-js library
  • eslint-config-custom: eslint configurations
  • tsconfig: tsconfig.jsons used throughout the monorepo

Each package and app is 100% TypeScript.

Versioning & Publishing

Curvenote uses changesets to document changes to this monorepo, call npx changeset and follow the prompts. Later, npm run version will be called and then npm run publish.

Utilities

curvenote is built and developed using:

Build

To build all apps and packages, run the following command:

cd curvenote
npm run build

Develop

To develop all apps and packages, run the following command:

cd curvenote
npm run dev

Curvenote's Projects

Curvenote doesnโ€™t have any public repositories yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.