aboutsummaryrefslogtreecommitdiffstats
path: root/src/posts
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@blos.sm>2023-05-30 21:48:26 +0100
committerLibravatar cel 🌸 <cel@blos.sm>2023-05-30 21:48:26 +0100
commit4e24495b159df0dbc4f503843c08ccd452af616a (patch)
tree9834c93fe714713b5305dbb46561d8e7154c142a /src/posts
parentc6378ca77f08a8aaf30fa25c4c02d151bf69edfa (diff)
downloadblossom-4e24495b159df0dbc4f503843c08ccd452af616a.tar.gz
blossom-4e24495b159df0dbc4f503843c08ccd452af616a.tar.bz2
blossom-4e24495b159df0dbc4f503843c08ccd452af616a.zip
WIP: blog
Diffstat (limited to 'src/posts')
-rw-r--r--src/posts/mod.rs33
-rw-r--r--src/posts/note.rs1
2 files changed, 34 insertions, 0 deletions
diff --git a/src/posts/mod.rs b/src/posts/mod.rs
index e69de29..b0c3749 100644
--- a/src/posts/mod.rs
+++ b/src/posts/mod.rs
@@ -0,0 +1,33 @@
+use chrono::{DateTime, Utc};
+use std::path::Path;
+
+enum PostType {
+ Article,
+ Note,
+}
+
+enum TextFormat {
+ Markdown,
+ Plaintext,
+ Html,
+}
+
+pub struct Post<T: Content> {
+ id: i64,
+ created_at: DateTime<Utc>,
+ updated_at: Option<DateTime<Utc>>,
+ post_type: PostType,
+ media: Option<Vec<Box<Path>>>,
+ content: Option<T>,
+ tags: Vec<String>,
+}
+
+pub trait Content {
+ fn render(&self) -> String;
+}
+
+// impl<T> Post<T> {
+// // renders as internal html (must sanitize)
+// fn new(type: PostType, ) -> Post<T> {
+// }
+// }
diff --git a/src/posts/note.rs b/src/posts/note.rs
index e69de29..95655d4 100644
--- a/src/posts/note.rs
+++ b/src/posts/note.rs
@@ -0,0 +1 @@
+struct note