````rust use std::collections::HashMap;

use simplessrrs::{SSRender,ssrwork,Value}; fn main() { let mut ssr = SSRender::new("0.0.0.0:8080"); ssr.setpubdirname("assets"); // specify the name of the public assets directory in the current root directory ssr.settmpldirname("pages"); // specify the name of the template directory in the current root directory // ssr.setmetainfocollector(|req:&Request|->HashMap{}); // get meta data from the current request for the tempalte ssr.registerfunction("println".toowned(), |v:&HashMap|{ // register a function that can be used in template files let r = v.get("value").okor("none")?.asstr().okor("none")?; Ok(Value::String(format!("

{r}


"))) }); ssr.set
metainfocollector(|req:&Request|->HashMap{ // collect infomation from the current request, these objects can be used in the templates let mut map = HashMap::new(); map.insert("info".toowned(), Value::Bool(true)); map }); ssr_work!(ssr); }

````

Use built-in function

```html <!-- /pages/common/abc.html <h3>{{context.title}}</h3> <div>{{parent.info}}</div> we can access the variable in the parent(if any), and so forth, parent...parent.info --> <!-- the common directory is in root pathpages` -->

{{ include_file(path="common/abc.html"), context=`{"title":"abc"}` | safe }}

````

More details about how to use the template engine can be seen on the home page of Tera.