use bufio; use fmt; use os; use strings; // Trying to figure out how to read input line-by-line: // // let scanner = bufio.NewScanner(os.Stdin) // while scanner.Scan() { // scanner.Text() // } // // could not figure out how to use scanner.Err() // // let reader = bufio.NewReader(os.Stdin) // reader.ReadString('\n') // // how do I check for io.EOF here? enum State { Start, InParagraph, InBlockquote, } fn main() { fmt.Println("") fmt.Println("
") fmt.Println("") let scanner = bufio.NewScanner(os.Stdin) let mut state = State.Start while scanner.Scan() { let line = scanner.Text() if line == "" { state = match state { Start => { State.Start } InParagraph => { fmt.Println("") State.Start } InBlockquote => { fmt.Println("") State.Start } } } else if strings.HasPrefix(line, "> ") { state = match state { Start => { fmt.Println("") State.InBlockquote } InParagraph => { fmt.Println("") fmt.Println("") } } fmt.Println("") fmt.Println("") }") State.InBlockquote } InBlockquote => { State.InBlockquote } } fmt.Println(strings.TrimPrefix(line, "> ")) } else { state = match state { Start => { fmt.Println("") fmt.Println("") State.InParagraph } InParagraph => { State.InParagraph } InBlockquote => { fmt.Println("
") State.InParagraph } } fmt.Println(line) } } // no error handling! match state { Start => { // this doesn't do anything, I just need it so the types match fmt.Print() } InParagraph => { fmt.Println("
") } InBlockquote => { fmt.Println("