Files
ALL-teach_sys/frontend_视觉设计/update_my_projects_simple.py

98 lines
7.4 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
import json
import re
# 读取学生完成的项目JSON数据
with open('网页未导入数据/学生完成的项目.json', 'r', encoding='utf-8') as f:
projects_data = json.load(f)
# 提取视觉设计产业的数据
visual_design_projects = []
for item in projects_data:
if item.get('所属就业管家') == '视觉设计':
visual_design_projects.append(item)
print(f"找到 {len(visual_design_projects)} 个视觉设计项目数据")
# 生成我的项目库数据
my_projects_data = []
for item in visual_design_projects:
unit_name = item.get('单元名称查询', '')
project_names = item.get('学生完成的项目名称', [])
if unit_name and project_names:
my_projects_data.append({
"unitName": unit_name,
"projects": project_names
})
# 读取当前的项目库页面文件
with open('src/pages/ProjectLibraryPage/index.jsx', 'r', encoding='utf-8') as f:
content = f.read()
# 生成新的myProjectsData数组JavaScript代码
my_projects_js = f'''const myProjectsData = {json.dumps(my_projects_data, ensure_ascii=False, indent=2)};'''
# 生成新的clickableProjects数组JavaScript代码
clickable_projects_js = '''const clickableProjects = [
{
id: "clickable-1",
name: "《城市角落的治愈时刻——\\"深夜书店的流浪猫\\"》公众号文章AI插画设计项目",
unitName: "商业插画与原画",
isClickable: true,
content: {
title: "《城市角落的治愈时刻——\\"深夜书店的流浪猫\\"》公众号文章AI插画设计项目",
description: "在信息过载的公众号生态中通过AI插画设计为深夜书店与流浪猫的故事增添视觉温暖。",
images: [
{
url: "/Users/apple/Documents/cursor/教务系统/frontend_视觉设计/网页未导入数据/视觉设计产业/学生完成的项目/《城市角落的治愈时刻》内文插画一.jpeg",
title: "《城市角落的治愈时刻》内文插画一"
},
{
url: "/Users/apple/Documents/cursor/教务系统/frontend_视觉设计/网页未导入数据/视觉设计产业/学生完成的项目/《城市角落的治愈时刻》内文插画二.jpeg",
title: "《城市角落的治愈时刻》内文插画二"
}
],
sections: [
{
title: "一、项目背景",
content: "在信息过载的公众号生态中,\\"有温度的视觉 + 有故事的文字\\" 是突破传播壁垒的关键。本次公众号文章聚焦《城市角落的治愈时刻——\\"深夜书店的流浪猫\\"》这一具体场景,以 \\"读者给流浪猫留暖手宝\\" 的微小互动为核心,讲述城市深夜里人与动物之间的温柔羁绊。\\\\n\\\\n深夜的书店褪去白日喧嚣一盏暖灯、一只蜷缩的流浪猫、一份悄悄留下的暖手宝成为治愈都市人疲惫的 \\"小确幸\\"。为让这份 \\"安静的温暖\\" 更直观可感,避免纯文字难以传递的场景氛围与细腻情绪,特进行本次插画设计,通过可视化语言将文章核心故事转化为读者能 \\"触摸\\" 到的治愈画面,助力公众号内容形成情感共鸣与传播记忆点。"
},
{
title: "二、项目核心目标",
content: "1. **精准还原故事场景**:以 \\"深夜书店 + 流浪猫 + 暖手宝\\" 为核心元素,严格贴合文章对场景的描述,确保插画与文字内容高度匹配,帮助读者快速代入 \\"深夜书店偶遇温暖\\" 的情境。\\\\n\\\\n2. **强化 \\"静默治愈\\" 情绪**:通过画面构图、色彩调性与细节设计,传递 \\"安静柔软安心\\" 的治愈感,用 \\"读者悄悄留暖手宝\\" 的含蓄互动、书店暖光与深夜冷色的对比,让观者感受到 \\"不打扰的善意\\"\\\\n\\\\n3. **适配公众号传播场景**:设计封面与内文插画,封面需突出 \\"深夜书店 + 流浪猫\\" 的核心辨识度,吸引读者点击;内文插画则聚焦 \\"留暖手宝\\" 的互动细节,缓解文字阅读疲劳。\\\\n\\\\n4. **沉淀主题视觉资产**:形成一套围绕 \\"深夜书店治愈时刻\\" 的专属插画素材,既可用于本次文章发布,也能为公众号后续同类主题复用,强化公众号品牌调性。"
},
{
title: "三、应用AI软件——Whisk",
content: "Whisk 是谷歌推出的一款别具一格的 AI 绘画产品,与传统同类工具存在显著差异。它的核心亮点在于对用户提示词技巧的要求极低。传统生图工具大多高度依赖精细的文字描述来引导 AI 生成图像,而 Whisk 允许用户上传图片,以此作为主题、场景和风格样式的参考依据。\\\\n\\\\n在具体运作时Whisk 会借助 Gemini 模型自动解析用户上传的图片,生成详细的文字描述,随后将这些描述输送给 Imagen 3 模型,进而实现图像融合生成。"
},
{
title: "四、设计说明",
content: "### 主题与场景适配\\\\n\\\\n- **场景细节锚定**:还原文章描述的关键元素,如木质书架、散落的书籍、前台的台灯、贴满便签的留言墙、玻璃门上 \\"24 小时营业\\" 的灯箱\\\\n- **核心互动**:明确画面核心动作——读者的手正轻轻将暖手宝放在流浪猫身旁\\\\n- **环境氛围**:突出 \\"深夜\\" 属性,营造 \\"闹中取静\\" 的氛围\\\\n\\\\n### 插画形式规范\\\\n\\\\n- **风格定位**:选择 \\"肌理水彩风\\"\\"轻绘本风\\"\\\\n- **尺寸规格**封面插画1080px×1350px内文插画1080px×600px\\\\n- **文字点缀**:仅保留核心标题和简短点题文字\\\\n\\\\n### 色彩与光影设计\\\\n\\\\n- **主色调**:书店内暖黄+浅棕,书店外暗蓝+深灰\\\\n- **光影设计**:台灯暖光与月光冷色对比\\\\n- **核心色彩**:暖手宝浅粉配米白,与猫咪毛色和谐搭配"
},
{
title: "五、成果展示",
content: "本次项目成功交付了两幅高质量AI插画\\\\n\\\\n1. **内文插画一**:展现读者轻轻放置暖手宝的温柔瞬间,通过细腻的笔触和温暖的色调,完美诠释了人与动物间不打扰的善意。\\\\n\\\\n2. **内文插画二**:描绘读者离开后,流浪猫享受暖手宝温暖的安逸时光,体现了善意的延续和治愈的力量。\\\\n\\\\n两幅插画均采用轻绘本风格色彩柔和构图温馨完美契合了\\"城市角落治愈时刻\\"的主题定位,为公众号文章增添了强有力的视觉感染力。"
}
]
}
}
];'''
# 替换myProjectsData
old_my_projects_pattern = r'const myProjectsData = \[[\s\S]*?\];'
content = re.sub(old_my_projects_pattern, my_projects_js, content)
# 替换clickableProjects
old_clickable_pattern = r'const clickableProjects = \[[\s\S]*?\}[\s\S]*?\];'
content = re.sub(old_clickable_pattern, clickable_projects_js, content)
# 写回文件
with open('src/pages/ProjectLibraryPage/index.jsx', 'w', encoding='utf-8') as f:
f.write(content)
print("个人项目库数据已更新完成!")
print(f"不可查看项目数量:{len(my_projects_data)}个单元")
total_projects = sum(len(item['projects']) for item in my_projects_data)
print(f"总项目数量:{total_projects}")
print("可查看项目《城市角落的治愈时刻》AI插画设计项目")