1
- /* eslint-disable unicorn/consistent-function-scoping */
2
- import tags from "../tags.js" ;
3
- import { getAttribute } from "../utils.js" ;
1
+ import tags from '../tags.js' ;
2
+ import { getAttribute } from '../utils.js' ;
4
3
5
- import { concatTwoBlockTags } from " ../utils/concatBlockTags.js" ;
6
- import { concatTwoInlineTags } from " ../utils/concatInlineTags.js" ;
7
- import { inlineToBlockTag } from " ../utils/inlineToBlockTag.js" ;
4
+ import { concatTwoBlockTags } from ' ../utils/concatBlockTags.js' ;
5
+ import { concatTwoInlineTags } from ' ../utils/concatInlineTags.js' ;
6
+ import { inlineToBlockTag } from ' ../utils/inlineToBlockTag.js' ;
8
7
9
- import wrapLineWidth from " ../wrapLineWidth.js" ;
8
+ import wrapLineWidth from ' ../wrapLineWidth.js' ;
10
9
10
+ /**
11
+ * @param wrapper
12
+ * @param localContext
13
+ */
11
14
export function blockTag ( wrapper , localContext ) {
12
15
return ( tag , context ) => {
13
- const wrapFn = wrapper || ( ( argument ) => argument ) ;
16
+ const wrapFunction = wrapper || ( ( argument ) => argument ) ;
14
17
15
18
if ( ! tag || ! tag . childNodes ) {
16
19
return null ;
17
20
}
18
21
19
- let liItemNumber = parseInt ( getAttribute ( tag , " start" , "1" ) , 10 ) ;
22
+ let liItemNumber = Number . parseInt ( getAttribute ( tag , ' start' , '1' ) , 10 ) ;
20
23
const value = tag . childNodes . reduce (
21
24
( accumulator , node ) => {
22
- if ( ! tags [ node . nodeName ] ) {
23
- return accumulator ;
24
- }
25
+ const tagFunction = tags [ node . rawTagName || '#text' ] || tags . span ;
25
26
26
- const nodeTag = tags [ node . nodeName ] ( node , { ...context , liItemNumber } ) ;
27
+ const nodeTag = tagFunction ( node , { ...context , liItemNumber } ) ;
27
28
28
- if ( nodeTag == null ) {
29
+ if ( nodeTag == undefined ) {
29
30
return accumulator ;
30
31
}
31
32
32
- if ( nodeTag . nodeName === "li" ) {
33
+ if ( nodeTag . rawTagName === 'li' ) {
33
34
liItemNumber += 1 ;
34
35
}
35
36
36
- if ( nodeTag . type === " inline" ) {
37
+ if ( nodeTag . type === ' inline' ) {
37
38
return {
38
39
block : accumulator . block ,
39
40
inline : concatTwoInlineTags ( accumulator . inline , nodeTag ) ,
40
41
} ;
41
42
}
42
43
43
- if ( accumulator . inline && accumulator . inline . value != null ) {
44
- if ( ! context . pre ) {
45
- accumulator . inline . value = wrapLineWidth (
46
- accumulator . inline . value ,
47
- context
48
- ) ;
49
- }
44
+ if ( accumulator . inline && accumulator . inline . value != undefined && ! context . pre ) {
45
+ accumulator . inline . value = wrapLineWidth (
46
+ accumulator . inline . value ,
47
+ context ,
48
+ ) ;
50
49
}
51
50
52
51
accumulator . block = concatTwoBlockTags (
53
52
accumulator . block ,
54
- inlineToBlockTag ( accumulator . inline )
53
+ inlineToBlockTag ( accumulator . inline ) ,
55
54
) ;
56
55
57
56
accumulator . block = concatTwoBlockTags ( accumulator . block , nodeTag ) ;
@@ -64,18 +63,16 @@ export function blockTag(wrapper, localContext) {
64
63
{
65
64
block : null ,
66
65
inline : null ,
67
- }
66
+ } ,
68
67
) ;
69
68
70
- if ( value . inline != null && value . inline . value != null ) {
71
- if ( ! context . pre ) {
72
- value . inline . value = wrapLineWidth ( value . inline . value , context ) ;
73
- }
69
+ if ( value . inline != undefined && value . inline . value != undefined && ! context . pre ) {
70
+ value . inline . value = wrapLineWidth ( value . inline . value , context ) ;
74
71
}
75
72
76
73
value . block = concatTwoBlockTags (
77
74
value . block ,
78
- inlineToBlockTag ( value . inline )
75
+ inlineToBlockTag ( value . inline ) ,
79
76
) ;
80
77
81
78
if ( ! value . block || ! value . block . value ) {
@@ -95,12 +92,12 @@ export function blockTag(wrapper, localContext) {
95
92
value . block . marginTop && value . block . marginTop > topBlock
96
93
? value . block . marginTop
97
94
: topBlock ,
98
- value : wrapFn ( value . block . value , tag ) ,
95
+ value : wrapFunction ( value . block . value , tag ) ,
99
96
marginBottom :
100
97
value . block . marginBottom && value . block . marginBottom > bottomBlock
101
98
? value . block . marginBottom
102
99
: bottomBlock ,
103
- type : " block" ,
100
+ type : ' block' ,
104
101
nodeName : tag . nodeName ,
105
102
} ;
106
103
} ;
0 commit comments