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/utils.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

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;
}