package parser import ( "bufio" "bytes" "fmt" "strings" ) const ( lineBreak = "
" ) func makeLink(source, content string) string { return fmt.Sprintf(`%v`, source, content) } func makeParagraph(content string) string { return `

` + content + `

` } func makeBlockQuote(content string) string { return `
` + content + `
` } func makeHeader(level int, content string) string { return fmt.Sprintf("%v", level, content, level) } func makePreformatted(content string) string { return "
" + content + "
" } func makeListItem(content string) string { return "
  • " + content + "
  • " } func StringToLines(s string) (lines []string, err error) { scanner := bufio.NewScanner(strings.NewReader(s)) for scanner.Scan() { lines = append(lines, scanner.Text()) } err = scanner.Err() return } func LinesToString(lines []string, separator string) string { buffer := bytes.Buffer{} for _, line := range lines { buffer.WriteString(line + separator) } return buffer.String() }