blogposts: read body
This commit is contained in:
parent
8228bcdce3
commit
48df8ace6e
@ -20,10 +20,17 @@ func TestNewBlogPosts(t *testing.T) {
|
|||||||
const (
|
const (
|
||||||
firstBody = `Title: Post 1
|
firstBody = `Title: Post 1
|
||||||
Description: Description 1
|
Description: Description 1
|
||||||
Tags: tag1, tag2`
|
Tags: tdd, go
|
||||||
|
---
|
||||||
|
Hello
|
||||||
|
World`
|
||||||
secondBody = `Title: Post 2
|
secondBody = `Title: Post 2
|
||||||
Description: Description 2
|
Description: Description 2
|
||||||
Tags: tag1, tag2`
|
Tags: rust, borrow-checker
|
||||||
|
---
|
||||||
|
B
|
||||||
|
L
|
||||||
|
M`
|
||||||
)
|
)
|
||||||
|
|
||||||
fs := fstest.MapFS{
|
fs := fstest.MapFS{
|
||||||
@ -43,7 +50,9 @@ Tags: tag1, tag2`
|
|||||||
assertPost(t, posts[0], Post{
|
assertPost(t, posts[0], Post{
|
||||||
Title: "Post 1",
|
Title: "Post 1",
|
||||||
Description: "Description 1",
|
Description: "Description 1",
|
||||||
Tags: []string{"tag1", "tag2"},
|
Tags: []string{"tdd", "go"},
|
||||||
|
Body: `Hello
|
||||||
|
World`,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ const (
|
|||||||
descriptionLine = "Description: "
|
descriptionLine = "Description: "
|
||||||
tagsLine = "Tags: "
|
tagsLine = "Tags: "
|
||||||
tagSeparator = ","
|
tagSeparator = ","
|
||||||
|
bodySeparator = "---"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getPost(fileSystem fs.FS, fileName string) (Post, error) {
|
func getPost(fileSystem fs.FS, fileName string) (Post, error) {
|
||||||
@ -48,10 +49,25 @@ func newPost(postFile io.Reader) (Post, error) {
|
|||||||
tags[i] = strings.TrimSpace(tag)
|
tags[i] = strings.TrimSpace(tag)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for scanner.Scan() {
|
||||||
|
if strings.TrimSpace(scanner.Text()) == bodySeparator {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// The rest is the body
|
||||||
|
var buf strings.Builder
|
||||||
|
for scanner.Scan() {
|
||||||
|
buf.Write(scanner.Bytes())
|
||||||
|
buf.Write([]byte{'\n'})
|
||||||
|
}
|
||||||
|
body := strings.TrimSuffix(buf.String(), "\n")
|
||||||
|
|
||||||
post := Post{
|
post := Post{
|
||||||
Title: title,
|
Title: title,
|
||||||
Description: description,
|
Description: description,
|
||||||
Tags: tags,
|
Tags: tags,
|
||||||
|
Body: body,
|
||||||
}
|
}
|
||||||
return post, nil
|
return post, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user