Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd33ce6e

Browse files
authored
Merge pull request#36 from coderoad/fix/summary-parse
Fix/summary parse
2 parents5222806 +6c5187c commitd33ce6e

File tree

2 files changed

+44
-8
lines changed

2 files changed

+44
-8
lines changed

‎src/utils/parse.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export function parseMdContent(md: string): TutorialFrame | never {
5353
// Identify each part of the content
5454
parts.forEach((section:string)=>{
5555
// match level
56-
constlevelRegex=/^(#{2}\s(?<levelId>L\d+)\s(?<levelTitle>.*)[\n\r]*(>\s*(?<levelSummary>.*))?[\n\r]+(?<levelContent>[^]*))/;
56+
constlevelRegex=/^(#{2}\s(?<levelId>L\d+)\s(?<levelTitle>.*)[\n\r]*(>\s(?<levelSummary>.*))?[\n\r]+(?<levelContent>[^]*))/;
5757
constlevelMatch:RegExpMatchArray|null=section.match(levelRegex);
5858
if(levelMatch&&levelMatch.groups){
5959
const{
@@ -67,12 +67,13 @@ export function parseMdContent(md: string): TutorialFrame | never {
6767
mdContent.levels[levelId]={
6868
id:levelId,
6969
title: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+
}),
7677
content:levelContent.trim(),
7778
};
7879
current={level:levelId,step:"0"};

‎tests/parse.test.ts

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,45 @@ But not including this line.
191191
title:"Put Level's title here",
192192
summary:"Some text.",
193193
content:"Some text.\n\nBut not including this line.",
194+
steps:[],
195+
},
196+
],
197+
};
198+
expect(result.levels[0]).toEqual(expected.levels[0]);
199+
});
200+
201+
it("should truncate a level with an empty summary",()=>{
202+
constmd=`# Title
203+
204+
Description.
205+
206+
## L1 Put Level's title here
207+
208+
>
209+
210+
Some text.
211+
212+
But not including this line.
213+
`;
214+
215+
constskeleton={levels:[{id:"L1"}]};
216+
constresult=parse({
217+
text:md,
218+
skeleton,
219+
commits:{},
220+
});
221+
constexpected={
222+
levels:[
223+
{
224+
id:"L1",
225+
title:"Put Level's title here",
226+
summary:"Some text.",
227+
content:"Some text.\n\nBut not including this line.",
228+
steps:[],
194229
},
195230
],
196231
};
197-
expect(result.levels[0].summary).toEqual("Some text.");
232+
expect(result.levels[0]).toEqual(expected.levels[0]);
198233
});
199234

200235
it("should match line breaks with double line breaks for proper spacing",()=>{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp