1 unstable release

new 0.1.0 Feb 1, 2026

#6 in #nova


Used in novatype-core

MIT license

47KB
1K SLoC

NovaType Logo

NovaType

Typesetting, reimagined.

DocumentationDemosInstallationUsage

License MIT Rust 1.70+ Platform


NovaType is a modern typesetting system built on Typst. It combines the quality of LaTeX with an intuitive syntax and instant compilation.

Why NovaType?

Feature NovaType LaTeX Word
Instant compilation
Mathematical equations
Simple syntax
Professional typography
Data visualization
Browser execution

Features

  • Instant compilation — See your changes in real-time
  • Intuitive syntax — Markdown-like, without LaTeX boilerplate
  • Smart citations — BibTeX, CrossRef API, Zotero integration
  • Data visualization — Charts from CSV/JSON
  • Professional templates — IEEE, Nature, reports, CV...
  • WebAssembly — Compile in the browser

Installation

# Via Cargo (recommended)
cargo install nova-cli

# Verify installation
nova --version
Other installation methods

From source

git clone https://github.com/AureClai/novatype.git
cd novatype/typst
cargo build --package nova-cli --release

Windows (binaries)

Download from Releases.

Usage

# Create a new project
nova init my-article

# With a specific template
nova init my-article --template ieee-article

# Compile
nova compile main.typ --open

# Watch mode (auto-recompilation)
nova watch main.typ

Example

---
title: "My Article"
author: "John Doe"
template: article
---

= Introduction

Welcome to *NovaType*! A _simple_ yet powerful syntax.

= Equations

Euler's formula: $ e^(i pi) + 1 = 0 $

= Visualization

#nova-plot(
  data: "results.csv",
  type: "bar",
  title: "Results"
)

Architecture

novatype/
├── typst/crates/
│   ├── nova-core/      # Compilation engine
│   ├── nova-schema/    # Metadata validation
│   ├── nova-cite/      # Citation management
│   ├── nova-plot/      # Data visualization
│   ├── nova-cli/       # Command-line interface
│   └── nova-wasm/      # WebAssembly build
└── docs/               # Documentation website

Contributing

Contributions are welcome! Check out the Issues to get started.

# Clone and build
git clone https://github.com/AureClai/novatype.git
cd novatype/typst
cargo build

# Run tests
cargo test --workspace

License

MIT License - see LICENSE for details.


WebsiteReport a bugDiscussions


lib.rs:

Nova Plot

Native data visualization engine for NovaType.

This crate provides:

  • SVG-based chart rendering
  • Multiple chart types (line, bar, scatter, pie)
  • CSV and JSON data parsing
  • Configurable styling

Example

use nova_plot::{Chart, ChartType, DataSource};

let data = DataSource::from_csv("data.csv")?;
let chart = Chart::new(ChartType::Line)
    .with_title("Sales Over Time")
    .with_data(data);

let svg = chart.render()?;

Dependencies

~6.5–9.5MB
~94K SLoC