more ParseLine cleanup
This commit is contained in:
parent
3149020ec5
commit
4d53e2fa87
32
parser.go
32
parser.go
|
@ -75,23 +75,21 @@ func ParseHeading(l string) (GemtextObject, error) {
|
|||
// "isPreformatted" takes a true if the line is in a preformatted block, else otherwise.
|
||||
func ParseLine(line string, isPreformatted bool) (GemtextObject, error) {
|
||||
l := strings.TrimSpace(line)
|
||||
if strings.HasPrefix(l, "=>") {
|
||||
return ParseLink(line)
|
||||
} else if strings.HasPrefix(l, "```") {
|
||||
return GemtextObject{Type: PREFORMATTED_TOGGLE, Literal: l}, nil
|
||||
} else if strings.HasPrefix(l, "#") {
|
||||
return ParseHeading(line)
|
||||
} else if strings.HasPrefix(l, ">") {
|
||||
return GemtextObject{Type: QUOTE, Text: strings.TrimSpace(l[1:]), Literal: l}, nil
|
||||
} else if strings.HasPrefix(l, "*") {
|
||||
return GemtextObject{Type: LIST, Text: strings.TrimSpace(l[1:]), Literal: l}, nil
|
||||
} else { // Everything else is just text
|
||||
if isPreformatted {
|
||||
return GemtextObject{Type: PREFORMATTED_TEXT, Text: l, Literal: l}, nil
|
||||
} else {
|
||||
return GemtextObject{Type: TEXT, Text: l, Literal: l}, nil
|
||||
}
|
||||
}
|
||||
switch {
|
||||
case strings.HasPrefix(l, "=>"):
|
||||
return ParseLink(line)
|
||||
case strings.HasPrefix(l, "```"):
|
||||
return GemtextObject{Type: PREFORMATTED_TOGGLE, Literal: l}, nil
|
||||
case strings.HasPrefix(l, "#"):
|
||||
return ParseHeading(line)
|
||||
case strings.HasPrefix(l, ">"):
|
||||
return GemtextObject{Type: QUOTE, Text: strings.TrimSpace(l[1:]), Literal: l}, nil
|
||||
case strings.HasPrefix(l, "*"):
|
||||
return GemtextObject{Type: LIST, Text: strings.TrimSpace(l[1:]), Literal: l}, nil
|
||||
case isPreformatted:
|
||||
return GemtextObject{Type: PREFORMATTED_TEXT, Text: l, Literal: l}, nil
|
||||
}
|
||||
return GemtextObject{Type: TEXT, Text: l, Literal: l}, nil
|
||||
}
|
||||
|
||||
// ParsePage takes a string containing the contents of a gemtext page and returns a GemtextPage.
|
||||
|
|
Reference in New Issue