fixed with mempty and simplified working with attrs a bit

This commit is contained in:
Pagwin 2026-04-06 22:37:14 -04:00
parent 5073fdb04b
commit 4bf7614eda
No known key found for this signature in database
GPG key ID: 81137023740CA260
2 changed files with 11 additions and 11 deletions

View file

@ -77,7 +77,7 @@ paragraph :: (Logger m, Characters s) => Attrs -> Parser s m Element
paragraph = error "todo"
blockAttribute :: (Logger m, Characters s) => Attrs -> Parser s m Element
blockAttribute attrs = blockAttribute' <&> (attrs <>) >>= blockElement <|> error "eof handle"
blockAttribute attrs = (blockAttribute' <&> (attrs <>) >>= blockElement) <|> error "eof handle"
blockAttribute' :: (Logger m, Characters s) => Parser s m Attrs
blockAttribute' = error "todo"

View file

@ -64,22 +64,22 @@ inlineText' disallow = choice [try $ strikethrough disallow, try $ bold disallow
strikethrough disallow = do
content <- between' disallow (string "~~") (void $ string "~~") (inlineText' (disallow <|> (void $ string "~~")))
pure $ Crossed content emptyAttrs
pure $ Crossed content mempty
bold disallow = do
content <- between' disallow (string "**") (disallow <|> (void $ string "**")) (inlineText' (disallow <|> (void $ string "**")))
pure $ Bold content emptyAttrs
pure $ Bold content mempty
italic :: (HasCallStack) => Parser s m () -> Parser s m InlineText
italic disallow = do
content <- between' disallow (char '*') ((void $ char '*') <|> disallow) (inlineText' (disallow <|> (void $ char '*')))
pure $ Italic content emptyAttrs
pure $ Italic content mempty
underlined disallow = Underlined <$> (between' disallow (string "__") ((void $ string "__") <|> disallow) (inlineText' (disallow <|> (void $ string "__"))))
code = do
contents <- T.pack <$> between' disallow (char '`') (char '`') (notFollowedBy lineEnding *> anySingle)
pure $ InlineCode contents emptyAttrs
pure $ InlineCode contents mempty
link :: (HasCallStack) => Parser s m () -> Parser s m InlineText
link disallow = do
linkText <- between' disallow (char '[') ((void $ char ']') <|> disallow) (inlineText' (disallow <|> (void $ char ']')))
@ -93,7 +93,7 @@ inlineText' disallow = choice [try $ strikethrough disallow, try $ bold disallow
Nothing -> pure Nothing
char ')'
pure (url, title)
pure Link {linkText, url, title, misc_attrs = emptyAttrs}
pure Link {linkText, url, title, misc_attrs = mempty}
image disallow = do
logDebug "image:before excl"
@ -107,7 +107,7 @@ inlineText' disallow = choice [try $ strikethrough disallow, try $ bold disallow
Link {linkText = [Text altText], url, title} -> pure (altText, url, title)
Link {linkText = [], url, title} -> pure ("", url, title)
_ -> fail "Image alt text must be normal text, cannot be stylized in any way"
pure Image {altText, url, title, misc_attrs = emptyAttrs}
pure Image {altText, url, title, misc_attrs = mempty}
inline_html =
HTMLInline <$> do
@ -130,7 +130,7 @@ headingBlock = do
heading_level <- length <$> (some $ char '#')
optional spaceChar
text <- many ((notFollowedBy blockEnding) *> inlineText)
pure $ Heading (H {level = heading_level, text}) emptyAttrs
pure $ Heading (H {level = heading_level, text}) mempty
fencedCodeBlock :: (Logger m, Characters s) => Parser s m Element
fencedCodeBlock = between (string "```") (string "```") $ do
@ -161,7 +161,7 @@ blockquoteBlock = do
listBlock :: (Logger m, Characters s) => ListType -> Parser s m prefix -> (Int -> Parser s m List) -> Int -> Parser s m Element
listBlock list_type prefix child_parser_factory nest_level = do
items <- some $ listItem
pure $ List (L {list_type, items}) emptyAttrs
pure $ List (L {list_type, items}) mempty
where
listItem = do
count nest_level ((try $ void $ char '\t') <|> (void $ (count 4 $ char ' ')))
@ -173,7 +173,7 @@ listBlock list_type prefix child_parser_factory nest_level = do
child <- optional $ child_parser_factory $ nest_level + 1
case child of
Just c -> pure $ LI {content = [Transparent content, List c emptyAttrs]}
Just c -> pure $ LI {content = [Transparent content, List c mempty]}
Nothing -> pure $ LI {content = [Transparent content]}
unorderedListBlock :: (Logger m, Characters s) => Int -> Parser s m Element
@ -227,4 +227,4 @@ htmlBlock = do
paragraphBlock :: (Logger m, Characters s) => Parser s m Element
paragraphBlock = do
content <- P <$> many ((notFollowedBy blockEnding) *> inlineText)
pure $ Paragraph content emptyAttrs
pure $ Paragraph content mempty