@@ -93,25 +93,26 @@ noDocs = (emptyDocstring, [])
94-- | Does a string occur in the docstring?
94-- | Does a string occur in the docstring?
95containsText :: T.Text -> Docstring -> Bool
95containsText :: T.Text -> Docstring -> Bool
96−containsText str (CT.Doc _ blocks) = F.any (blockContains str) blocks
96+containsText str (CT.Doc _ blocks) = F.any (blockContains (T.toLower str)) blocks
97+ -- blockContains and inlineContains should always be called with a lower-case search string
97 where blockContains :: T.Text -> CT.Block -> Bool
98 where blockContains :: T.Text -> CT.Block -> Bool
98 blockContains str (CT.Para inlines) = F.any (inlineContains str) inlines
99 blockContains str (CT.Para inlines) = F.any (inlineContains str) inlines
99 blockContains str (CT.Header lvl inlines) = F.any (inlineContains str) inlines
100 blockContains str (CT.Header lvl inlines) = F.any (inlineContains str) inlines
100 blockContains str (CT.Blockquote blocks) = F.any (blockContains str) blocks
101 blockContains str (CT.Blockquote blocks) = F.any (blockContains str) blocks
101 blockContains str (CT.List b ty blockss) = F.any (F.any (blockContains str)) blockss
102 blockContains str (CT.List b ty blockss) = F.any (F.any (blockContains str)) blockss
102− blockContains str (CT.CodeBlock attr src) = T.isInfixOf str src
103+ blockContains str (CT.CodeBlock attr src) = T.isInfixOf str (T.toLower src)
103 blockContains str (CT.HtmlBlock txt) = False -- TODO
104 blockContains str (CT.HtmlBlock txt) = False -- TODO
104 blockContains str CT.HRule = False
105 blockContains str CT.HRule = False
106 inlineContains :: T.Text -> CT.Inline -> Bool
107 inlineContains :: T.Text -> CT.Inline -> Bool
107− inlineContains str (CT.Str s) = T.isInfixOf str s
108+ inlineContains str (CT.Str s) = T.isInfixOf str (T.toLower s)
108 inlineContains str CT.Space = False
109 inlineContains str CT.Space = False
109 inlineContains str CT.SoftBreak = False
110 inlineContains str CT.SoftBreak = False
110 inlineContains str CT.LineBreak = False
111 inlineContains str CT.LineBreak = False
111 inlineContains str (CT.Emph txt) = F.any (inlineContains str) txt
112 inlineContains str (CT.Emph txt) = F.any (inlineContains str) txt
112 inlineContains str (CT.Strong txt) = F.any (inlineContains str) txt
113 inlineContains str (CT.Strong txt) = F.any (inlineContains str) txt
113− inlineContains str (CT.Code txt) = T.isInfixOf str txt
114+ inlineContains str (CT.Code txt) = T.isInfixOf str (T.toLower txt)
114 inlineContains str (CT.Link body url title) = F.any (inlineContains str) body
115 inlineContains str (CT.Link body url title) = F.any (inlineContains str) body
115 inlineContains str (CT.Image body url title) = False
116 inlineContains str (CT.Image body url title) = False
116 inlineContains str (CT.Entity a) = False
117 inlineContains str (CT.Entity a) = False
117− inlineContains str (CT.RawHtml txt) = T.isInfixOf str txt
118+ inlineContains str (CT.RawHtml txt) = T.isInfixOf str (T.toLower txt)