3个不稳定版本
0.2.0 | 2021年12月14日 |
---|---|
0.1.5 | 2021年11月7日 |
#331 in 模板引擎
28KB
643 行
Templo Engine
文本文件中插入和修改变量的模板引擎。
示例
输入文本可以包含一些由 "{> arg <}" 表示的占位符。这些占位符将用于插入传递给引擎的参数。引擎还提供了一些原生函数来操作参数值。
input.py
class {> upper_first(class_name) <}:
def __init__(self):
self.name = '{> class_name <}'
obj = {> upper_first(class_name) <}()
print(f'The class name is {obj.name}')
执行
use templo_engine::*;
// Getting the input text
let input_text = std::fs::read_to_string("./input.py").unwrap();
// The arguments
let arguments = vec![
EngineArg {
key: String::from("class_name"),
value: String::from("dog"),
value_type: EngineArgType::String,
}
];
// Inserting the arguments on text
let engine = Engine::new(arguments);
let text = engine.compile(input_text);
// writing the output file
std::fs::write("./output.py", text.unwrap()).unwrap();
output.py
class Dog:
def __init__(self):
self.name = 'dog'
obj = Dog()
print(f'The class name is {obj.name}')
依赖项
~2.2–3MB
~53K SLoC