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
@@ -32,7 +32,7 @@ export class DocsIndexer extends Entity {
/** /**
* increase this number to re-index all docs * increase this number to re-index all docs
*/ */
static INDEXER_VERSION = 17; static INDEXER_VERSION = 18;
private readonly jobQueue: JobQueue<IndexerJobPayload> = private readonly jobQueue: JobQueue<IndexerJobPayload> =
new IndexedDBJobQueue<IndexerJobPayload>( new IndexedDBJobQueue<IndexerJobPayload>(
@@ -4,12 +4,14 @@ import type {
BookmarkBlockModel, BookmarkBlockModel,
EmbedBlockModel, EmbedBlockModel,
ImageBlockModel, ImageBlockModel,
TableBlockModel,
} from '@blocksuite/affine/blocks'; } from '@blocksuite/affine/blocks';
import { import {
defaultBlockMarkdownAdapterMatchers, defaultBlockMarkdownAdapterMatchers,
InlineDeltaToMarkdownAdapterExtensions, InlineDeltaToMarkdownAdapterExtensions,
MarkdownAdapter, MarkdownAdapter,
MarkdownInlineToDeltaAdapterExtensions, MarkdownInlineToDeltaAdapterExtensions,
TableModelFlavour,
} from '@blocksuite/affine/blocks'; } from '@blocksuite/affine/blocks';
import { Container } from '@blocksuite/affine/global/di'; import { Container } from '@blocksuite/affine/global/di';
import { import {
@@ -372,6 +374,23 @@ function generateMarkdownPreviewBuilder(
return `[${draftModel.name}](${draftModel.sourceId})\n`; 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) => { const generateMarkdownPreview = async (block: BlockDocumentInfo) => {
if (markdownPreviewCache.has(block)) { if (markdownPreviewCache.has(block)) {
return markdownPreviewCache.get(block); return markdownPreviewCache.get(block);
@@ -415,6 +434,8 @@ function generateMarkdownPreviewBuilder(
markdown = generateLatexMarkdownPreview(block); markdown = generateLatexMarkdownPreview(block);
} else if (bookmarkFlavours.has(flavour)) { } else if (bookmarkFlavours.has(flavour)) {
markdown = generateBookmarkMarkdownPreview(block); markdown = generateBookmarkMarkdownPreview(block);
} else if (flavour === TableModelFlavour) {
markdown = generateTableMarkdownPreview(block);
} else { } else {
console.warn(`unknown flavour: ${flavour}`); console.warn(`unknown flavour: ${flavour}`);
} }
@@ -801,7 +822,10 @@ async function crawlingDocData({
...commonBlockProps, ...commonBlockProps,
content: block.get('prop:latex')?.toString() ?? '', content: block.get('prop:latex')?.toString() ?? '',
}); });
} else if (bookmarkFlavours.has(flavour)) { } else if (
bookmarkFlavours.has(flavour) ||
flavour === TableModelFlavour
) {
blockDocuments.push({ blockDocuments.push({
...commonBlockProps, ...commonBlockProps,
}); });