# Page Configuration Template # Copy this file to pages//config.toml and customize [page] name = "{{PAGE_NAME}}" title = "{{PAGE_TITLE}}" type = "{{PAGE_TYPE}}" # single, landing, article, poster description = "{{PAGE_DESCRIPTION}}" [directories] # Page-specific directories (relative to page root) src_dir = "src" dist_dir = "dist" css_src = "src/assets/css" css_dist = "dist/assets/css" svg_src = "src/assets/svg" svg_dist = "dist/assets/svg" js_src = "src/assets/js" # Optional: JavaScript source directory js_dist = "dist/assets/js" # Optional: JavaScript output directory [shared] # Shared assets to include (from shared/ directory) css_modules = [ "@shared/base/reset.css", "@shared/base/typography.css", "@shared/utilities/colors.css", "@shared/components/animated-text.css" ] svg_sprites = [ "@shared/common/symbols.svg" ] [local] # Page-specific CSS modules (from page css_src) css_modules = [ "main.css" ] # Page-specific JavaScript modules (from page js_src) - Optional js_modules = [ # "main.js", # "utils.js" ] # CSS optimization critical_modules = 2 # Number of modules to inline as critical CSS minify = true remove_comments = true # JavaScript optimization (optional) minify_js = true remove_js_comments = true [output] # Output file names css_output = "main.min.css" html_output = "index.html" svg_sprites = "sprites.svg" js_output = "main.min.js" # Optional: JavaScript output file [svg] # SVG optimization optimize = true precision = 2 [html] # HTML optimization minify = true remove_comments = true remove_whitespace = true [development] # Development server settings port = 8080 host = "localhost" [thresholds] # File size thresholds (bytes) inline_css_max_size = 10240 # 10KB inline_svg_max_size = 5120 # 5KB max_total_size = 102400 # 100KB [compression] # Compression settings enable_gzip = true gzip_ratio = 0.3 [build] # Build optimization parallel_builds = true cache_bust = true verbose = true [tools] # External minification tools (optional) js_minifier = "swc" # Options: swc (default), terser, uglifyjs, esbuild, or path to custom tool js_minifier_path = "" # Optional: explicit path (e.g., "/usr/local/bin/swc") js_minifier_args = ["--minify", "--target", "es2018"] # SWC default args for modern JS css_minifier = "" # Future: external CSS minifier html_minifier = "" # Future: external HTML minifier # Example configurations for other tools: # js_minifier = "terser" # js_minifier_args = ["--compress", "drop_console=true", "--mangle", "--toplevel"] # # js_minifier = "esbuild" # js_minifier_args = ["--minify", "--target=es2018"] # # js_minifier = "" # Use built-in minifier (fallback) [wasm] # WebAssembly compilation settings enabled = false # Enable WASM compilation source_dir = "src/wasm" # WASM source directory output_dir = "dist/wasm" # WASM output directory # WASM modules to compile modules = [ # { name = "compute", source = "compute/src/lib.rs", lang = "rust" }, # { name = "graphics", source = "graphics/main.c", lang = "c" }, # { name = "utils", source = "utils/index.ts", lang = "assemblyscript" } ] [wasm.rust] # Rust-specific WASM settings toolchain = "wasm-pack" # Options: wasm-pack, cargo target = "web" # Options: web, nodejs, bundler optimization = "release" # Options: dev, release features = [] # Cargo features to enable scope = "" # npm scope for wasm-pack [wasm.c] # C/C++ specific settings (using Emscripten) optimization = "O3" # Optimization level: O0, O1, O2, O3 exports = ["main"] # Functions to export extra_args = [] # Additional emcc arguments [wasm.assemblyscript] # AssemblyScript specific settings optimize = true # Enable optimization debug = false # Include debug information runtime = "stub" # Runtime variant: full, half, stub [wasm.go] # Go specific settings build_tags = [] # Build tags extra_args = [] # Additional go build arguments [wasm.optimization] # WASM optimization settings (requires wasm-opt) use_wasm_opt = true # Use wasm-opt for optimization opt_level = 3 # Optimization level (0-4) shrink_level = 2 # Shrink level (0-2) enable_simd = true # Enable SIMD instructions enable_threads = false # Enable threading support [wasm.loader] # JavaScript loader generation auto_load = true # Automatically load modules on page load loader_name = "wasm-loader.js" # Loader filename streaming = true # Use WebAssembly.instantiateStreaming when available fallback = true # Include fallback for older browsers [highlight] # Syntax highlighting with highlight.js enabled = "auto" # auto (detect code blocks), true (always), false (never) auto_detect = true # Automatically scan HTML for code blocks languages = [ # Programming languages to support (auto-detected if empty) "javascript", "typescript", "rust", "python", "bash", "json", "html", "css", "toml", "yaml" ] theme = "github-dark" # Highlight.js theme: github-dark, monokai, dracula, tomorrow-night, etc. line_numbers = false # Enable line numbers for code blocks copy_button = true # Add copy-to-clipboard button cdn = false # Use CDN (true) or bundle locally (false) for better performance cdn_url = "https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/" # CDN base URL # Available themes: github-dark, github, monokai, dracula, tomorrow-night, # tomorrow-night-blue, vs2015, atom-one-dark, atom-one-light, gruvbox-dark, etc. # Full list: https://highlightjs.org/static/demo/ [highlight.languages] # Language aliases (automatically mapped) js = "javascript" ts = "typescript" py = "python" sh = "bash" shell = "bash" yml = "yaml" [markdown] # Markdown processing with frontmatter support enabled = true # Enable Markdown processing for .md files processor = "pulldown-cmark" # Options: pulldown-cmark (default), comrak, pandoc, marked, markdown-it fallback_processor = "comrak" # Fallback if primary processor fails auto_detect = true # Automatically detect .md files in src directory # Frontmatter parsing frontmatter_format = "yaml" # Options: yaml (default), toml, json frontmatter_delimiter = "---" # Delimiter for YAML frontmatter require_frontmatter = false # Require frontmatter in all .md files # HTML template system template_dir = "src/templates" # Directory for HTML templates default_template = "article.html" # Default template for Markdown content template_engine = "tera" # Template engine: tera (default), handlebars, liquid # Content processing smart_punctuation = true # Convert quotes, dashes, ellipses table_support = true # Enable table parsing footnote_support = true # Enable footnote extensions math_support = false # Enable math rendering (requires KaTeX/MathJax) syntax_highlighting = true # Use highlight.js for code blocks in Markdown # SEO and metadata auto_generate_toc = false # Generate table of contents extract_description = true # Extract description from content if not in frontmatter reading_time = true # Calculate estimated reading time [markdown.rust] # Rust processor specific settings (pulldown-cmark, comrak) extensions = ["tables", "footnotes", "strikethrough", "tasklists", "smart-punctuation"] unsafe_html = false # Allow raw HTML in Markdown github_pre_lang = true # Use GitHub-style language tags in code blocks [markdown.pandoc] # Pandoc processor settings (if available) format = "gfm" # Input format: gfm, commonmark, markdown extensions = ["+pipe_tables", "+footnotes", "+strikeout", "+task_lists"] extra_args = ["--smart"] # Additional pandoc arguments [markdown.nodejs] # Node.js processor settings (marked, markdown-it) breaks = false # Convert line breaks to
typographer = true # Enable smart quotes and other typographic replacements linkify = true # Auto-convert URLs to links [email] # Email generation settings enabled = false # Enable email-optimized HTML generation inline_css = true # Inline all CSS for email compatibility max_width = 600 # Maximum email width in pixels fallback_fonts = ["Arial", "sans-serif"] # Fallback font stack remove_unsupported = true # Remove unsupported CSS properties # Email-specific optimizations table_layout = true # Use table-based layout for better compatibility absolute_urls = true # Convert relative URLs to absolute compress_images = true # Optimize images for email strip_js = true # Remove all JavaScript [email.compatibility] # Email client compatibility settings outlook = true # Optimize for Microsoft Outlook gmail = true # Optimize for Gmail apple_mail = true # Optimize for Apple Mail webmail = true # Optimize for web-based clients mobile = true # Optimize for mobile email clients [email.output] # Email output settings html_output = "email.html" # Email-optimized HTML file text_output = "email.txt" # Plain text version (optional) preview_output = "email-preview.html" # Preview with email client simulation