provisioning-outreach/presentations/rust-laspalmas-250926/auroraframe/framework/templates/page.config.toml.template

264 lines
8.7 KiB
Text
Raw Normal View History

# Page Configuration Template
# Copy this file to pages/<page-name>/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 <br>
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