Compare commits
2 commits
fe5c27839f
...
241e46f02f
| Author | SHA1 | Date | |
|---|---|---|---|
| 241e46f02f | |||
| 8a1a2c16e3 |
34 changed files with 29 additions and 33 deletions
|
|
@ -88,7 +88,7 @@ date: 2021-07-05
|
||||||
It is important to take the time to ensure that the things that we create are as simple as possible while still doing everything they need to do.
|
It is important to take the time to ensure that the things that we create are as simple as possible while still doing everything they need to do.
|
||||||
It often makes them harder to make in the first place but the extra investment of time and energy upfront make maintaining and modifying them much simpler.
|
It often makes them harder to make in the first place but the extra investment of time and energy upfront make maintaining and modifying them much simpler.
|
||||||
Overall it saves much more time then it takes, but the time saved is spread out over years and is less noticeable.
|
Overall it saves much more time then it takes, but the time saved is spread out over years and is less noticeable.
|
||||||
Kind of like good <a href="/blog/habits">habits</a> where the cost is now and the rewards are later.
|
Kind of like good <a href="/posts/habits">habits</a> where the cost is now and the rewards are later.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
@ -135,7 +135,7 @@ impl PsqlData for Article {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn load_articles(pool: &Pool<Postgres>) -> Result<(), Box<dyn Error>> {
|
pub async fn load_articles(pool: &Pool<Postgres>) -> Result<(), Box<dyn Error>> {
|
||||||
let paths = fs::read_dir("blog/").unwrap();
|
let paths = fs::read_dir("posts/").unwrap();
|
||||||
for path_entry in paths {
|
for path_entry in paths {
|
||||||
let path: PathBuf = path_entry.unwrap().path();
|
let path: PathBuf = path_entry.unwrap().path();
|
||||||
let metadata = metadata(path.clone()).unwrap();
|
let metadata = metadata(path.clone()).unwrap();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
|
||||||
pub mod admin;
|
pub mod admin;
|
||||||
pub mod blog;
|
pub mod posts;
|
||||||
pub mod projects;
|
pub mod projects;
|
||||||
pub mod root;
|
pub mod root;
|
||||||
pub mod templates;
|
pub mod templates;
|
||||||
|
|
|
||||||
|
|
@ -8,22 +8,22 @@ use axum::{
|
||||||
use sqlx::PgPool;
|
use sqlx::PgPool;
|
||||||
use std::{collections::HashMap, error::Error};
|
use std::{collections::HashMap, error::Error};
|
||||||
|
|
||||||
use super::templates::{ArticleTemplate, BlogFooterTemplate, BlogTemplate, HtmlTemplate};
|
use super::templates::{ArticleTemplate, PostFooterTemplate, PostTemplate, HtmlTemplate};
|
||||||
|
|
||||||
pub fn get_router() -> Router {
|
pub fn get_router() -> Router {
|
||||||
Router::new()
|
Router::new()
|
||||||
.route("/", get(blog))
|
.route("/", get(post))
|
||||||
.route("/:article", get(article))
|
.route("/:article", get(article))
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn blog(Extension(pool): Extension<PgPool>) -> impl IntoResponse {
|
async fn post(Extension(pool): Extension<PgPool>) -> impl IntoResponse {
|
||||||
let blog_page = BlogTemplate {
|
let post_page = PostTemplate {
|
||||||
articles: match get_articles_date_sorted(&pool).await {
|
articles: match get_articles_date_sorted(&pool).await {
|
||||||
Ok(list) => list,
|
Ok(list) => list,
|
||||||
Err(_) => Vec::new(),
|
Err(_) => Vec::new(),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
HtmlTemplate(blog_page)
|
HtmlTemplate(post_page)
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn article(
|
async fn article(
|
||||||
|
|
@ -35,7 +35,7 @@ async fn article(
|
||||||
Ok(a) => *a,
|
Ok(a) => *a,
|
||||||
Err(_) => return Err(StatusCode::NOT_FOUND),
|
Err(_) => return Err(StatusCode::NOT_FOUND),
|
||||||
};
|
};
|
||||||
let footer = BlogFooterTemplate {
|
let footer = PostFooterTemplate {
|
||||||
previous: match article.previous {
|
previous: match article.previous {
|
||||||
Some(a) => a,
|
Some(a) => a,
|
||||||
None => "".to_string(),
|
None => "".to_string(),
|
||||||
|
|
@ -23,7 +23,7 @@ use crate::{
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
admin,
|
admin,
|
||||||
blog::{self, get_articles_date_sorted},
|
posts::{self, get_articles_date_sorted},
|
||||||
projects,
|
projects,
|
||||||
templates::{
|
templates::{
|
||||||
AboutTemplate, AiTemplate, BlogrollTemplate, BooksTemplate, ContactTemplate, CookingTemplate, CreationTemplate, GiftsTemplate, HomeTemplate, HtmlTemplate, InterestsTemplate, LinksPageTemplate, LoginTemplate, MoneyTemplate, NowTemplate, ResumeTemplate, SignupTemplate, TechnologyTemplate, TimeTemplate, UsesTemplate, WorkTemplate
|
AboutTemplate, AiTemplate, BlogrollTemplate, BooksTemplate, ContactTemplate, CookingTemplate, CreationTemplate, GiftsTemplate, HomeTemplate, HtmlTemplate, InterestsTemplate, LinksPageTemplate, LoginTemplate, MoneyTemplate, NowTemplate, ResumeTemplate, SignupTemplate, TechnologyTemplate, TimeTemplate, UsesTemplate, WorkTemplate
|
||||||
|
|
@ -37,7 +37,7 @@ pub fn get_router(pool: PgPool) -> Router {
|
||||||
let middleware_database = pool.clone();
|
let middleware_database = pool.clone();
|
||||||
|
|
||||||
Router::new()
|
Router::new()
|
||||||
.nest("/blog", blog::get_router())
|
.nest("/posts", posts::get_router())
|
||||||
.nest("/projects", projects::get_router())
|
.nest("/projects", projects::get_router())
|
||||||
.nest("/admin", admin::get_router())
|
.nest("/admin", admin::get_router())
|
||||||
.nest_service(
|
.nest_service(
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,8 @@ pub struct LinksPageTemplate {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Template)]
|
#[derive(Template)]
|
||||||
#[template(path = "blog.html")]
|
#[template(path = "posts.html")]
|
||||||
pub struct BlogTemplate {
|
pub struct PostTemplate {
|
||||||
pub articles: Vec<Article>,
|
pub articles: Vec<Article>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -128,7 +128,7 @@ pub struct CreationTemplate {}
|
||||||
|
|
||||||
#[derive(Template)]
|
#[derive(Template)]
|
||||||
#[template(path = "blog_footer.html")]
|
#[template(path = "blog_footer.html")]
|
||||||
pub struct BlogFooterTemplate {
|
pub struct PostFooterTemplate {
|
||||||
pub previous: String,
|
pub previous: String,
|
||||||
pub next: String,
|
pub next: String,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
<li>
|
<li>
|
||||||
<a id="blog" href="/blog">
|
<a id="posts" href="/posts">
|
||||||
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#8ec07c" transform="rotate(0)">
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#8ec07c" transform="rotate(0)">
|
||||||
<title>Posts</title>
|
<title>Posts</title>
|
||||||
<g id="SVGRepo_bgCarrier" stroke-width="0"></g>
|
<g id="SVGRepo_bgCarrier" stroke-width="0"></g>
|
||||||
|
|
|
||||||
|
|
@ -13,23 +13,19 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h4>Currently Reading</h4>
|
<h4>Currently Reading</h4>
|
||||||
<p>
|
|
||||||
I have a couple books on the go at the moment.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Bit Tyrants by Rob Larson for non fiction.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Slow Down by Kohei Saito as an audiobook.
|
|
||||||
It is on degrowth similar to Less is More, and a subject that I am finding very interesting and compelling at the moment.
|
|
||||||
</p>
|
|
||||||
<p>
|
<p>
|
||||||
River of Gods by Ian McDonald for fiction.
|
River of Gods by Ian McDonald for fiction.
|
||||||
A science ficton book taking place in India and through their cultural lens.
|
A science ficton book taking place in India and through their cultural lens.
|
||||||
The author is British so was unsure, but he seems to be approaching the background with respect and I am enjoying the book.
|
The author is British so was unsure, but he seems to be approaching the background with respect and I am enjoying the book.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h4>Read so far in 2024</h4>
|
<h4>Read so far in 2025</h4>
|
||||||
|
<ul class="no-bul">
|
||||||
|
<li>Bit Tyrants - Rob Larson</li>
|
||||||
|
<li>Slow Down - Kohei Saito</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4>In 2024</h4>
|
||||||
<ul class="no-bul">
|
<ul class="no-bul">
|
||||||
<li>Data Grab - Ulisses Mejas & Nick Couldry</li>
|
<li>Data Grab - Ulisses Mejas & Nick Couldry</li>
|
||||||
<li>Less is More - Jason Hickel</li>
|
<li>Less is More - Jason Hickel</li>
|
||||||
|
|
@ -55,8 +51,8 @@
|
||||||
|
|
||||||
<h4>Reflections from Books I have read</h4>
|
<h4>Reflections from Books I have read</h4>
|
||||||
<ul class="no-bul">
|
<ul class="no-bul">
|
||||||
<li><a href="/blog/deepwork">Deep Work</a></li>
|
<li><a href="/posts/deepwork">Deep Work</a></li>
|
||||||
<li><a href="/blog/mfn">A Mind for Numbers</a></li>
|
<li><a href="/posts/mfn">A Mind for Numbers</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>
|
<h3>
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
<p>
|
<p>
|
||||||
Creating things is something that my family has always held as something very important.
|
Creating things is something that my family has always held as something very important.
|
||||||
We tend to operate more on the building fixing side of things but there is something sacred in any act of creation.
|
We tend to operate more on the building fixing side of things but there is something sacred in any act of creation.
|
||||||
I wrote about this feeling in <a href="/blog/mm">Midnight Musings</a> when I was unable to sleep.
|
I wrote about this feeling in <a href="/posts/mm">Midnight Musings</a> when I was unable to sleep.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
I dabble.
|
I dabble.
|
||||||
|
|
|
||||||
|
|
@ -31,16 +31,16 @@
|
||||||
</section><br>
|
</section><br>
|
||||||
|
|
||||||
<section id="blog">
|
<section id="blog">
|
||||||
<h2>Blog</h2>
|
<h2>Posts</h2>
|
||||||
<p>
|
<p>
|
||||||
Chronological <a href="blog">stuff</a> that I have written.
|
Chronological <a href="/posts">stuff</a> that I have written.
|
||||||
Not adding to this as much with the focus more on less time sensitive information, but if something is timely then will still be added as a blog post.
|
Not adding to this as much with the focus more on less time sensitive information, but if something is timely then will still be added as a blog post.
|
||||||
</p>
|
</p>
|
||||||
<h3>Most Recent Posts</h3>
|
<h3>Most Recent Posts</h3>
|
||||||
|
|
||||||
<ul class="no-bul">
|
<ul class="no-bul">
|
||||||
{% for article in recent_articles %}
|
{% for article in recent_articles %}
|
||||||
<li><a href="/blog/{{article.reference}}">{{article.title}}</a></li>
|
<li><a href="/posts/{{article.reference}}">{{article.title}}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</section><br>
|
</section><br>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<ul class="no-bul">
|
<ul class="no-bul">
|
||||||
{% for article in articles %}
|
{% for article in articles %}
|
||||||
<li><a href="/blog/{{article.reference}}">{{article.title}}</a></li>
|
<li><a href="/posts/{{article.reference}}">{{article.title}}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
Loading…
Reference in a new issue