From 3f0a9f443357c6ff01d801c90fac87acd240e62a Mon Sep 17 00:00:00 2001 From: pengx17 Date: Fri, 7 Feb 2025 04:04:27 +0000 Subject: [PATCH] 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 --- .../docs-search/entities/docs-indexer.ts | 2 +- .../modules/docs-search/worker/in-worker.ts | 26 ++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/frontend/core/src/modules/docs-search/entities/docs-indexer.ts b/packages/frontend/core/src/modules/docs-search/entities/docs-indexer.ts index d5ea5e727..0ffc4014b 100644 --- a/packages/frontend/core/src/modules/docs-search/entities/docs-indexer.ts +++ b/packages/frontend/core/src/modules/docs-search/entities/docs-indexer.ts @@ -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 = new IndexedDBJobQueue( diff --git a/packages/frontend/core/src/modules/docs-search/worker/in-worker.ts b/packages/frontend/core/src/modules/docs-search/worker/in-worker.ts index 3b5c710cd..57b137b34 100644 --- a/packages/frontend/core/src/modules/docs-search/worker/in-worker.ts +++ b/packages/frontend/core/src/modules/docs-search/worker/in-worker.ts @@ -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 => { + 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, });