seperated url and title + escape
This commit is contained in:
@@ -193,6 +193,7 @@ pub async fn create_post(
|
||||
|
||||
let meta = PostMeta {
|
||||
date: payload.date.unwrap_or_else(|| Utc::now().date_naive()),
|
||||
title: payload.title.map(|t| t.trim().to_string()).filter(|t| !t.is_empty()),
|
||||
summary: payload.summary.filter(|s| !s.trim().is_empty()),
|
||||
tags: payload.tags,
|
||||
draft: payload.draft,
|
||||
@@ -204,6 +205,7 @@ pub async fn create_post(
|
||||
Ok(Json(PostDetail {
|
||||
slug,
|
||||
date: meta.date,
|
||||
title: meta.title,
|
||||
summary: meta.summary,
|
||||
tags: meta.tags,
|
||||
draft: meta.draft,
|
||||
@@ -272,6 +274,7 @@ pub async fn list_posts(
|
||||
posts.push(PostInfo {
|
||||
slug: slug.to_string(),
|
||||
date: meta.date,
|
||||
title: meta.title.clone(),
|
||||
summary: meta.summary.clone(),
|
||||
tags: meta.tags.clone(),
|
||||
draft: meta.draft,
|
||||
@@ -305,6 +308,7 @@ pub async fn get_post(
|
||||
Ok(Json(PostDetail {
|
||||
slug,
|
||||
date: meta.date,
|
||||
title: meta.title,
|
||||
summary: meta.summary,
|
||||
tags: meta.tags,
|
||||
draft: meta.draft,
|
||||
|
||||
@@ -33,6 +33,8 @@ impl Default for SiteConfig {
|
||||
pub struct PostMeta {
|
||||
pub date: NaiveDate,
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub title: Option<String>,
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub summary: Option<String>,
|
||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||
pub tags: Vec<String>,
|
||||
@@ -45,6 +47,8 @@ pub struct PostInfo {
|
||||
pub slug: String,
|
||||
pub date: NaiveDate,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub title: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub summary: Option<String>,
|
||||
pub tags: Vec<String>,
|
||||
pub draft: bool,
|
||||
@@ -57,6 +61,8 @@ pub struct PostDetail {
|
||||
pub slug: String,
|
||||
pub date: NaiveDate,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub title: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub summary: Option<String>,
|
||||
pub tags: Vec<String>,
|
||||
pub draft: bool,
|
||||
@@ -70,6 +76,8 @@ pub struct CreatePostRequest {
|
||||
#[serde(default)]
|
||||
pub old_slug: Option<String>,
|
||||
#[serde(default)]
|
||||
pub title: Option<String>,
|
||||
#[serde(default)]
|
||||
pub date: Option<NaiveDate>,
|
||||
#[serde(default)]
|
||||
pub summary: Option<String>,
|
||||
|
||||
Reference in New Issue
Block a user