@@ -53,7 +53,7 @@ export function parseMdContent(md: string): TutorialFrame | never {
5353// Identify each part of the content
5454parts . forEach ( ( section :string ) => {
5555// match level
56- const levelRegex = / ^ ( # { 2 } \s (?< levelId > L \d + ) \s (?< levelTitle > .* ) [ \n \r ] * ( > \s * (?< levelSummary > .* ) ) ? [ \n \r ] + (?< levelContent > [ ^ ] * ) ) / ;
56+ const levelRegex = / ^ ( # { 2 } \s (?< levelId > L \d + ) \s (?< levelTitle > .* ) [ \n \r ] * ( > \s (?< levelSummary > .* ) ) ? [ \n \r ] + (?< levelContent > [ ^ ] * ) ) / ;
5757const levelMatch :RegExpMatchArray | null = section . match ( levelRegex ) ;
5858if ( levelMatch && levelMatch . groups ) {
5959const {
@@ -67,12 +67,13 @@ export function parseMdContent(md: string): TutorialFrame | never {
6767mdContent . levels [ levelId ] = {
6868id :levelId ,
6969title :levelTitle . trim ( ) ,
70- summary :levelSummary
71- ?levelSummary . trim ( )
72- :truncate ( levelContent . split ( / [ \n \r ] + / ) [ 0 ] . trim ( ) , {
73- length :80 ,
74- omission :"..." ,
75- } ) ,
70+ summary :
71+ levelSummary && levelSummary . trim ( ) . length
72+ ?levelSummary . trim ( )
73+ :truncate ( levelContent . split ( / [ \n \r ] + / ) [ 0 ] . trim ( ) , {
74+ length :80 ,
75+ omission :"..." ,
76+ } ) ,
7677content :levelContent . trim ( ) ,
7778} ;
7879current = { level :levelId , step :"0" } ;