use serde::Serialize; use std::{collections::HashSet, path::PathBuf}; use crate::config::Config; #[derive(Serialize, Default, Clone)] pub struct Article { pub title: String, pub date: String, pub author: String, pub slug: String, pub file_path: PathBuf, pub tags: HashSet, } impl Article { pub fn get_build_path(&self, config: &Config) -> PathBuf { config .get_build_path() .join("articles") .join(&self.slug) .join("index.html") } } #[derive(Serialize, Default)] pub struct ArticleContext { article: Article, content: String, } impl ArticleContext { pub fn new(article: Article, content: String) -> Self { Self { article, content } } }