mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-09-22 19:53:48 +08:00
feat(core): index table block types (#9989)
 fix BS-2520
This commit is contained in:
@@ -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,
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user