@@ -5,35 +5,29 @@ var page_1 = require('./page');
55var actions_1 = require ( './actions' ) ;
66var cleanup_1 = require ( './cleanup' ) ;
77var import_1 = require ( './import' ) ;
8- function bracketTracker ( line ) {
9- var l = ( line . match ( / \( / g) || [ ] ) . length ;
10- var r = ( line . match ( / \) / g) || [ ] ) . length ;
11- return l - r ;
12- }
138function task ( result , lines , index ) {
149 result . chapters [ index . chapter ] . pages [ index . page ] . tasks . push ( {
1510 description : cleanup_1 . trimLeadingSpaces ( Match . task ( lines [ 0 ] ) )
1611 } ) ;
1712 index . task += 1 ;
18- var inExpCodeBlock = false ;
13+ var inCodeBlock = false ;
1914 var currentAction = null ;
2015 var bracketCount = 0 ;
2116 var i = 0 ;
2217 while ( i < lines . length - 1 ) {
2318 i += 1 ;
2419 var line = lines [ i ] ;
25- var importFile = Match . isImport ( line ) ;
26- if ( ! ! importFile ) {
27- lines = import_1 . loadImport ( lines , importFile ) ;
28- }
29- else {
30- if ( ! ! currentAction ) {
20+ switch ( true ) {
21+ case ! ! Match . isImport ( line ) :
22+ lines = import_1 . loadImport ( lines , Match . isImport ( line ) ) ;
23+ continue ;
24+ case ! ! currentAction :
3125 if ( line . length === 0 ) {
3226 currentAction += '\n' ;
3327 }
34- else if ( ( bracketTracker ( line ) + bracketCount ) !== 0 ) {
28+ else if ( ( cleanup_1 . bracketTracker ( line ) + bracketCount ) !== 0 ) {
3529 currentAction += line + '\n' ;
36- bracketCount += bracketTracker ( line ) ;
30+ bracketCount += cleanup_1 . bracketTracker ( line ) ;
3731 }
3832 else {
3933 currentAction += line ;
@@ -42,46 +36,38 @@ function task(result, lines, index) {
4236 bracketCount = 0 ;
4337 }
4438 continue ;
45- }
46- var isAction = Match . isAction ( line ) ;
47- if ( ! isAction && ! ! Match . codeBlock ( line ) ) {
39+ case ! Match . isAction ( line ) && ! ! Match . codeBlock ( line ) :
4840 if ( line . length > 3 ) {
49- result = addToDescription ( i , result , line , index ) ;
50- continue ;
51- }
52- inExpCodeBlock = ! inExpCodeBlock ;
53- }
54- if ( ! inExpCodeBlock ) {
55- if ( ! ! isAction ) {
56- currentAction = line ;
57- bracketCount = bracketTracker ( line ) ;
58- if ( bracketCount === 0 ) {
59- result = actions_1 . addToTasks ( result , currentAction , index ) ;
60- currentAction = null ;
41+ if ( i > 0 ) {
42+ result . chapters [ index . chapter ] . pages [ index . page ] . tasks [ index . task ] . description += '\n' ;
6143 }
44+ result . chapters [ index . chapter ] . pages [ index . page ] . tasks [ index . task ] . description += line ;
6245 }
63- else if ( ! ! Match . task ( line ) ) {
64- return task ( result , lines . slice ( i ) , index ) ;
65- }
66- else if ( ! ! Match . page ( line ) ) {
67- return page_1 . page ( result , lines . slice ( i ) , index ) ;
46+ else {
47+ inCodeBlock = ! inCodeBlock ;
6848 }
69- else if ( ! ! Match . chapter ( line ) ) {
70- return chapter_1 . chapter ( result , lines . slice ( i ) , index ) ;
49+ continue ;
50+ case ! ! Match . isAction ( line ) :
51+ currentAction = line ;
52+ bracketCount = cleanup_1 . bracketTracker ( line ) ;
53+ if ( bracketCount === 0 ) {
54+ result = actions_1 . addToTasks ( result , currentAction , index ) ;
55+ currentAction = null ;
7156 }
72- else {
73- result = addToDescription ( i , result , line , index ) ;
57+ continue ;
58+ case ! ! Match . task ( line ) :
59+ return task ( result , lines . slice ( i ) , index ) ;
60+ case ! ! Match . page ( line ) :
61+ return page_1 . page ( result , lines . slice ( i ) , index ) ;
62+ case ! ! Match . chapter ( line ) :
63+ return chapter_1 . chapter ( result , lines . slice ( i ) , index ) ;
64+ default :
65+ if ( i > 0 ) {
66+ result . chapters [ index . chapter ] . pages [ index . page ] . tasks [ index . task ] . description += '\n' ;
7467 }
75- }
68+ result . chapters [ index . chapter ] . pages [ index . page ] . tasks [ index . task ] . description += line ;
7669 }
7770 }
7871 return result ;
7972}
8073exports . task = task ;
81- function addToDescription ( i , result , line , index ) {
82- if ( i > 0 ) {
83- result . chapters [ index . chapter ] . pages [ index . page ] . tasks [ index . task ] . description += '\n' ;
84- }
85- result . chapters [ index . chapter ] . pages [ index . page ] . tasks [ index . task ] . description += line ;
86- return result ;
87- }
0 commit comments