3个稳定版本
4.0.2 | 2022年2月3日 |
---|---|
4.0.1 | 2021年11月25日 |
#573 in 模板引擎
33KB
521 行
由 ontology 编写
用于编写html的dsl(领域特定语言)。这绝对不是一个html模板(有很多这样的模板)。这个库并不完整,并且很可能永远不会完整——html非常庞大。
用法
use onhtml::* ;
fn myhomepage1() ->String {
let mut x = Title("a page") ;
x += &meta() .name("description") .Content("bla bla") ;
x += &Style("some inline css") ;
x = Head(&x) ;
let mut y = a("nst") .href("nst.com") .Download() ;
y += &P("nst") ;
x += &Body(&y) ;
x += &script("") .type_("module") .Src("/res/main.js") ;
x = html(&x) .Lang("en") ;
doctype(&x)}
fn myhomepage2() ->String {
let mut x = Title("a page") ;
x += &meta() .name("description") .Content("bla bla") ;
x += &link() .rel("stylesheet") .Href("/mycss.css") ;
x = Head(&x) ;
let mut y = a("nst") .href("nst.com") .data("a","1") .Download() ;
y += &P("nst") ;
x += &Body(&y) ;
x += &script("") .type_("script") .Src("/res/main.js") ;
x = html(&x) .Lang("en") ;
doctype(&x)}
请注意——这违反了Rust的惯例——一些函数是首字母大写的。每个函数都有两种形式。你可以把首字母大写的函数看作是非首字母大写的函数调用,后面跟着一个假设的.finish()方法来关闭构建器。例如:
let x = a("some link") .href("https://somelink.com") .finish()
而不是上面这样,我们有
let x = a("some link") .Href("https://somelink.com")
这是出于纯粹的人体工程学原因决定的。
由于一切都是String,如果库缺少某些功能,你可以手动添加
let mut x = Div("some content")
x += "<span>some content</span>"
注意:与Rust的保留关键字(type, loop等)冲突的函数名后面会加上下划线。例如:type_
依赖关系
~9KB