feat(core): index table block types (#9989)

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/b7eeb6fa-75b7-453a-9faa-5f6e9701089b.png)

fix BS-2520
This commit is contained in:
pengx17
2025-02-07 04:04:27 +00:00
parent 00b1f01f9b
commit 3f0a9f4433
2 changed files with 26 additions and 2 deletions

View File

@@ -32,7 +32,7 @@ export class DocsIndexer extends Entity {
/**
* increase this number to re-index all docs
*/
static INDEXER_VERSION = 17;
static INDEXER_VERSION = 18;
private readonly jobQueue: JobQueue<IndexerJobPayload> =
new IndexedDBJobQueue<IndexerJobPayload>(

View File

@@ -4,12 +4,14 @@ import type {
BookmarkBlockModel,
EmbedBlockModel,
ImageBlockModel,
TableBlockModel,
} from '@blocksuite/affine/blocks';
import {
defaultBlockMarkdownAdapterMatchers,
InlineDeltaToMarkdownAdapterExtensions,
MarkdownAdapter,
MarkdownInlineToDeltaAdapterExtensions,
TableModelFlavour,
} from '@blocksuite/affine/blocks';
import { Container } from '@blocksuite/affine/global/di';
import {
@@ -372,6 +374,23 @@ function generateMarkdownPreviewBuilder(
return `[${draftModel.name}](${draftModel.sourceId})\n`;
};
const generateTableMarkdownPreview = (block: BlockDocumentInfo) => {
const isTableModel = (
model: DraftModel | null
): model is DraftModel<TableBlockModel> => {
return model?.flavour === TableModelFlavour;
};
const draftModel = yblockToDraftModal(block.yblock);
if (!isTableModel(draftModel)) {
return null;
}
const url = getDocLink(block.docId, draftModel.id);
return `[table][](${url})\n`;
};
const generateMarkdownPreview = async (block: BlockDocumentInfo) => {
if (markdownPreviewCache.has(block)) {
return markdownPreviewCache.get(block);
@@ -415,6 +434,8 @@ function generateMarkdownPreviewBuilder(
markdown = generateLatexMarkdownPreview(block);
} else if (bookmarkFlavours.has(flavour)) {
markdown = generateBookmarkMarkdownPreview(block);
} else if (flavour === TableModelFlavour) {
markdown = generateTableMarkdownPreview(block);
} else {
console.warn(`unknown flavour: ${flavour}`);
}
@@ -801,7 +822,10 @@ async function crawlingDocData({
...commonBlockProps,
content: block.get('prop:latex')?.toString() ?? '',
});
} else if (bookmarkFlavours.has(flavour)) {
} else if (
bookmarkFlavours.has(flavour) ||
flavour === TableModelFlavour
) {
blockDocuments.push({
...commonBlockProps,
});