Files
AFFiNE-Mirror/blocksuite/docs/api/@blocksuite/store/classes/Text.md
2025-12-10 16:02:28 +08:00

5.2 KiB

BlockSuite API Documentation


BlockSuite API Documentation / @blocksuite/store / Text

Class: Text<TextAttributes>

Text is an abstraction of Y.Text. It provides useful methods to manipulate the text content.

Example

const text = new Text('Hello, world!');
text.insert(' blocksuite', 7);
text.delete(7, 1);
text.format(7, 1, { bold: true });
text.join(new Text(' blocksuite'));
text.split(7, 1);

Text delta is a format from Y.js.

Type Parameters

TextAttributes

TextAttributes extends BaseTextAttributes = BaseTextAttributes

Constructors

Constructor

new Text<TextAttributes>(input?): Text<TextAttributes>

Parameters

input?

The input can be a string, a Y.Text instance, or an array of DeltaInsert.

string | YText | DeltaInsert<TextAttributes>[]

Returns

Text<TextAttributes>

Accessors

deltas$

Get Signature

get deltas$(): Signal<DeltaOperation[]>

Get the text delta as a signal.

Returns

Signal<DeltaOperation[]>

Methods

applyDelta()

applyDelta(delta): void

Apply a delta to the text.

Parameters

delta

DeltaOperation[]

The delta to apply.

Returns

void

Example

const text = new Text('Hello, world!');
text.applyDelta([{insert: ' blocksuite', attributes: { bold: true }}]);

clear()

clear(): void

Clear the text content.

Returns

void


clone()

clone(): Text<{ bold?: true | null; code?: true | null; italic?: true | null; link?: string | null; strike?: true | null; underline?: true | null; }>

Clone the text to a new Text instance.

Returns

Text<{ bold?: true | null; code?: true | null; italic?: true | null; link?: string | null; strike?: true | null; underline?: true | null; }>

A new Text instance.


delete()

delete(index, length): void

Delete the text content.

Parameters

index

number

The index to delete.

length

number

The length to delete.

Returns

void


format()

format(index, length, format): void

Format the text content.

Parameters

index

number

The index to format.

length

number

The length to format.

format

Record<string, unknown>

The format to apply.

Returns

void

Example

const text = new Text('Hello, world!');
text.format(7, 1, { bold: true });

insert()

insert(content, index, attributes?): void

Insert content at the specified index.

Parameters

content

string

The content to insert.

index

number

The index to insert.

attributes?

Record<string, unknown>

Returns

void

Example

const text = new Text('Hello, world!');
text.insert(' blocksuite', 7);

join()

join(other): void

Join current text with another text.

Parameters

other

Text

The other text to join.

Returns

void

Example

const text = new Text('Hello, world!');
const other = new Text(' blocksuite');
text.join(other);

replace()

replace(index, length, content, attributes?): void

Replace the text content with a new content.

Parameters

index

number

The index to replace.

length

number

The length to replace.

content

string

The content to replace.

attributes?

Record<string, unknown>

The attributes to replace.

Returns

void

Example

const text = new Text('Hello, world!');
text.replace(7, 1, ' blocksuite');

sliceToDelta()

sliceToDelta(begin, end?): DeltaOperation[]

Slice the text to a delta.

Parameters

begin

number

The begin index.

end?

number

The end index.

Returns

DeltaOperation[]

The delta of the sliced text.


split()

split(index, length): Text

Split the text into another Text.

Parameters

index

number

The index to split.

length

number = 0

The length to split.

Returns

Text

The right part of the text.

Example

const text = new Text('Hello, world!');
text.split(7, 1);

NOTE: The string included in [index, index + length) will be deleted.

Here are three cases for point position(index + length):

[{insert: 'abc', ...}, {insert: 'def', ...}, {insert: 'ghi', ...}]
1. abc|de|fghi
   left: [{insert: 'abc', ...}]
   right: [{insert: 'f', ...}, {insert: 'ghi', ...}]
2. abc|def|ghi
   left: [{insert: 'abc', ...}]
   right: [{insert: 'ghi', ...}]
3. abc|defg|hi
   left: [{insert: 'abc', ...}]
   right: [{insert: 'hi', ...}]

toDelta()

toDelta(): DeltaOperation[]

Get the text delta.

Returns

DeltaOperation[]

The delta of the text.


toString()

toString(): string

Get the text content as a string. In most cases, you should not use this method. It will lose the delta attributes information.

Returns

string

The text content.