aboutsummaryrefslogtreecommitdiffstats
path: root/app/Issue/Text.hs
diff options
context:
space:
mode:
Diffstat (limited to 'app/Issue/Text.hs')
-rw-r--r--app/Issue/Text.hs42
1 files changed, 2 insertions, 40 deletions
diff --git a/app/Issue/Text.hs b/app/Issue/Text.hs
index cb4ae47..a7697d5 100644
--- a/app/Issue/Text.hs
+++ b/app/Issue/Text.hs
@@ -1,24 +1,12 @@
module Issue.Text
- ( extractText,
- stripIssueMarkers,
+ ( stripIssueMarkers,
issueMarkers,
- extractComments,
)
where
-import CMark qualified as D
-import Control.Arrow (first, second, (***))
-import Data.Text (Text)
+import Control.Arrow (first)
import Data.Text qualified as T
-extractText :: Text -> (Text, Maybe Text)
-extractText text = (title, description)
- where
- (title, description') = second T.stripStart $ T.breakOn "\n" text
- description
- | T.null description' = Nothing
- | otherwise = Just description'
-
issueMarkers :: [T.Text]
issueMarkers =
[ "TODO",
@@ -34,29 +22,3 @@ stripIssueMarkers text =
T.stripStart (T.drop (T.length marker) text)
[] ->
([], text)
-
-extractComments :: T.Text -> ([T.Text], T.Text)
-extractComments text = collect (D.commonmarkToNode [] text)
- where
- collect :: D.Node -> ([T.Text], T.Text)
- collect (D.Node _ D.DOCUMENT ns) =
- (map (toText . reverse) . reverse)
- *** (toText . reverse)
- $ collect' ([], []) ns
- collect _ = error "commonmarkToNode: no document"
-
- collect' :: ([[D.Node]], [D.Node]) -> [D.Node] -> ([[D.Node]], [D.Node])
- collect' (as, rs) [] = (as, rs)
- collect' ([], rs) (n@(D.Node _ D.PARAGRAPH (n' : _)) : ns)
- | D.Node _ (D.TEXT s) _ <- n',
- T.isPrefixOf "COMMENT" s =
- collect' ([[n]], rs) ns
- | otherwise = collect' ([], n : rs) ns
- collect' (ass@(a : as), rs) (n@(D.Node _ D.PARAGRAPH (n' : _)) : ns)
- | D.Node _ (D.TEXT s) _ <- n',
- T.isPrefixOf "COMMENT" s =
- collect' (([n] : ass), rs) ns
- | otherwise = collect' (((n : a) : as), rs) ns
- collect' (as, rs) (_ : ns) = collect' (as, rs) ns
-
- toText = D.nodeToCommonmark [] Nothing . D.Node Nothing D.DOCUMENT