This repository has been archived on 2025-08-04. You can view files and clone it, but cannot push or open issues or pull requests.
rhaj/tera_factory/examples/hot_reload/scripts/initial_main.rhai
Timur Gordon 22032f329a feat(tera_factory): Implement hot reload example for Tera templates with Rhai
This commit adds a comprehensive hot reload example that demonstrates how to use the rhai_system for dynamic template rendering with Tera. Key improvements include:

- Refactor the example to use external script files instead of hardcoded Rhai code
- Implement proper module imports using the BasePathModuleResolver approach
- Fix template rendering by using keyword arguments in Tera function calls
- Add support for hot reloading both main and utility scripts
- Remove unnecessary output file generation to keep the example clean
- Fix compatibility issues with Rhai functions (avoiding to_string with parameters)

This example showcases how changes to Rhai scripts are automatically detected and applied to rendered templates without restarting the application, providing a smooth development experience.
2025-05-02 21:34:28 +02:00

32 lines
862 B
Plaintext

// Main functions for Tera templates - INITIAL VERSION
// Format a greeting with the current version
fn greet(name) {
return `Hello, ${name}! Welcome to our website.`;
}
// Format a product display with basic formatting
fn format_product(name, price, discount) {
// Use the calculate_price function from utils
let final_price = calculate_price(price, discount);
return `${name} - Price: $${price}, Discounted: $${final_price}`;
}
// Format a list of items as HTML
fn format_list_items(items) {
let result = "<ul>";
for item in items {
result += `<li>${item}</li>`;
}
result += "</ul>";
return result;
}
// Import utility functions
import "utils" as utils;
// Helper function that calls the utils function
fn calculate_price(price, discount_percent) {
return utils::calculate_price(price, discount_percent);
}