@@ -7,16 +7,16 @@ import { getConfigMapFromConfigPage } from '@/lib/notion/getNotionConfig'
7
7
import getPageProperties , {
8
8
adjustPageProperties
9
9
} from '@/lib/notion/getPageProperties'
10
- import { fetchInBatches , getPostBlocks } from '@/lib/notion/getPostBlocks'
10
+ import { fetchInBatches , getPage } from '@/lib/notion/getPostBlocks'
11
11
import { compressImage , mapImgUrl } from '@/lib/notion/mapImage'
12
12
import { deepClone } from '@/lib/utils'
13
13
import { idToUuid } from 'notion-utils'
14
14
import { siteConfig } from '../config'
15
- import { extractLangId , extractLangPrefix } from '../utils/pageId'
15
+ import { extractLangId , extractLangPrefix , getShortId } from '../utils/pageId'
16
16
17
17
export { getAllTags } from '../notion/getAllTags'
18
18
export { getPost } from '../notion/getNotionPost'
19
- export { getPostBlocks } from '../notion/getPostBlocks'
19
+ export { getPage as getPostBlocks } from '../notion/getPostBlocks'
20
20
21
21
/**
22
22
* 获取博客数据; 基于Notion实现
@@ -77,7 +77,16 @@ export async function getNotionPageData({ pageId, from }) {
77
77
}
78
78
79
79
// 返回给前端的数据做处理
80
- const db = deepClone ( data )
80
+ return compressData ( deepClone ( data ) )
81
+ }
82
+
83
+ /**
84
+ * 减少返回给前端的数据
85
+ * 并脱敏
86
+ * @param {* } db
87
+ */
88
+ function compressData ( db ) {
89
+ // 清理多余数据
81
90
delete db . block
82
91
delete db . schema
83
92
delete db . rawMetadata
@@ -91,42 +100,88 @@ export async function getNotionPageData({ pageId, from }) {
91
100
// 清理多余的块
92
101
if ( db ?. notice ) {
93
102
db . notice = cleanBlock ( db ?. notice )
103
+ delete db . notice ?. id
94
104
}
95
- if ( db ?. post ) {
96
- db . post = cleanBlock ( db ?. post )
97
- }
105
+
106
+ db . tagOptions = cleanIds ( db ?. tagOptions )
107
+ db . categoryOptions = cleanIds ( db ?. categoryOptions )
108
+ db . customMenu = cleanIds ( db ?. customMenu )
109
+
110
+ db . latestPosts = shortenIds ( db ?. latestPosts )
111
+ db . allNavPages = shortenIds ( db ?. allNavPages )
112
+ // db.allPages = cleanBlocks(db?.allPages)
113
+
98
114
return db
99
115
}
100
116
101
117
/**
102
- * 清理block数据
118
+ * 清理一组数据的id
119
+ * @param {* } items
120
+ * @returns
103
121
*/
104
- function cleanBlock ( post ) {
105
- const pageBlock = post ?. blockMap ?. block
106
- for ( const i in pageBlock ) {
107
- pageBlock [ i ] = cleanBlock ( pageBlock [ i ] )
108
- delete pageBlock [ i ] ?. role
109
- delete pageBlock [ i ] ?. value ?. version
110
- delete pageBlock [ i ] ?. value ?. created_by_table
111
- delete pageBlock [ i ] ?. value ?. created_by_id
112
- delete pageBlock [ i ] ?. value ?. last_edited_by_table
113
- delete pageBlock [ i ] ?. value ?. last_edited_by_id
114
- delete pageBlock [ i ] ?. value ?. space_id
115
- delete pageBlock [ i ] ?. value ?. version
116
- delete pageBlock [ i ] ?. value ?. format ?. copied_from_pointer
117
- delete pageBlock [ i ] ?. value ?. format ?. block_locked_by
118
- delete pageBlock [ i ] ?. value ?. parent_table
119
- delete pageBlock [ i ] ?. value ?. copied_from_pointer
120
- delete pageBlock [ i ] ?. value ?. copied_from
121
- delete pageBlock [ i ] ?. value ?. created_by_table
122
- delete pageBlock [ i ] ?. value ?. created_by_id
123
- delete pageBlock [ i ] ?. value ?. last_edited_by_table
124
- delete pageBlock [ i ] ?. value ?. last_edited_by_id
125
- delete pageBlock [ i ] ?. value ?. permissions
126
- delete pageBlock [ i ] ?. value ?. alive
122
+ function shortenIds ( items ) {
123
+ if ( items && Array . isArray ( items ) ) {
124
+ return deepClone (
125
+ items . map ( item => {
126
+ item . short_id = getShortId ( item . id )
127
+ delete item . id
128
+ return item
129
+ } )
130
+ )
127
131
}
132
+ return items
133
+ }
128
134
135
+ /**
136
+ * 清理一组数据的id
137
+ * @param {* } items
138
+ * @returns
139
+ */
140
+ function cleanIds ( items ) {
141
+ if ( items && Array . isArray ( items ) ) {
142
+ return deepClone (
143
+ items . map ( item => {
144
+ delete item . id
145
+ return item
146
+ } )
147
+ )
148
+ }
149
+ return items
150
+ }
151
+
152
+ /**
153
+ * 清理block数据
154
+ */
155
+ function cleanBlock ( item ) {
156
+ const post = deepClone ( item )
157
+ const pageBlock = post ?. blockMap ?. block
158
+ // delete post?.id
129
159
// delete post?.blockMap?.collection
160
+
161
+ if ( pageBlock ) {
162
+ for ( const i in pageBlock ) {
163
+ pageBlock [ i ] = cleanBlock ( pageBlock [ i ] )
164
+ delete pageBlock [ i ] ?. role
165
+ delete pageBlock [ i ] ?. value ?. version
166
+ delete pageBlock [ i ] ?. value ?. created_by_table
167
+ delete pageBlock [ i ] ?. value ?. created_by_id
168
+ delete pageBlock [ i ] ?. value ?. last_edited_by_table
169
+ delete pageBlock [ i ] ?. value ?. last_edited_by_id
170
+ delete pageBlock [ i ] ?. value ?. space_id
171
+ delete pageBlock [ i ] ?. value ?. version
172
+ delete pageBlock [ i ] ?. value ?. format ?. copied_from_pointer
173
+ delete pageBlock [ i ] ?. value ?. format ?. block_locked_by
174
+ delete pageBlock [ i ] ?. value ?. parent_table
175
+ delete pageBlock [ i ] ?. value ?. copied_from_pointer
176
+ delete pageBlock [ i ] ?. value ?. copied_from
177
+ delete pageBlock [ i ] ?. value ?. created_by_table
178
+ delete pageBlock [ i ] ?. value ?. created_by_id
179
+ delete pageBlock [ i ] ?. value ?. last_edited_by_table
180
+ delete pageBlock [ i ] ?. value ?. last_edited_by_id
181
+ delete pageBlock [ i ] ?. value ?. permissions
182
+ delete pageBlock [ i ] ?. value ?. alive
183
+ }
184
+ }
130
185
return post
131
186
}
132
187
@@ -320,7 +375,7 @@ async function getNotice(post) {
320
375
return null
321
376
}
322
377
323
- post . blockMap = await getPostBlocks ( post . id , 'data-notice' )
378
+ post . blockMap = await getPage ( post . id , 'data-notice' )
324
379
return post
325
380
}
326
381
@@ -372,7 +427,7 @@ const EmptyData = pageId => {
372
427
*/
373
428
async function getDataBaseInfoByNotionAPI ( { pageId, from } ) {
374
429
console . log ( '[Fetching Data]' , pageId , from )
375
- const pageRecordMap = await getPostBlocks ( pageId , from )
430
+ const pageRecordMap = await getPage ( pageId , from )
376
431
if ( ! pageRecordMap ) {
377
432
console . error ( 'can`t get Notion Data ; Which id is: ' , pageId )
378
433
return { }
0 commit comments