Skip to content

ubugeeei/ox-content

Repository files navigation

Ox Content

Ox Content Logo

Framework-agnostic documentation tooling
High-performance Markdown parser built in Rust

DocumentationGetting StartedPlayground


Features

  • Blazing Fast - Arena-allocated parser with zero-copy parsing
  • mdast Compatible - Full compatibility with the unified ecosystem
  • GFM Support - Tables, task lists, strikethrough, autolinks, footnotes
  • Multi-Runtime - Node.js (NAPI), WebAssembly, Native Rust
  • Framework Agnostic - Works with Vue, React, Svelte, and more
  • Built-in SSG - Static site generation with theming, search, and OG images
  • API Docs Generation - Generate docs from JSDoc/TypeScript (like cargo doc)
  • i18n - ICU MessageFormat 2 parser, dictionary management, static checker, and LSP

Quick Start

Basic Usage (Node.js)

npm install @ox-content/napi
import { parseAndRender } from "@ox-content/napi";

const { html } = parseAndRender("# Hello World", { gfm: true });

Vite Plugin

npm install @ox-content/vite-plugin @ox-content/napi
// vite.config.ts
import { defineConfig } from "vite";
import { oxContent } from "@ox-content/vite-plugin";

export default defineConfig({
  plugins: [
    oxContent({
      srcDir: "docs",
      outDir: "dist/docs",
      highlight: true,
      ssg: {
        siteName: "My Docs",
      },
    }),
  ],
});

Framework Integration

# Vue
npm install @ox-content/vite-plugin-vue @ox-content/napi

# React
npm install @ox-content/vite-plugin-react @ox-content/napi

# Svelte
npm install @ox-content/vite-plugin-svelte @ox-content/napi

i18n Static Checker (CLI)

# Check for missing/unused translation keys
ox-content-i18n check --dict-dir content/i18n --src src

# Validate an ICU MessageFormat 2 message
ox-content-i18n validate "Hello {$name}"

Read the full documentation →

Performance

Latest local parse-benchmark run on 2026-03-07 with Node v24.14.0 on Apple M2 Max:

Parse Only (48.7 KB)

Library ops/sec throughput relative
@ox-content/napi 2463 117.22 MB/s 1.00x
md4w (md4c) 735 34.99 MB/s 3.35x slower
markdown-it 639 30.43 MB/s 3.85x slower
marked 362 17.25 MB/s 6.80x slower
remark 32 1.51 MB/s 77.86x slower

Parse + Render (48.7 KB)

Library ops/sec throughput relative
@ox-content/napi 2122 100.97 MB/s 1.00x
md4w (md4c) 1903 90.54 MB/s 1.12x slower
markdown-it 532 25.31 MB/s 3.99x slower
marked 345 16.42 MB/s 6.15x slower
micromark 34 1.62 MB/s 62.35x slower
remark 28 1.33 MB/s 75.81x slower

Run the benchmark with:

node benchmarks/bundle-size/parse-benchmark.mjs

The script now compares against md4w (md4c) by default and will include Bun.markdown.html automatically when bun is installed.

Development

vp install             # Install JS dependencies through Vite+
vp run build:napi      # Build NAPI bindings
vp run build:npm       # Build npm packages
vp run test            # Run tests

The workspace task graph is defined in vite.config.ts, and Node.js is pinned in .node-version.

See the documentation for more details.

Sponsor

If you find Ox Content useful, please consider sponsoring the project.

License

MIT License - see LICENSE

About

The framework agnostic fastest and beautiful documentation tooling for JS/TS

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors