feat: 完成批量发布系统和详细文档
- 实现批量发布模态框,支持数据库式文章筛选 - 添加鼠标拖拽多选功能,支持Ctrl键修饰符 - 增加文章过滤器,支持标签、文件名、文件夹筛选 - 完善图库短码mppickall参数支持 - 优化EXIF图片方向处理 - 添加全面的中文代码注释 - 更新详细设计文档和架构图表 - 完善变更日志和README文档 版本: v1.3.0 (里程碑版本)
This commit is contained in:
@@ -24,6 +24,26 @@ import { App, Modal, Setting, TFile, Notice, ButtonComponent } from 'obsidian';
|
||||
import { BatchArticleFilter, BatchFilterConfig } from './batch-filter';
|
||||
import NoteToMpPlugin from './main';
|
||||
|
||||
/**
|
||||
* BatchPublishModal
|
||||
*
|
||||
* 说明(中文注释):
|
||||
* 该模块负责提供一个在 Obsidian 中的模态窗口,用于:
|
||||
* - 根据多个条件筛选笔记(标签、文件名、文件夹、frontmatter 等)
|
||||
* - 在筛选结果中支持单选/多选/框选(鼠标拖拽)操作
|
||||
* - 将选中的文章逐条发送到公众号(通过 NotePreview 的 renderMarkdown/postArticle 流程)
|
||||
*
|
||||
* 设计要点:
|
||||
* - 使用 `BatchArticleFilter` 复用筛选逻辑,返回已排序的 `TFile[]` 列表
|
||||
* - 用 `Set<TFile>` 保存选中状态,避免重复项并方便计数
|
||||
* - 鼠标拖拽选择支持两种模式:常规拖拽为“添加选择”,按 Ctrl/Cmd 拖拽为“取消选择”
|
||||
* - 发布流程为顺序异步执行,发送间隔有短延迟以降低请求频率
|
||||
*
|
||||
* 注意事项:
|
||||
* - 该文件以用户交互为主,敏感的网络/身份验证交互在 `note-preview` 模块内处理
|
||||
* - 对 DOM 的位置计算要考虑容器滚动偏移(scrollLeft/scrollTop),已在代码中处理
|
||||
*/
|
||||
|
||||
export class BatchPublishModal extends Modal {
|
||||
plugin: NoteToMpPlugin;
|
||||
filter: BatchArticleFilter;
|
||||
|
||||
Reference in New Issue
Block a user