van-compiler 0.1.15

Server-side HTML compiler for Van template engine (.van files)
Documentation

van-compiler

Server-side HTML compiler for the Van template engine — orchestrates parsing, import resolution, rendering, and client JS generation from .van files.

Part of the Van template engine.

Usage

use std::collections::HashMap;
use van_compiler::{compile_page, compile_single};

// Single file compilation
let html = compile_single(
    r#"<template><h1>{{ title }}</h1></template>"#,
    r#"{"title": "Hello"}"#,
)?;

// Multi-file project compilation
let mut files = HashMap::new();
files.insert("pages/index.van".into(), template_source.into());
files.insert("components/header.van".into(), header_source.into());

let html = compile_page("pages/index.van", &files, &mock_data_json)?;

Compilation Pipeline

.van files → van-parser (parse)
               → resolve (recursive import resolution, max depth 10)
                 → render (server HTML with {{ expr }} placeholders)
                   → van-signal-gen (client JS)
                     → inject CSS/JS → final HTML

API

Function Description
compile_page(entry, files, mock_json) Compile multi-file project → HTML string
compile_page_debug(entry, files, mock_json, origins) Same with debug comments at boundaries
compile_page_assets(entry, files, mock_json, prefix) Compile with separated CSS/JS assets
compile_page_assets_debug(...) Same with debug comments
compile_single(source, mock_json) Compile a single .van string

All functions return Result<T, String> for WASM compatibility.

License

MIT