Skip to content

Commit c7efdf8

Browse files
authored
fix uppercase to item parsing (#12)
1 parent 05c9d4c commit c7efdf8

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

pkg/checkmate/parse.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ func closestHeaderTo(headers []reMatch, indLineNumber int) string {
5757
}
5858

5959
func blockToItems(b block) (items []ChecklistItem) {
60-
re := regexp.MustCompile(`- (?P<Checked>\[[ x]]) (?P<Message>.*)`)
60+
re := regexp.MustCompile(`(?i)- (?P<Checked>\[[ x]]) (?P<Message>.*)`)
6161
parseChecked := func(s string) bool {
62-
return s == "[x]"
62+
return strings.EqualFold(s, "[x]")
6363
}
6464

6565
for _, line := range strings.Split(b.Raw, "\n") {
@@ -96,7 +96,7 @@ type block struct {
9696
}
9797

9898
func findChecklistBlocks(content string) (blocks []block) {
99-
re := regexp.MustCompile(`- \[[ xX]\] .*`)
99+
re := regexp.MustCompile(`(?i)- \[[ x]\] .*`)
100100

101101
matches := findRE(content, re)
102102

pkg/checkmate/parse_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,20 +98,25 @@ func TestParse(t *testing.T) {
9898
},
9999
{
100100
name: "No Headers",
101-
args: args{content: "<!--Checkmate-->\n- [ ] unchecked"},
101+
args: args{content: "<!--Checkmate-->\n- [ ] unchecked\n- [X] uppercase checked"},
102102
expected: []Checklist{
103103
{
104104
Header: "",
105105
Meta: ChecklistMetadata{
106106
RawIndicator: "<!--Checkmate-->",
107107
},
108-
Raw: "- [ ] unchecked",
108+
Raw: "- [ ] unchecked\n- [X] uppercase checked",
109109
Items: []ChecklistItem{
110110
{
111111
"unchecked",
112112
false,
113113
"- [ ] unchecked",
114114
},
115+
{
116+
"uppercase checked",
117+
true,
118+
"- [X] uppercase checked",
119+
},
115120
},
116121
},
117122
},

0 commit comments

Comments
 (0)