portfolio/internal/mdparser/work.go

50 lines
998 B
Go

package mdparser
import (
"context"
"strings"
"github.com/lorenzhohermuth/portfolio/pkg/github"
"github.com/lorenzhohermuth/portfolio/view/component"
)
func GetWork() []component.Event {
projectsFile, ghErr := github.FetchGHFile(context.Background(), "/interactive/work.md")
if ghErr != nil {
panic(ghErr)
}
components := make([]component.Event, 0)
lines := strings.Split(projectsFile, "\n")
tmpTitle := ""
tmpPeriod := ""
for _, l := range lines {
isFilled, elm := parseMdWork(l, &tmpTitle, &tmpPeriod)
if isFilled {
components = append(components, elm)
}
}
return components
}
func parseMdWork(line string, title *string, periode *string) (bool, component.Event){
char := getChar(line, 0)
if char == "" {
elm := component.Event{
TimePeriode: *periode,
Title: *title,
}
*title = ""
*periode = ""
return true, elm
} else if char == "#" {
*title = strings.TrimSpace(line[1:])
} else {
*periode = line
}
return false, component.Event{}
}