mirror of
https://github.com/jxpeng98/obsidian-to-NotionNext
synced 2026-07-30 00:48:36 +08:00
successful category and summary
This commit is contained in:
@@ -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<any> {
|
||||
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<any> {
|
||||
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)
|
||||
|
||||
10
main.ts
10
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"]);
|
||||
|
||||
Reference in New Issue
Block a user