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.
33 lines
1002 B
Plaintext
33 lines
1002 B
Plaintext
// Main functions for Tera templates - UPDATED VERSION
|
|
|
|
// Format a greeting with the current version
|
|
fn greet(name) {
|
|
return `Hello, ${name}! Welcome to our UPDATED website. (Version 2.0)`;
|
|
}
|
|
|
|
// Format a product display with enhanced formatting
|
|
fn format_product(name, price, discount) {
|
|
// Use the calculate_price function from utils
|
|
let final_price = calculate_price(price, discount);
|
|
let savings = price - final_price;
|
|
return `${name} - Original: $${price}, Now: $${final_price} (Save $${savings})`;
|
|
}
|
|
|
|
// Format a list of items as HTML with CSS classes
|
|
fn format_list_items(items) {
|
|
let result = "<ul class='category-list'>";
|
|
for item in items {
|
|
result += `<li class='category-item'>${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);
|
|
}
|