feat: 统一创作页表头跟随后台入口配置

This commit is contained in:
2026-06-06 22:49:38 +08:00
parent 95f17cd920
commit 18908609fc
14 changed files with 276 additions and 53 deletions

View File

@@ -12,7 +12,7 @@ use crate::format_utc_micros;
use shared_contracts::creation_entry_config::{
CreationEntryConfigResponse, CreationEntryEventBannerResponse, CreationEntryStartCardResponse,
CreationEntryTypeModalResponse, CreationEntryTypeResponse,
encode_unified_creation_spec_response, resolve_unified_creation_spec_response,
encode_unified_creation_spec_response, resolve_unified_creation_spec_response_with_entry_title,
};
/// 将创作入口领域快照转换为前后台共享的 HTTP 契约响应。
@@ -45,8 +45,9 @@ pub fn build_creation_entry_config_response(
.creation_types
.into_iter()
.map(|item| {
let unified_creation_spec = resolve_unified_creation_spec_response(
let unified_creation_spec = resolve_unified_creation_spec_response_with_entry_title(
item.id.as_str(),
item.title.as_str(),
item.unified_creation_spec_json.as_deref(),
);
CreationEntryTypeResponse {
@@ -161,10 +162,9 @@ fn normalize_creation_entry_announcement_banner_value(
);
}
let banner = serde_json::from_value::<CreationEntryEventBannerResponse>(Value::Object(
object.clone(),
))
.map_err(|error| format!("{} 条公告对象非法:{error}", index + 1))?;
let banner =
serde_json::from_value::<CreationEntryEventBannerResponse>(Value::Object(object.clone()))
.map_err(|error| format!("{} 条公告对象非法:{error}", index + 1))?;
normalize_creation_entry_event_banner_response(index, banner)
}
@@ -243,8 +243,8 @@ pub fn resolve_creation_entry_event_banner_responses(
banners
}
.into_iter()
.map(build_creation_entry_event_banner_response)
.collect()
.map(build_creation_entry_event_banner_response)
.collect()
}
/// 把领域公告快照转换为 HTTP 响应字段。
@@ -332,10 +332,7 @@ fn normalize_banner_html_code(
}
let lower_html_code = html_code.to_ascii_lowercase();
if lower_html_code.contains("<script") || lower_html_code.contains("javascript:") {
return Err(format!(
"{} 条 HTML 公告含有不允许的脚本代码",
index + 1
));
return Err(format!("{} 条 HTML 公告含有不允许的脚本代码", index + 1));
}
Ok(Some(html_code))