29 lines
710 B
TypeScript
29 lines
710 B
TypeScript
/**
|
|
* Types
|
|
*/
|
|
import { BlockHandler } from '../block-handler';
|
|
|
|
export class HeadingHandler extends BlockHandler {
|
|
constructor( clientId: string ) {
|
|
super( clientId, [] );
|
|
}
|
|
|
|
public onSuggestion( suggestion: string ): void {
|
|
const block = this.getBlock();
|
|
|
|
// Adjust suggestion if it does not start with a hash.
|
|
if ( ! suggestion.startsWith( '#' ) ) {
|
|
suggestion = `${ '#'.repeat( ( block?.attributes?.level as number ) || 1 ) } ${ suggestion }`;
|
|
}
|
|
|
|
// Ignore an empty suggestion, that is, a suggestion that only contains hashes and spaces.
|
|
if ( suggestion.match( /^#*\s*$/ ) ) {
|
|
return;
|
|
}
|
|
|
|
const HTML = this.renderContent( suggestion );
|
|
|
|
this.replaceBlockContent( HTML );
|
|
}
|
|
}
|