feat(halo): 添加图片自动上传功能
- 新增图片处理工具模块 `src/utils/image.ts`,包含图片引用提取、绝对路径解析和路径替换功能 - 新增图片上传服务 `src/service/image-uploader.ts`,支持调用 Halo 媒体 API 上传图片并实现缓存机制 - 在设置界面添加图片上传开关和上传路径配置项 - 更新发布流程,在提交到 Halo 前自动检测并上传本地图片,替换为远程 URL - 添加英文、简体中文和繁体中文的国际化文案 - 更新插件版本至 1.1.1 并完善相关配置文件
This commit is contained in:
+112
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"recentFiles": [
|
||||
{
|
||||
"basename": "Git团队协作指南(精简版)",
|
||||
"path": "博客/Git团队协作指南(精简版).md"
|
||||
},
|
||||
{
|
||||
"basename": "CLI在AI时代的浴火重生",
|
||||
"path": "博客/CLI在AI时代的浴火重生.md"
|
||||
},
|
||||
{
|
||||
"basename": "halo",
|
||||
"path": "copilot/copilot-custom-prompts/halo.md"
|
||||
},
|
||||
{
|
||||
"basename": "Drawing 2026-04-25 21.16.49.excalidraw",
|
||||
"path": "Excalidraw/Drawing 2026-04-25 21.16.49.excalidraw.md"
|
||||
},
|
||||
{
|
||||
"basename": "DeepSeek-V4全面解析",
|
||||
"path": "博客/DeepSeek-V4全面解析.md"
|
||||
},
|
||||
{
|
||||
"basename": "深入解析 Claude Code:Vibe Coding 时代的 AI 编程利器",
|
||||
"path": "博客/深入解析 Claude Code:Vibe Coding 时代的 AI 编程利器.md"
|
||||
},
|
||||
{
|
||||
"basename": "视觉语言模型技术综述",
|
||||
"path": "博客/视觉语言模型技术综述.md"
|
||||
},
|
||||
{
|
||||
"basename": "大数据技术栈",
|
||||
"path": "博客/大数据技术栈.md"
|
||||
},
|
||||
{
|
||||
"basename": "小组会议",
|
||||
"path": "小组会议/26.04.04/小组会议.md"
|
||||
},
|
||||
{
|
||||
"basename": "Pasted image 20260321185646",
|
||||
"path": "小组会议/26.03.21/Pasted image 20260321185646.png"
|
||||
},
|
||||
{
|
||||
"basename": "小组会议",
|
||||
"path": "小组会议/26.03.21/小组会议.md"
|
||||
},
|
||||
{
|
||||
"basename": "小组会议",
|
||||
"path": "小组会议/26.02.28/小组会议.md"
|
||||
},
|
||||
{
|
||||
"basename": "王宇晗",
|
||||
"path": "小组会议/25.10.26/小组成员基本信息/小组成员信息/王宇晗.md"
|
||||
},
|
||||
{
|
||||
"basename": "彭依萍",
|
||||
"path": "小组会议/25.10.26/小组成员基本信息/小组成员信息/彭依萍.md"
|
||||
},
|
||||
{
|
||||
"basename": "图灵院大项目要求 ",
|
||||
"path": "其他/大项目/图灵院大项目要求 .pdf"
|
||||
},
|
||||
{
|
||||
"basename": "数据结构",
|
||||
"path": "其他/大项目/数据结构.pdf"
|
||||
},
|
||||
{
|
||||
"basename": "赵帅尧",
|
||||
"path": "小组会议/25.10.26/小组成员基本信息/小组成员信息/赵帅尧.md"
|
||||
},
|
||||
{
|
||||
"basename": "职位安排",
|
||||
"path": "小组会议/25.10.26/小组成员基本信息/职位安排.md"
|
||||
},
|
||||
{
|
||||
"basename": "李俊杰",
|
||||
"path": "小组会议/25.10.26/小组成员基本信息/小组成员信息/李俊杰.md"
|
||||
},
|
||||
{
|
||||
"basename": "小组会议",
|
||||
"path": "小组会议/26.02.06/小组会议.md"
|
||||
},
|
||||
{
|
||||
"basename": "小组会议",
|
||||
"path": "小组会议/26.02.05/小组会议.md"
|
||||
},
|
||||
{
|
||||
"basename": "Gitee团队协作开发完整实操流程",
|
||||
"path": "小组会议/26.01.28/Gitee团队协作开发完整实操流程.md"
|
||||
},
|
||||
{
|
||||
"basename": "260123组长会议-二次项目启动",
|
||||
"path": "小组会议/26.01.24/260123组长会议-二次项目启动.md"
|
||||
},
|
||||
{
|
||||
"basename": "260126组长会议-项目管控要求",
|
||||
"path": "小组会议/26.01.27/260126组长会议-项目管控要求.pdf"
|
||||
},
|
||||
{
|
||||
"basename": "260126组长会议-项目管控要求",
|
||||
"path": "小组会议/26.01.27/260126组长会议-项目管控要求.mp4"
|
||||
},
|
||||
{
|
||||
"basename": "小组会议-项目资料整理及后续安排",
|
||||
"path": "小组会议/25.11.29/小组会议-项目资料整理及后续安排.md"
|
||||
}
|
||||
],
|
||||
"omittedPaths": [],
|
||||
"omittedTags": [],
|
||||
"updateOn": "file-open",
|
||||
"omitBookmarks": false
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"recentFiles": [
|
||||
{
|
||||
"basename": "赵帅尧",
|
||||
"path": "小组会议/25.10.26/小组成员基本信息/小组成员信息/赵帅尧.md"
|
||||
},
|
||||
{
|
||||
"basename": "小组会议",
|
||||
"path": "小组会议/26.02.28/小组会议.md"
|
||||
},
|
||||
{
|
||||
"basename": "职位安排",
|
||||
"path": "小组会议/25.10.26/小组成员基本信息/职位安排.md"
|
||||
},
|
||||
{
|
||||
"basename": "李俊杰",
|
||||
"path": "小组会议/25.10.26/小组成员基本信息/小组成员信息/李俊杰.md"
|
||||
},
|
||||
{
|
||||
"basename": "小组会议",
|
||||
"path": "小组会议/26.02.06/小组会议.md"
|
||||
},
|
||||
{
|
||||
"basename": "小组会议",
|
||||
"path": "小组会议/26.02.05/小组会议.md"
|
||||
},
|
||||
{
|
||||
"basename": "Gitee团队协作开发完整实操流程",
|
||||
"path": "小组会议/26.01.28/Gitee团队协作开发完整实操流程.md"
|
||||
},
|
||||
{
|
||||
"basename": "260123组长会议-二次项目启动",
|
||||
"path": "小组会议/26.01.24/260123组长会议-二次项目启动.md"
|
||||
},
|
||||
{
|
||||
"basename": "260126组长会议-项目管控要求",
|
||||
"path": "小组会议/26.01.27/260126组长会议-项目管控要求.pdf"
|
||||
},
|
||||
{
|
||||
"basename": "260126组长会议-项目管控要求",
|
||||
"path": "小组会议/26.01.27/260126组长会议-项目管控要求.mp4"
|
||||
},
|
||||
{
|
||||
"basename": "小组会议-项目资料整理及后续安排",
|
||||
"path": "小组会议/25.11.29/小组会议-项目资料整理及后续安排.md"
|
||||
}
|
||||
],
|
||||
"omittedPaths": [],
|
||||
"omittedTags": [],
|
||||
"updateOn": "file-open",
|
||||
"omitBookmarks": false
|
||||
}
|
||||
+53
File diff suppressed because one or more lines are too long
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"id": "recent-files-obsidian",
|
||||
"name": "Recent Files",
|
||||
"version": "1.7.4",
|
||||
"minAppVersion": "0.16.3",
|
||||
"description": "List files by most recently opened",
|
||||
"author": "Tony Grosinger",
|
||||
"authorUrl": "https://grosinger.net",
|
||||
"isDesktopOnly": false,
|
||||
"fundingUrl": {
|
||||
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
|
||||
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
|
||||
"Paypal": "https://paypal.me/tgrosinger"
|
||||
},
|
||||
"donation": "https://buymeacoffee.com/tgrosinger"
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
.recent-files-file {
|
||||
.tree-item-spacer {
|
||||
flex-grow: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.recent-files-title {
|
||||
justify-content: flex-start;
|
||||
align-items: unset;
|
||||
}
|
||||
|
||||
.recent-files-file-delete {
|
||||
justify-content: right;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.recent-files-title:hover .recent-files-file-delete {
|
||||
display: flex;
|
||||
cursor: var(--cursor);
|
||||
}
|
||||
|
||||
.recent-files-file-delete:hover {
|
||||
color: var(--nav-item-color-hover);
|
||||
}
|
||||
|
||||
.recent-files-donation {
|
||||
width: 70%;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.recent-files-donate-button {
|
||||
margin: 10px;
|
||||
}
|
||||
Reference in New Issue
Block a user