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.
28 lines
855 B
Plaintext
28 lines
855 B
Plaintext
// Utility functions for Tera templates - UPDATED VERSION
|
|
|
|
// Format a date string with improved formatting
|
|
fn format_date(date_str) {
|
|
let parts = date_str.split("-");
|
|
let year = parts[0];
|
|
let month = parts[1];
|
|
let day = parts[2];
|
|
|
|
// Add month names for better readability
|
|
let month_names = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
|
let month_idx = month.parse_int() - 1;
|
|
let month_name = month_names[month_idx];
|
|
|
|
return `${month_name} ${day}, ${year}`;
|
|
}
|
|
|
|
// Calculate a price with discount - enhanced with minimum discount
|
|
fn calculate_price(price, discount_percent) {
|
|
let discount = price * (discount_percent / 100.0);
|
|
return price - discount;
|
|
}
|
|
|
|
// Format a currency value with improved formatting
|
|
fn format_currency(amount) {
|
|
return "$" + amount;
|
|
}
|