1 个不稳定版本
0.1.0 | 2023年1月12日 |
---|
#360 在 模板引擎 中
6KB
markup-css-once
使用 Markup Rust 模板引擎,仅在模板中渲染内嵌样式一次
用法
假设我们有一个希望在页面上多次使用的模板。我们还在一个内嵌的 <style>
标签中有关这个模板的样式。
use markup_css_once::{CssOnce, css_once};
markup::define! {
Hello<'a>(
css: &'a CssOnce,
name: &'a str,
) {
@css_once!(css,
"p { background: blue }"
"b { color: yellow }"
)
p { "Hello, " b { @name } }
}
}
// We need an tracker for components with already rendered css
let css = CssOnce::new();
// The first time the template is rendered with styles
assert_eq!(
Hello { css: &css, name: "World" }.to_string(),
"<style>p { background: blue }b { color: yellow }</style>\n<p>Hello, <b>World</b></p>"
);
// But all subsequent calls will render only it's HTML
assert_eq!(
Hello { css: &css, name: "World" }.to_string(),
"<p>Hello, <b>World</b></p>"
);
贡献
我们感激所有形式的贡献,谢谢!
关于 README 的说明
大多数 README 文件是通过 cargo-sync-readme 从 crate 文档自动复制的。这样 README 总是与文档保持同步,并且示例已经过测试。
因此,如果您想更改 <!-- cargo-sync-readme start -->
和 <!-- cargo-sync-readme end -->
标记之间的 README 的部分,请不要直接编辑 README.md
,而是更改 src/lib.rs
顶部的文档,然后使用以下命令同步 README:
cargo sync-readme
(确保已安装 cargo 命令)
cargo install cargo-sync-readme
如果您已安装 rusty-hook,更改将在提交时自动应用。
许可证
本项目采用 MIT 许可证。