add flowbite
This commit is contained in:
parent
caeac280eb
commit
5ef37275ec
4 changed files with 48 additions and 8 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,2 +1,4 @@
|
||||||
/target
|
/target
|
||||||
src/htmx.min.js
|
src/htmx.min.js
|
||||||
|
src/flowbite.min.css
|
||||||
|
src/flowbite.min.js
|
26
build.rs
26
build.rs
|
@ -1,11 +1,9 @@
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
fn main() {
|
pub fn download_file(url: &str, dest_path: &str) {
|
||||||
let url = "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js";
|
println!("Downloading {dest_path} from {url}");
|
||||||
let dest_path = Path::new("src/htmx.min.js");
|
let dest_path = Path::new(dest_path);
|
||||||
|
|
||||||
println!("Downloading htmx.min.js from {url}");
|
|
||||||
let response = reqwest::blocking::get(url)
|
let response = reqwest::blocking::get(url)
|
||||||
.expect("Failed to send HTTP request")
|
.expect("Failed to send HTTP request")
|
||||||
.error_for_status()
|
.error_for_status()
|
||||||
|
@ -13,7 +11,23 @@ fn main() {
|
||||||
|
|
||||||
let content = response.bytes().expect("Failed to read response body");
|
let content = response.bytes().expect("Failed to read response body");
|
||||||
|
|
||||||
fs::write(dest_path, &content).expect("Failed to write htmx.min.js to destination");
|
fs::write(dest_path, &content).expect("Failed to write file to destination");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
download_file(
|
||||||
|
"https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js",
|
||||||
|
"src/htmx.min.js",
|
||||||
|
);
|
||||||
|
|
||||||
|
download_file(
|
||||||
|
"https://cdn.jsdelivr.net/npm/flowbite@2.5.2/dist/flowbite.min.css",
|
||||||
|
"src/flowbite.min.css",
|
||||||
|
);
|
||||||
|
download_file(
|
||||||
|
"https://cdn.jsdelivr.net/npm/flowbite@2.5.2/dist/flowbite.min.js",
|
||||||
|
"src/flowbite.min.js",
|
||||||
|
);
|
||||||
|
|
||||||
println!("cargo:rerun-if-changed=build.rs");
|
println!("cargo:rerun-if-changed=build.rs");
|
||||||
}
|
}
|
||||||
|
|
24
src/asset.rs
24
src/asset.rs
|
@ -10,12 +10,34 @@ pub fn htmx_script_route() -> DataResponse {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[get("/assets/flowbite.min.css")]
|
||||||
|
pub fn flowbite_css() -> DataResponse {
|
||||||
|
DataResponse::new(
|
||||||
|
include_str!("flowbite.min.css").as_bytes().to_vec(),
|
||||||
|
"text/css".to_string(),
|
||||||
|
Some(60 * 60 * 24 * 3),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[get("/assets/flowbite.min.s")]
|
||||||
|
pub fn flowbite_js() -> DataResponse {
|
||||||
|
DataResponse::new(
|
||||||
|
include_str!("flowbite.min.js").as_bytes().to_vec(),
|
||||||
|
"application/javascript".to_string(),
|
||||||
|
Some(60 * 60 * 24 * 3),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
pub trait AssetRoutes {
|
pub trait AssetRoutes {
|
||||||
fn mount_assets(self) -> Self;
|
fn mount_assets(self) -> Self;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AssetRoutes for rocket::Rocket<Build> {
|
impl AssetRoutes for rocket::Rocket<Build> {
|
||||||
fn mount_assets(self) -> Self {
|
fn mount_assets(self) -> Self {
|
||||||
self.mount("/", routes![crate::asset::htmx_script_route])
|
self.mount("/", routes![
|
||||||
|
crate::asset::htmx_script_route,
|
||||||
|
crate::asset::flowbite_css,
|
||||||
|
crate::asset::flowbite_js
|
||||||
|
])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,6 +64,8 @@ impl Shell {
|
||||||
@if self.ui {
|
@if self.ui {
|
||||||
script src="https://cdn.tailwindcss.com" {};
|
script src="https://cdn.tailwindcss.com" {};
|
||||||
script src="/assets/htmx.min.js" {};
|
script src="/assets/htmx.min.js" {};
|
||||||
|
script src="/assets/flowbite.min.js" {};
|
||||||
|
link href="/assets/flowbite.min.css" rel="stylesheet" {};
|
||||||
meta name="viewport" content="width=device-width, initial-scale=1.0";
|
meta name="viewport" content="width=device-width, initial-scale=1.0";
|
||||||
};
|
};
|
||||||
(self.head)
|
(self.head)
|
||||||
|
|
Loading…
Add table
Reference in a new issue