package main import ( "fmt" "html/template" "io/ioutil" "strings" "time" ) //Post : Is exported type Post struct { Date time.Time Title string URLTitle string Content template.HTML } var lewd = "Lewd Interlude" var reveries = "Takunomi Coffee Reveries, Vol. I" var romantic = "Romantic Japanese Christmas Takunomi Saturday Recap" func spaceToHyphen(s string) string { return strings.Replace(s, " ", "-", -1) } func setDate(year int, month time.Month, day int) time.Time { return time.Date(year, month, day, 0, 0, 0, 0, time.UTC) } func newPost(date time.Time, title string) Post { return Post{date, title, spaceToHyphen(title), getPostContent(title)} } var postsCollection = []Post{ newPost(setDate(2017, time.September, 12), lewd), newPost(setDate(2017, time.March, 4), reveries), newPost(setDate(2017, time.April, 23), romantic), } func getPostByURLTitle(title string) Post { for _, post := range postsCollection { if post.URLTitle == title { return post } } return Post{} } func getPostContent(title string) template.HTML { content, err := ioutil.ReadFile("posts/" + title) if err != nil { fmt.Println(content) return template.HTML("") } return template.HTML(string(content[:len(content)])) } func getNewestPosts(numberOfPosts int) []Post { var posts []Post for i := 0; i < numberOfPosts; i++ { post := postsCollection[i] posts = append(posts, getPostByURLTitle(post.URLTitle)) } return posts }