commit c9807a96e87a9e29d6e479a81b776df67bcb042f Author: ed Date: Thu Nov 14 19:29:33 2019 +0100 main go file added diff --git a/main.go b/main.go new file mode 100644 index 0000000..fdef2d1 --- /dev/null +++ b/main.go @@ -0,0 +1,100 @@ +package main + +import ( + "os" + "fmt" + "bufio" +) + +type hlink struct { + url string + text string +} + +type Page struct { + Body string + Links []hlink +} + +type Game struct { + Title string + Pages []Page +} + +var title string = "eow" +var head string = ` + + + ` + title + ` + + + + +` +var tail string = "\n" + ` +` + + +func text2link(text string, url string) string { + return " " + text + "" +} + +func writeHTML(title string, body string, links...hlink) { + f, _ := os.Create(title + ".html") + f.WriteString(head) + f.WriteString("

" + body + "

") + f.WriteString("\n
\n") + for _,link := range(links){ + f.WriteString(text2link(link.text,link.url)) + } + f.WriteString(tail) +} + +func cutFirstWord(w string) string { + var c int + for c = 0; c < len(w); c++ { + if (string(w[c]) == " ") { + break + } + } + return w[c+1:] +} + +func fparse(fname string) Game{ + file, _ := os.Open(fname) + defer file.Close() + scanner := bufio.NewScanner(file) + + game := Game{} + + var pcount int = 0 + scanner.Scan() + game.Title = scanner.Text() + for scanner.Scan() { + line := scanner.Text() + switch { + case len(line) == 0: + pcount++ + case string(line[0]) == ":": + game.Pages = append(game.Pages, Page{Body:cutFirstWord(line)}) + fmt.Println(cutFirstWord(line)) + case string(line[0]) == "-": + game.Pages[pcount]:Links = append + //fmt.Println("New link") + } + + //fmt.Println(firstchar) + //game.Pages = append(game.Pages() + } + return game +} + +func main() { + game := fparse("model") + fmt.Println(game) + /* + l1 := hlink{url:"01.html",text:"First"} + l2 := hlink{url:"02.html",text:"Second"} + writeHTML("check", "Yolo World", l1, l2)*/ +} +