remade modular html generator
This commit is contained in:
		
							parent
							
								
									a500db6f45
								
							
						
					
					
						commit
						3587f20a39
					
				
					 9 changed files with 192 additions and 137 deletions
				
			
		
							
								
								
									
										1
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| 
						 | 
					@ -99,6 +99,7 @@ dependencies = [
 | 
				
			||||||
name = "banii-cafe"
 | 
					name = "banii-cafe"
 | 
				
			||||||
version = "0.1.0"
 | 
					version = "0.1.0"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "rand",
 | 
				
			||||||
 "rocket",
 | 
					 "rocket",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,4 +4,5 @@ version = "0.1.0"
 | 
				
			||||||
edition = "2021"
 | 
					edition = "2021"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
 | 
					rand = "0.8.5"
 | 
				
			||||||
rocket = "0.5.0"
 | 
					rocket = "0.5.0"
 | 
				
			||||||
							
								
								
									
										3
									
								
								src/htmlgenerator.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/htmlgenerator.rs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					pub mod blocks;
 | 
				
			||||||
 | 
					pub mod builder;
 | 
				
			||||||
 | 
					pub mod errors;
 | 
				
			||||||
							
								
								
									
										105
									
								
								src/htmlgenerator/blocks.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								src/htmlgenerator/blocks.rs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,105 @@
 | 
				
			||||||
 | 
					use std::{ffi::OsString, fs};
 | 
				
			||||||
 | 
					pub fn gen_head(charset: &str, author: &str, title: &str, stylesheet: &str) -> String {
 | 
				
			||||||
 | 
					    String::from(format!(r#"
 | 
				
			||||||
 | 
					    <head>
 | 
				
			||||||
 | 
					        <meta charset="{}" />
 | 
				
			||||||
 | 
					        <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
				
			||||||
 | 
					        <meta name="author" content="{}">
 | 
				
			||||||
 | 
					        <title>{}</title>
 | 
				
			||||||
 | 
					        <link rel="stylesheet" href="./styles/{}.css">
 | 
				
			||||||
 | 
					    </head>
 | 
				
			||||||
 | 
					"#, charset, author, title, stylesheet))}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub fn gen_header(site_name: &str, quote: String) -> String {
 | 
				
			||||||
 | 
					    let blinkie_string = gen_imgs("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">
 | 
				
			||||||
 | 
					            <div class="marquee"><div class="blinkies">{}</div><div class="blinkies">{}</div></div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </header>
 | 
				
			||||||
 | 
					"#, site_name, quote, blinkie_string, blinkie_string))}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub fn gen_main(nav: String, content: String) -> String {
 | 
				
			||||||
 | 
					    String::from(format!(r#"
 | 
				
			||||||
 | 
					    <main>
 | 
				
			||||||
 | 
					        {}
 | 
				
			||||||
 | 
					        {}
 | 
				
			||||||
 | 
					    </main>
 | 
				
			||||||
 | 
					"#, nav, content))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub fn gen_footer() -> String {
 | 
				
			||||||
 | 
					    let banners_string = gen_imgs("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))}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub fn gen_nav(links_map: Vec<(&str, &str)>) -> String{
 | 
				
			||||||
 | 
					    let mut links:String = String::from("");
 | 
				
			||||||
 | 
					    for (url, label) in links_map.into_iter() {
 | 
				
			||||||
 | 
					        let mut newtab = "";
 | 
				
			||||||
 | 
					        if url.chars().nth(0).unwrap() != '/' {
 | 
				
			||||||
 | 
					            newtab = "target='_blank'"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        let link_tag = format!("<li><a class='navlink' {} href='{}'>{}</a></li>", newtab ,url, label);
 | 
				
			||||||
 | 
					        links = format!("{links}{link_tag}");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String::from(format!(r#"
 | 
				
			||||||
 | 
					    <nav class="window">
 | 
				
			||||||
 | 
					        <h2 style="color: rgb(222,222,108);">travel to...</h2>
 | 
				
			||||||
 | 
					        <ul>
 | 
				
			||||||
 | 
					            {}
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					    </nav>
 | 
				
			||||||
 | 
					"#, links))}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// use for when no content for main availiable
 | 
				
			||||||
 | 
					pub fn gen_placeholder() -> String{
 | 
				
			||||||
 | 
					    String::from(format!(r#"
 | 
				
			||||||
 | 
					    <article>
 | 
				
			||||||
 | 
					        <div class="window">
 | 
				
			||||||
 | 
					            <h2>!under construction!</h2>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </article>
 | 
				
			||||||
 | 
					"#))}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn gen_imgs(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//content
 | 
				
			||||||
 | 
					pub fn home_content() -> String {
 | 
				
			||||||
 | 
					    String::from(format!(r#"
 | 
				
			||||||
 | 
					    <article>
 | 
				
			||||||
 | 
					        <div class="window">
 | 
				
			||||||
 | 
					            <h2 style="color: rgb(222,222,108);">welcome!</h2>
 | 
				
			||||||
 | 
					            <p>hiii!!! welcome to my site, feel free to look around and learn something your government doesn't want you to :3</p>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="window" style="max-width: 400px;">
 | 
				
			||||||
 | 
					            <h2>stampbook</h2>
 | 
				
			||||||
 | 
					            <div class="stamps">
 | 
				
			||||||
 | 
					                {}
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </article>
 | 
				
			||||||
 | 
					"#, gen_imgs("stamps")))}
 | 
				
			||||||
							
								
								
									
										11
									
								
								src/htmlgenerator/builder.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/htmlgenerator/builder.rs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					pub fn build_page(head: String, header: String, main: String, footer: String) -> String {format!(r#"
 | 
				
			||||||
 | 
					    <!DOCTYPE html>
 | 
				
			||||||
 | 
					    <html>
 | 
				
			||||||
 | 
					        {}
 | 
				
			||||||
 | 
					        <body>
 | 
				
			||||||
 | 
					        {}
 | 
				
			||||||
 | 
					        {}
 | 
				
			||||||
 | 
					        {}
 | 
				
			||||||
 | 
					        </body>
 | 
				
			||||||
 | 
					    </html>
 | 
				
			||||||
 | 
					"#, head, header, main, footer)}
 | 
				
			||||||
							
								
								
									
										22
									
								
								src/htmlgenerator/errors.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/htmlgenerator/errors.rs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					use rocket::response::content::RawHtml;
 | 
				
			||||||
 | 
					use rocket::Request;
 | 
				
			||||||
 | 
					use rocket::http::Status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use crate::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[catch(default)]
 | 
				
			||||||
 | 
					pub fn default(status: Status, req: &Request)-> RawHtml<String>{
 | 
				
			||||||
 | 
					    RawHtml(crate::htmlgenerator::builder::build_page(
 | 
				
			||||||
 | 
					        gen_head("UTF-8", "genki_angel", "banii.cafe", "base"), 
 | 
				
			||||||
 | 
					        gen_header("BANII.CAFE", "uh-oh, something has gone wrong!".to_string()), 
 | 
				
			||||||
 | 
					        gen_main(gen_nav(get_links()), String::from(format!(r#"
 | 
				
			||||||
 | 
					        <article>
 | 
				
			||||||
 | 
					            <div class="window">
 | 
				
			||||||
 | 
					                <img src="https://http.cat/{}"/>
 | 
				
			||||||
 | 
					                <p>{}</p>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </article>
 | 
				
			||||||
 | 
					    "#, status.code, req.uri()))), 
 | 
				
			||||||
 | 
					        gen_footer()
 | 
				
			||||||
 | 
					    ))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,130 +0,0 @@
 | 
				
			||||||
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;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										37
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								src/main.rs
									
									
									
									
									
								
							| 
						 | 
					@ -1,21 +1,48 @@
 | 
				
			||||||
use index_builder::build_index;
 | 
					use htmlgenerator::errors::*;
 | 
				
			||||||
 | 
					use htmlgenerator::blocks::*;
 | 
				
			||||||
 | 
					use randomquote::get_quote;
 | 
				
			||||||
use rocket::fs::FileServer;
 | 
					use rocket::fs::FileServer;
 | 
				
			||||||
use rocket::response::content::RawHtml;
 | 
					use rocket::response::content::RawHtml;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mod index_builder;
 | 
					mod htmlgenerator;
 | 
				
			||||||
 | 
					mod randomquote;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[macro_use] extern crate rocket;
 | 
					#[macro_use] extern crate rocket;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//TODO replace with file/env configuration
 | 
				
			||||||
 | 
					fn get_links() -> Vec<(&'static str, &'static str)>{
 | 
				
			||||||
 | 
					    Vec::from([
 | 
				
			||||||
 | 
					        ("/", "/home"),
 | 
				
			||||||
 | 
					        ("/gallery", "/gallery"),
 | 
				
			||||||
 | 
					        ("https://git.banii.cafe", "/repos"),
 | 
				
			||||||
 | 
					        ("https://github.com/genki-angel", ">github")
 | 
				
			||||||
 | 
					    ])
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[get("/")]
 | 
					#[get("/")]
 | 
				
			||||||
fn index() -> RawHtml<String> {
 | 
					fn index() -> RawHtml<String> {
 | 
				
			||||||
    RawHtml(build_index())
 | 
					    RawHtml(htmlgenerator::builder::build_page(
 | 
				
			||||||
 | 
					        gen_head("UTF-8", "genki_angel", "banii.cafe", "base"), 
 | 
				
			||||||
 | 
					        gen_header("BANII.CAFE", get_quote()), 
 | 
				
			||||||
 | 
					        gen_main(gen_nav(get_links()), home_content()), 
 | 
				
			||||||
 | 
					        gen_footer()
 | 
				
			||||||
 | 
					    ))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[get("/gallery")]
 | 
				
			||||||
 | 
					fn gallery()-> RawHtml<String> {
 | 
				
			||||||
 | 
					    RawHtml(htmlgenerator::builder::build_page(
 | 
				
			||||||
 | 
					        gen_head("UTF-8", "genki_angel", "banii.cafe", "base"), 
 | 
				
			||||||
 | 
					        gen_header("BANII.CAFE", "under construction!".to_string()), 
 | 
				
			||||||
 | 
					        gen_main(gen_nav(get_links()), gen_placeholder()), 
 | 
				
			||||||
 | 
					        gen_footer()
 | 
				
			||||||
 | 
					    ))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[launch]
 | 
					#[launch]
 | 
				
			||||||
fn rocket() -> _ {
 | 
					fn rocket() -> _ {
 | 
				
			||||||
    rocket::build()
 | 
					    rocket::build()
 | 
				
			||||||
    .mount("/", routes![index])
 | 
					    .register("/", catchers![default])
 | 
				
			||||||
 | 
					    .mount("/", routes![index, gallery])
 | 
				
			||||||
    .mount("/", FileServer::from("./static"))
 | 
					    .mount("/", FileServer::from("./static"))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										15
									
								
								src/randomquote.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/randomquote.rs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					use rand::seq::SliceRandom;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub fn get_quote() -> String{
 | 
				
			||||||
 | 
					    let quotes = Vec::from([
 | 
				
			||||||
 | 
					        "random quote here",
 | 
				
			||||||
 | 
					        "made with rust!",
 | 
				
			||||||
 | 
					        "don't trust anyone that calls me a furry",
 | 
				
			||||||
 | 
					        "haters welcome!",
 | 
				
			||||||
 | 
					        "no bunnies were harmed in the making of this site",
 | 
				
			||||||
 | 
					        "check out my repos and github!",
 | 
				
			||||||
 | 
					        "remember to be nice :3",
 | 
				
			||||||
 | 
					        ":3 :3 :3 :3 :3 :3 :3 :3 :3 :3 :3 :3 :3 :3 :3"
 | 
				
			||||||
 | 
					    ]);
 | 
				
			||||||
 | 
					    quotes.choose(&mut rand::thread_rng()).unwrap().to_string()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in a new issue