6 个版本

0.3.2 2023 年 8 月 9 日
0.3.1 2023 年 8 月 7 日
0.3.0 2023 年 7 月 31 日
0.2.1 2023 年 7 月 27 日
0.1.0 2023 年 7 月 2 日

#598模板引擎

每月 42 次下载

MIT 许可证

37KB
813

HYRO

名词

/ˈhɪr.oʊ/

HYRO logo HYRO logo
  1. A : "Hypermedia Rust Orchestration" 的缩写
    B : 一个扩展 Axum 的新功能crate,如服务器端渲染 Jinja Templates捆绑 css,以及更好的开发者体验。
    C : 用于 超媒体系统HTMX 的强大 HMR 框架。
    D : 针对极客的相当于 Rails 的东西

用法和示例

  • 更深入的示例可以在 examples/basicexamples/crud 中找到。确保在运行之前 cd 到包含模板和样式文件夹的路径,否则您将收到一个文件未找到错误!

让我们从依赖项开始

cargo new hyro-getting-started
cargo add hyro
cargo add axum
cargo add tokio -F full
mkdir templates

HYRO 模板使用 Jinja2。让我们从一个基本的开始

模板/hello.html.jinja2

<p>Hello, {{ name }}!</p>

然后我们可以设置我们的样板文件

src/main.rs

use std::borrow::Cow;

use axum::response::Html;
use axum::{routing, Router, Server};
use hyro::{context, RouterExt, Template};

#[tokio::main]
async fn main() {
   let router = Router::new()
      .route("/hello", routing::get(hello))
      .into_service_with_hmr();

   Server::from_tcp(hyro::bind("0.0.0.0:1380").await)).unwrap()
        .serve(router)
        .await
        .unwrap();
}

async fn hello(template: Template) -> Html<Cow<'static, str>> {
   template.render(context! {
      name => "World",
   })
}

现在,如果我们将浏览器导航到 'localhost:1380/hello',我们可以看到我们的消息!如果您以调试模式运行,您可以在 templates/hello.html.jinja2 中编辑我们的消息,并且应该启动 HMR。

依赖项

~21–31MB
~420K SLoC