aboutsummaryrefslogtreecommitdiff
path: root/lib/xesite_types/src
diff options
context:
space:
mode:
authorXe Iaso <me@christine.website>2022-07-04 16:35:14 +0000
committerXe Iaso <me@christine.website>2022-07-04 16:35:14 +0000
commit7f6de2cb092cdd0675ae393a0a737a2c08329046 (patch)
tree29d74b18042f00f4b0d52cf3d9586135f5c9ce08 /lib/xesite_types/src
parent8b6056fc09320473577f458fa86bda26159ea43b (diff)
downloadxesite-7f6de2cb092cdd0675ae393a0a737a2c08329046.tar.xz
xesite-7f6de2cb092cdd0675ae393a0a737a2c08329046.zip
add _xesite_frontmatter extension
Signed-off-by: Xe Iaso <me@christine.website>
Diffstat (limited to 'lib/xesite_types/src')
-rw-r--r--lib/xesite_types/src/lib.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/xesite_types/src/lib.rs b/lib/xesite_types/src/lib.rs
new file mode 100644
index 0000000..68ae4c4
--- /dev/null
+++ b/lib/xesite_types/src/lib.rs
@@ -0,0 +1,37 @@
+use serde::{Deserialize, Serialize};
+
+#[derive(Eq, PartialEq, Deserialize, Default, Debug, Serialize, Clone)]
+pub struct Frontmatter {
+ #[serde(default = "frontmatter_about")]
+ pub about: String,
+ #[serde(skip_serializing)]
+ pub title: String,
+ #[serde(skip_serializing)]
+ pub date: String,
+ #[serde(skip_serializing)]
+ pub author: Option<String>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub series: Option<String>,
+ #[serde(skip_serializing)]
+ pub tags: Option<Vec<String>>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub slides_link: Option<String>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub image: Option<String>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub thumb: Option<String>,
+ #[serde(skip_serializing)]
+ pub redirect_to: Option<String>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub vod: Option<Vod>,
+}
+
+fn frontmatter_about() -> String {
+ "https://xeiaso.net/blog/api-jsonfeed-extensions#_xesite_frontmatter".to_string()
+}
+
+#[derive(Eq, PartialEq, Deserialize, Default, Debug, Serialize, Clone)]
+pub struct Vod {
+ pub twitch: String,
+ pub youtube: String,
+}