1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
package escape
import (
"unicode"
)
func IsUnorderedList(chars []byte, index int) int {
if chars[index] != '-' && chars[index] != '*' && chars[index] != '+' {
return -1
}
for i := index - 1; i >= 0; i-- {
if chars[i] == '\n' {
break
}
if chars[i] == ' ' {
continue
}
if chars[i] == placeholderByte {
continue
}
return -1
}
next := getNext(chars, index)
if IsSpace(next) || next == 0 {
return 1
}
return -1
}
func IsOrderedList(chars []byte, index int) int {
if chars[index] != '.' && chars[index] != ')' {
return -1
}
// Directly before the dot needs to be a digit
prev := getPrevAsRune(chars, index)
if !unicode.IsDigit(prev) {
return -1
}
for i := index - 1; i >= 0; i-- {
if chars[i] == '\n' {
break
}
if chars[i] == ' ' {
continue
}
if chars[i] == placeholderByte {
continue
}
if IsDigit(chars[i]) {
continue
}
return -1
}
next := getNext(chars, index)
if IsSpace(next) || next == 0 {
return 1
}
return -1
}
|