Added anchor hash to break blocks
This commit is contained in:
parent
14622450cf
commit
8557df4753
|
@ -2,7 +2,9 @@ import {
|
|||
BreakBlockType,
|
||||
Collections,
|
||||
PageType,
|
||||
RichTextBreakBlock,
|
||||
RichTextContent,
|
||||
RichTextSectionBlock,
|
||||
isBlockNodeBreakBlock,
|
||||
isBlockNodeSectionBlock,
|
||||
isNodeBlockNode,
|
||||
|
@ -57,22 +59,33 @@ const handleContent = (
|
|||
{ root: { children, ...others } }: RichTextContent,
|
||||
parentPrefix = ""
|
||||
): RichTextContent => {
|
||||
let sectionCount = 0;
|
||||
let index = 0;
|
||||
return {
|
||||
root: {
|
||||
...others,
|
||||
children: children.map((node) => {
|
||||
if (isNodeBlockNode(node) && isBlockNodeSectionBlock(node)) {
|
||||
sectionCount++;
|
||||
const anchorHash = `${parentPrefix}${sectionCount}.`;
|
||||
return {
|
||||
if (isNodeBlockNode(node)) {
|
||||
if (isBlockNodeSectionBlock(node)) {
|
||||
index++;
|
||||
const anchorHash = `${parentPrefix}${index}.`;
|
||||
const newNode: RichTextSectionBlock = {
|
||||
...node,
|
||||
fields: {
|
||||
...node.fields,
|
||||
anchorHash,
|
||||
content: handleContent(node.fields.content, anchorHash),
|
||||
},
|
||||
anchorHash,
|
||||
};
|
||||
return newNode;
|
||||
} else if (isBlockNodeBreakBlock(node)) {
|
||||
index++;
|
||||
const anchorHash = `${parentPrefix}${index}.`;
|
||||
const newNode: RichTextBreakBlock = {
|
||||
...node,
|
||||
anchorHash,
|
||||
};
|
||||
return newNode;
|
||||
}
|
||||
}
|
||||
return node;
|
||||
}),
|
||||
|
|
|
@ -198,7 +198,8 @@ export interface RichTextBlockNode extends RichTextNode {
|
|||
}
|
||||
|
||||
export interface RichTextSectionBlock extends RichTextBlockNode {
|
||||
fields: SectionBlock & { anchorHash: string };
|
||||
fields: SectionBlock;
|
||||
anchorHash: string;
|
||||
}
|
||||
|
||||
export interface RichTextTranscriptBlock extends RichTextBlockNode {
|
||||
|
@ -207,6 +208,7 @@ export interface RichTextTranscriptBlock extends RichTextBlockNode {
|
|||
|
||||
export interface RichTextBreakBlock extends RichTextBlockNode {
|
||||
fields: BreakBlock;
|
||||
anchorHash: string;
|
||||
}
|
||||
|
||||
export const isNodeParagraphNode = (node: RichTextNode): node is RichTextParagraphNode =>
|
||||
|
|
Loading…
Reference in New Issue