@@ -4,6 +4,7 @@ import {nodeTypeFactory} from '../../../../utils/schema';
44
55export const headingNodeName = 'heading' ;
66export const headingLevelAttr = 'level' ;
7+ export const headingLineNumberAttr = 'data-line' ;
78export const headingType = nodeTypeFactory ( headingNodeName ) ;
89
910const DEFAULT_PLACEHOLDER = ( node : Node ) => 'Heading ' + node . attrs [ headingLevelAttr ] ;
@@ -18,7 +19,7 @@ export type HeadingSpecsOptions = {
1819export const HeadingSpecs : ExtensionAuto < HeadingSpecsOptions > = ( builder , opts ) => {
1920 builder . addNode ( headingNodeName , ( ) => ( {
2021 spec : {
21- attrs : { [ headingLevelAttr ] : { default : 1 } } ,
22+ attrs : { [ headingLevelAttr ] : { default : 1 } , [ headingLineNumberAttr ] : { default : null } } ,
2223 content : '(text | inline)*' ,
2324 group : 'block' ,
2425 defining : true ,
@@ -31,7 +32,13 @@ export const HeadingSpecs: ExtensionAuto<HeadingSpecsOptions> = (builder, opts)
3132 { tag : 'h6' , attrs : { [ headingLevelAttr ] : 6 } } ,
3233 ] ,
3334 toDOM ( node ) {
34- return [ 'h' + node . attrs [ headingLevelAttr ] , 0 ] ;
35+ const lineNumber = node . attrs [ headingLineNumberAttr ] ;
36+
37+ return [
38+ 'h' + node . attrs [ headingLevelAttr ] ,
39+ lineNumber === null ? { } : { [ headingLineNumberAttr ] : lineNumber } ,
40+ 0 ,
41+ ] ;
3542 } ,
3643 placeholder : {
3744 content :
0 commit comments