vite-plugin-norg

trail Published Aug 2, 2025 Updated Feb 22, 2026 Revision: 2

In July I released my first vite plugin! vite-plugin-norg provides support for .norg files in vite projects, using rust-norg to parse documents into ASTs which are then transformed into HTML for serving.

Features

The following output formats are supported:

  • React
  • Svelte
  • HTML

Documents may contain headings, paragraphs, lists, links, images, and code blocks. Code blocks come with tree-sitter highlights from arborium.

Try it out

The plugin requires very minimal setup:

1. Install the dependency

npm install --save-dev vite-plugin-norg

2. Extend your vite configuration

import { defineConfig } from 'vite';
import { norgPlugin } from 'vite-plugin-norg';

export default defineConfig({
  plugins: [
    norgPlugin({
      mode: 'html',
      arboriumConfig: {
        themes: {
          light: 'Github Light',
          dark: 'Github Dark'
        }
      }
    })
  ]
});

Import a .norg file as a component!

<script>
import Document, { metadata } from './document.norg';
</script>

<h1>{metadata.title}</h1>
<Document />