diff --git a/Upload2Notion.ts b/Upload2Notion.ts index 809ed8e..d8ca8c7 100644 --- a/Upload2Notion.ts +++ b/Upload2Notion.ts @@ -28,13 +28,13 @@ export class Upload2Notion { // 因为需要解析notion的block进行对比,非常的麻烦, // 暂时就直接删除,新建一个page - async updatePage(notionID:string, title:string, allowTags:boolean, tags:string[], type:string, slug:string, stats:string, childArr:any) { + async updatePage(notionID:string, title:string, allowTags:boolean, tags:string[], type:string, slug:string, stats:string, category:string, summary:string, childArr:any) { await this.deletePage(notionID) - const res = await this.createPage(title, allowTags, tags, type, slug, stats, childArr) + const res = await this.createPage(title, allowTags, tags, type, slug, stats, category, summary, childArr) return res } - async createPage(title:string, allowTags:boolean, tags:string[], type:string, slug:string, stats:string, childArr: any) { + async createPage(title:string, allowTags:boolean, tags:string[], type:string, slug:string, stats:string, category:string, summary:string, childArr: any) { const bodyString:any = { parent: { database_id: this.app.settings.databaseID @@ -72,6 +72,20 @@ export class Upload2Notion { select: { name: stats || 'Draft' } + }, + category: { + select: { + name: category || 'Obsidian' + } + }, + summary: { + rich_text: [ + { + text: { + content: summary + } + } + ] } }, children: childArr, @@ -104,7 +118,7 @@ export class Upload2Notion { } } - async syncMarkdownToNotion(title:string, allowTags:boolean, tags:string[], type:string, slug:string, stats:string, markdown: string, nowFile: TFile, app:App, settings:any): Promise { + async syncMarkdownToNotion(title:string, allowTags:boolean, tags:string[], type:string, slug:string, stats:string, category:string, summary:string, markdown: string, nowFile: TFile, app:App, settings:any): Promise { let res:any const yamlObj:any = yamlFrontMatter.loadFront(markdown); const __content = yamlObj.__content @@ -113,9 +127,9 @@ export class Upload2Notion { const notionID = frontmasster ? frontmasster.notionID : null if(notionID){ - res = await this.updatePage(notionID, title, allowTags, tags, type, slug, stats, file2Block); + res = await this.updatePage(notionID, title, allowTags, tags, type, slug, stats, category, summary, file2Block); } else { - res = await this.createPage(title, allowTags, tags, type, slug, stats, file2Block); + res = await this.createPage(title, allowTags, tags, type, slug, stats, category, summary, file2Block); } if (res.status === 200) { await this.updateYamlInfo(markdown, nowFile, res, app, settings) diff --git a/main.ts b/main.ts index 721a7ab..e10bed8 100644 --- a/main.ts +++ b/main.ts @@ -80,13 +80,13 @@ export default class ObsidianSyncNotionPlugin extends Plugin { ); return; } - const { markDownData, nowFile, tags, type, slug, stats } =await this.getNowFileMarkdownContent(this.app); + const { markDownData, nowFile, tags, type, slug, stats, category, summary } =await this.getNowFileMarkdownContent(this.app); if (markDownData) { const { basename } = nowFile; const upload = new Upload2Notion(this); - const res = await upload.syncMarkdownToNotion(basename, allowTags, tags, type, slug, stats, markDownData, nowFile, this.app, this.settings) + const res = await upload.syncMarkdownToNotion(basename, allowTags, tags, type, slug, stats, category, summary, markDownData, nowFile, this.app, this.settings) if(res.status === 200){ new Notice(`${langConfig["sync-success"]}${basename}`) }else { @@ -102,6 +102,8 @@ export default class ObsidianSyncNotionPlugin extends Plugin { let type = '' let slug = '' let stats = '' + let category = '' + let summary = '' const FileCache = app.metadataCache.getFileCache(nowFile) try { @@ -110,6 +112,8 @@ export default class ObsidianSyncNotionPlugin extends Plugin { type = FileCache.frontmatter.type; slug = FileCache.frontmatter.slug; stats = FileCache.frontmatter.stats; + category = FileCache.frontmatter.category; + summary = FileCache.frontmatter.summary; } } catch (error) { new Notice(langConfig["set-tags-fail"]); @@ -123,6 +127,8 @@ export default class ObsidianSyncNotionPlugin extends Plugin { type, slug, stats, + category, + summary, }; } else { new Notice(langConfig["open-file"]);