working state
This commit is contained in:
parent
933d9fc1e3
commit
ba25617391
46
pages/common.html
Normal file
46
pages/common.html
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<title>Yuya</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta name="description" content="Penwing's Website">
|
||||||
|
<link rel="stylesheet" href="/assets/style.css">
|
||||||
|
<link rel="icon" href="/assets/flake.png" type="image/png">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="sidenav">
|
||||||
|
<h3><a href="/">Summary</a></h3>
|
||||||
|
<h3><a href="/tools">Tools</a></h3>
|
||||||
|
<a class="description" href="/tools#nginx">proxy</a>
|
||||||
|
<a class="description" href="/tools#cloudflare">domain</a>
|
||||||
|
<a class="description" href="/tools#portainer">dashboard</a>
|
||||||
|
<a class="description" href="/tools#pihole">adblocker</a>
|
||||||
|
<a class="description" href="/tools#searxng">search</a>
|
||||||
|
<a class="description" href="/tools#forgejo">git server</a>
|
||||||
|
<a class="description" href="/tools#jellyfin">streaming</a>
|
||||||
|
<a class="description" href="/tools#stirling">pdf edit</a>
|
||||||
|
<a class="description" href="/tools#seafile">storage</a>
|
||||||
|
|
||||||
|
<h3><a href="https://www.penwing.org/art.html">my Art</a></h3>
|
||||||
|
<h3><a href="https://www.penwing.org/games.html">my Games</a></h3>
|
||||||
|
</div>
|
||||||
|
<p class="topbar">
|
||||||
|
<a href="/">Home</a> -
|
||||||
|
<a href="/tools">Tools</a> -
|
||||||
|
<a href="/art">Art</a> -
|
||||||
|
<a href="/games">Games</a>
|
||||||
|
</p>
|
||||||
|
<div class="main">
|
||||||
|
#CONTENT#
|
||||||
|
<p id="spacer"><br></p>
|
||||||
|
<hr>
|
||||||
|
<p id="spacer"><br></p>
|
||||||
|
|
||||||
|
<h2 id="epilogue">Epilogue</h2>
|
||||||
|
|
||||||
|
<p>Inspired by the geniuses behind <a href="https://perfectmotherfuckingwebsite.com/">perfectwebsite.com</a>,
|
||||||
|
because a webpage does not have to be heavier than <a href="https://github.com/chrislgarry/Apollo-11">the code that took us to the moon</a>.</p>
|
||||||
|
|
||||||
|
<p>This page is licensed under <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a></p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body></html>
|
|
@ -1,4 +1,4 @@
|
||||||
# The Igloo ❄
|
# Yuya
|
||||||
|
|
||||||
Welcome to *penwing's* website.
|
Welcome to *penwing's* website.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# The Igloo - Tools
|
# Yuya - Tools
|
||||||
|
|
||||||
###### nginx
|
###### nginx
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ fn slugify(text: &str) -> String {
|
||||||
fn markdown_to_html(markdown_content: &str) -> String {
|
fn markdown_to_html(markdown_content: &str) -> String {
|
||||||
let parser = Parser::new(markdown_content);
|
let parser = Parser::new(markdown_content);
|
||||||
|
|
||||||
let mut html_output = String::new();
|
|
||||||
let mut events = Vec::new();
|
let mut events = Vec::new();
|
||||||
let mut in_header = false;
|
let mut in_header = false;
|
||||||
let mut header_text = String::new();
|
let mut header_text = String::new();
|
||||||
|
@ -47,13 +46,13 @@ fn markdown_to_html(markdown_content: &str) -> String {
|
||||||
|
|
||||||
async fn serve_markdown(file_path: &str) -> impl Responder {
|
async fn serve_markdown(file_path: &str) -> impl Responder {
|
||||||
// Read the Markdown file
|
// Read the Markdown file
|
||||||
let markdown_content = fs::read_to_string(file_path).unwrap_or_else(|_| String::from("Error reading file"));
|
let markdown_content = fs::read_to_string(file_path).unwrap_or_else(|_| String::from("Error reading markdown file"));
|
||||||
|
|
||||||
// Convert Markdown to HTML
|
// Convert Markdown to HTML
|
||||||
let html_content = markdown_to_html(&markdown_content);
|
let html_content = markdown_to_html(&markdown_content);
|
||||||
|
|
||||||
// Create the common HTML wrapper
|
// Create the common HTML wrapper
|
||||||
let common_html = include_str!("common.html");
|
let common_html = fs::read_to_string("pages/common.html").unwrap_or_else(|_| String::from("Error reading html file"));
|
||||||
|
|
||||||
// Replace #CONTENT# placeholder with the actual Markdown HTML content
|
// Replace #CONTENT# placeholder with the actual Markdown HTML content
|
||||||
let page_html = common_html.replace("#CONTENT#", &html_content);
|
let page_html = common_html.replace("#CONTENT#", &html_content);
|
||||||
|
@ -61,6 +60,7 @@ async fn serve_markdown(file_path: &str) -> impl Responder {
|
||||||
HttpResponse::Ok().content_type("text/html").body(page_html)
|
HttpResponse::Ok().content_type("text/html").body(page_html)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async fn summary() -> impl Responder {
|
async fn summary() -> impl Responder {
|
||||||
serve_markdown("pages/summary.md").await
|
serve_markdown("pages/summary.md").await
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue