inital commit
This commit is contained in:
commit
a500db6f45
5 changed files with 1701 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/target
|
||||
/static
|
1541
Cargo.lock
generated
Normal file
1541
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
7
Cargo.toml
Normal file
7
Cargo.toml
Normal file
|
@ -0,0 +1,7 @@
|
|||
[package]
|
||||
name = "banii-cafe"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
rocket = "0.5.0"
|
130
src/index_builder.rs
Normal file
130
src/index_builder.rs
Normal file
|
@ -0,0 +1,130 @@
|
|||
use std::ffi::OsString;
|
||||
use std::fs;
|
||||
|
||||
pub fn build_index() -> String {format!(r#"
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
{}
|
||||
<body>
|
||||
{}
|
||||
{}
|
||||
{}
|
||||
</body>
|
||||
</html>
|
||||
"#, gen_head(), gen_header(), gen_main(), gen_footer())}
|
||||
|
||||
fn gen_head() -> String {String::from(format!(r#"
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="author" content="banii_angel">
|
||||
<title>banii.cafe</title>
|
||||
<link rel="stylesheet" href="./styles/base.css">
|
||||
</head>
|
||||
"#))}
|
||||
|
||||
fn gen_header() -> String {
|
||||
let blinkie_string = gen_img("blinkies");
|
||||
String::from(format!(r#"
|
||||
<header>
|
||||
<div class="header-greet">welcome to...</div>
|
||||
<h1>{}</h1>
|
||||
<div id="header-quotebox" class="window">
|
||||
<div class="billboard">{}</div>
|
||||
</div>
|
||||
<div id="blinkiebox" class="window">
|
||||
<div class="marquee"><div class="blinkies">{}</div><div class="blinkies">{}</div></div>
|
||||
</div>
|
||||
</header>
|
||||
"#, "BANII.CAFE", "Site under construction...", blinkie_string, blinkie_string))}
|
||||
|
||||
fn gen_main() -> String {String::from(format!(r#"
|
||||
<main>
|
||||
<nav class="window">
|
||||
<h2 style="color: rgb(222,222,108);">travel to...</h2>
|
||||
<ul>
|
||||
<li><a class="navlink" href="/">/home</a></li>
|
||||
<!-- <li><a class="navlink" href="/gallery">/gallery</a></li> -->
|
||||
<li><a class="navlink" href="/repos">/repos</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div class="windowbox">
|
||||
<div class="window">
|
||||
<h2 style="color: #cc4c4c; margin-bottom: 1em;">$$ most wanted $$</h2>
|
||||
<div class="mostwanted">
|
||||
<div class="mw-picture">
|
||||
<img style="width: 200px" src="{}">
|
||||
</div>
|
||||
<div class="mw-profile">
|
||||
<table style="width: 100%;">
|
||||
<tr>
|
||||
<td>name:</td>
|
||||
<td><span style="color: rgb(222,222,108);">genki_angel</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>height:</td>
|
||||
<td>mouse-sized</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>gender:</td>
|
||||
<td><span style="color: #cc4c4c;">dangerous</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span style="color: #cc4c4c;">wanted</span> for:</td>
|
||||
<td>being too silly</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>last seen:</td>
|
||||
<td>in your walls</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mw-desc">
|
||||
<p style="text-align: left;">
|
||||
<span style="color: rgb(49, 99, 235);">!INFO:</span> likes to smell plants and look at funny animals... <br>can be found eating <span class="highlight">plastic</span> from your bins and drinking <span class="highlight">kerosene</span> at your nearest airport
|
||||
</p>
|
||||
<br>
|
||||
<p style="text-align: left;">
|
||||
<span style="color: #cc4c4c;">!CAUTION:</span> will <span class="highlight">bark</span> very loud if approached
|
||||
</p>
|
||||
<br>
|
||||
<p class="window">
|
||||
<span style="color: rgb(222,222,108);">!REWARD!</span><br>second-hand <span class="highlight">Hwasong-18</span> ICBM<br>[fuel not included]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="window">
|
||||
<h2>stampbook</h2>
|
||||
<div class="stamps">
|
||||
{}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
||||
"#,"./img/genki.gif", gen_img("stamps")))}
|
||||
|
||||
fn gen_footer() -> String {
|
||||
let banners_string = gen_img("banners");
|
||||
String::from(format!(r#"
|
||||
<footer>
|
||||
<div id="bannerbox">
|
||||
<div class="marquee"><div class="banners">{}</div><div class="banners">{}</div></div>
|
||||
</div>
|
||||
</footer>
|
||||
"#, banners_string, banners_string))}
|
||||
|
||||
fn gen_img(images: &str) -> String {
|
||||
let paths = fs::read_dir(format!("./static/img/{images}/")).unwrap();
|
||||
let mut imgs:String = String::from("");
|
||||
|
||||
for path in paths {
|
||||
let file_name = OsString::from(path.unwrap().file_name());
|
||||
let img_tag = format!("<img src='./img/{images}/{}'>", file_name.to_str().unwrap());
|
||||
imgs = format!("{imgs}{img_tag}");
|
||||
}
|
||||
|
||||
return imgs;
|
||||
}
|
21
src/main.rs
Normal file
21
src/main.rs
Normal file
|
@ -0,0 +1,21 @@
|
|||
use index_builder::build_index;
|
||||
use rocket::fs::FileServer;
|
||||
use rocket::response::content::RawHtml;
|
||||
|
||||
mod index_builder;
|
||||
|
||||
|
||||
#[macro_use] extern crate rocket;
|
||||
|
||||
#[get("/")]
|
||||
fn index() -> RawHtml<String> {
|
||||
RawHtml(build_index())
|
||||
|
||||
}
|
||||
|
||||
#[launch]
|
||||
fn rocket() -> _ {
|
||||
rocket::build()
|
||||
.mount("/", routes![index])
|
||||
.mount("/", FileServer::from("./static"))
|
||||
}
|
Loading…
Reference in a new issue