Skip to content

Commit 2c05ef0

Browse files
authored
Merge pull request tangly1024#2592 from RayGicEFL/main
🪲 fix: unable to load synced blocks
2 parents 51ec8e6 + 677c2e0 commit 2c05ef0

File tree

5 files changed

+61
-39
lines changed

5 files changed

+61
-39
lines changed

lib/lang/en-US.js

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export default {
2222
COMMON: {
2323
THEME: 'Theme',
2424
ARTICLE_LIST: 'Article List',
25+
RECOMMEND_POSTS: 'Recommend Posts',
2526
MORE: 'More',
2627
NO_MORE: 'No More',
2728
LATEST_POSTS: 'Latest posts',

lib/lang/zh-CN.js

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export default {
2222
COMMON: {
2323
THEME: 'Theme',
2424
ARTICLE_LIST: '文章列表',
25+
RECOMMEND_POSTS: '推荐文章',
2526
MORE: '更多',
2627
NO_MORE: '没有更多了',
2728
LATEST_POSTS: '最新发布',

lib/notion/getPostBlocks.js

+57-37
Original file line numberDiff line numberDiff line change
@@ -81,49 +81,69 @@ export async function getPageWithRetry(id, from, retryAttempts = 3) {
8181
function filterPostBlocks(id, blockMap, slice) {
8282
const clonePageBlock = deepClone(blockMap)
8383
let count = 0
84+
const blocksToProcess = Object.keys(clonePageBlock?.block || {})
8485

8586
// 循环遍历文档的每个block
86-
for (const i in clonePageBlock?.block) {
87-
const b = clonePageBlock?.block[i]
88-
if (slice && slice > 0 && count > slice) {
89-
delete clonePageBlock?.block[i]
90-
continue
87+
for (let i = 0; i < blocksToProcess.length; i++) {
88+
const blockId = blocksToProcess[i]
89+
const b = clonePageBlock?.block[blockId]
90+
91+
if (slice && slice > 0 && count > slice) {
92+
delete clonePageBlock?.block[blockId]
93+
continue
94+
}
95+
96+
// 当BlockId等于PageId时移除
97+
if (b?.value?.id === id) {
98+
// 此block含有敏感信息
99+
delete b?.value?.properties
100+
continue
101+
}
102+
103+
count++
104+
105+
if (b?.value?.type === 'sync_block' && b?.value?.children) {
106+
const childBlocks = b.value.children
107+
// 移除同步块
108+
delete clonePageBlock.block[blockId]
109+
// 用子块替代同步块
110+
childBlocks.forEach((childBlock, index) => {
111+
const newBlockId = `${blockId}_child_${index}`
112+
clonePageBlock.block[newBlockId] = childBlock
113+
blocksToProcess.splice(i + index + 1, 0, newBlockId)
114+
})
115+
// 重新处理新加入的子块
116+
i--
117+
continue
118+
}
119+
120+
// 处理 c++、c#、汇编等语言名字映射
121+
if (b?.value?.type === 'code') {
122+
if (b?.value?.properties?.language?.[0][0] === 'C++') {
123+
b.value.properties.language[0][0] = 'cpp'
91124
}
92-
// 当BlockId等于PageId时移除
93-
if (b?.value?.id === id) {
94-
// 此block含有敏感信息
95-
delete b?.value?.properties
96-
continue
125+
if (b?.value?.properties?.language?.[0][0] === 'C#') {
126+
b.value.properties.language[0][0] = 'csharp'
97127
}
98-
99-
count++
100-
// 处理 c++、c#、汇编等语言名字映射
101-
if (b?.value?.type === 'code') {
102-
if (b?.value?.properties?.language?.[0][0] === 'C++') {
103-
b.value.properties.language[0][0] = 'cpp'
104-
}
105-
if (b?.value?.properties?.language?.[0][0] === 'C#') {
106-
b.value.properties.language[0][0] = 'csharp'
107-
}
108-
if (b?.value?.properties?.language?.[0][0] === 'Assembly') {
109-
b.value.properties.language[0][0] = 'asm6502'
110-
}
111-
}
112-
113-
// 如果是文件,或嵌入式PDF,需要重新加密签名
114-
if (
115-
(b?.value?.type === 'file' ||
116-
b?.value?.type === 'pdf' ||
117-
b?.value?.type === 'video' ||
118-
b?.value?.type === 'audio') &&
119-
b?.value?.properties?.source?.[0][0] &&
120-
b?.value?.properties?.source?.[0][0].indexOf('amazonaws.com') > 0
121-
) {
122-
const oldUrl = b?.value?.properties?.source?.[0][0]
123-
const newUrl = `https://notion.so/signed/${encodeURIComponent(oldUrl)}?table=block&id=${b?.value?.id}`
124-
b.value.properties.source[0][0] = newUrl
128+
if (b?.value?.properties?.language?.[0][0] === 'Assembly') {
129+
b.value.properties.language[0][0] = 'asm6502'
125130
}
126131
}
132+
133+
// 如果是文件,或嵌入式PDF,需要重新加密签名
134+
if (
135+
(b?.value?.type === 'file' ||
136+
b?.value?.type === 'pdf' ||
137+
b?.value?.type === 'video' ||
138+
b?.value?.type === 'audio') &&
139+
b?.value?.properties?.source?.[0][0] &&
140+
b?.value?.properties?.source?.[0][0].indexOf('amazonaws.com') > 0
141+
) {
142+
const oldUrl = b?.value?.properties?.source?.[0][0]
143+
const newUrl = `https://notion.so/signed/${encodeURIComponent(oldUrl)}?table=block&id=${b?.value?.id}`
144+
b.value.properties.source[0][0] = newUrl
145+
}
146+
}
127147

128148
// 去掉不用的字段
129149
if (id === BLOG.NOTION_PAGE_ID) {

themes/heo/components/BlogPostCard.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const BlogPostCard = ({ index, post, showSummary, siteInfo }) => {
3030
{/* 图片封面 */}
3131
{showPageCover && (
3232
<Link href={post?.href} passHref legacyBehavior>
33-
<div className='w-full md:w-5/12 2xl:w-full overflow-hidden'>
33+
<div className='w-full md:w-5/12 2xl:w-full overflow-hidden cursor-pointer select-none'>
3434
<LazyImage
3535
priority={index === 0}
3636
src={post?.pageCoverThumbnail}

themes/heo/components/Hero.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ function TodayCard({ cRef, siteInfo }) {
383383
}
384384
/>
385385
<div id='more' className='select-none'>
386-
{locale.COMMON.MORE}
386+
{locale.COMMON.RECOMMEND_POSTS}
387387
</div>
388388
</div>
389389
</div>

0 commit comments

Comments
 (0)