1 unstable release
| new 0.1.0 | Feb 1, 2026 |
|---|
#6 in #nova
Used in novatype-core
47KB
1K
SLoC
NovaType
Typesetting, reimagined.
Documentation • Demos • Installation • Usage
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.
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