mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-09-01 22:18:43 +00:00
core: support **text** as bold markdown (#7444)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
This commit is contained in:
co-authored by
Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
parent
d131173e83
commit
f71b132536
@@ -211,7 +211,7 @@ markdownP = mconcat <$> A.many' fragmentP
|
||||
Just c -> case c of
|
||||
' ' -> unmarked <$> A.takeWhile (== ' ')
|
||||
'+' -> phoneP <|> wordP
|
||||
'*' -> formattedP '*' Bold
|
||||
'*' -> boldP <|> formattedP '*' Bold
|
||||
'_' -> formattedP '_' Italic
|
||||
'~' -> formattedP '~' StrikeThrough
|
||||
'`' -> formattedP '`' Snippet
|
||||
@@ -233,6 +233,12 @@ markdownP = mconcat <$> A.many' fragmentP
|
||||
| T.null s || T.head s == ' ' || T.last s == ' ' =
|
||||
unmarked $ c `T.cons` s `T.snoc` c
|
||||
| otherwise = markdown f s
|
||||
boldP :: Parser Markdown
|
||||
boldP = do
|
||||
s <- A.string "**" *> A.takeTill (== '*') <* A.string "**"
|
||||
if T.null s || T.head s == ' ' || T.last s == ' '
|
||||
then fail "not bold"
|
||||
else pure $ markdown Bold s
|
||||
secretP :: Parser Markdown
|
||||
secretP = secret <$?> ((,,) <$> A.takeWhile (== '#') <*> A.takeTill (== '#') <*> A.takeWhile1 (== '#'))
|
||||
secret :: (Text, Text, Text) -> Either String Markdown
|
||||
|
||||
+23
-2
@@ -74,6 +74,19 @@ textFormat = describe "text format (bold)" do
|
||||
<==> "this is " <> bold "bold" <> " "
|
||||
"this is *bold* "
|
||||
<==> "this is " <> bold "bold" <> " "
|
||||
it "correct markdown with double asterisk" do
|
||||
"this is **bold formatted** text"
|
||||
==> "this is " <> bold "bold formatted" <> " text"
|
||||
"**bold formatted** text"
|
||||
==> bold "bold formatted" <> " text"
|
||||
"this is **bold**"
|
||||
==> "this is " <> bold "bold"
|
||||
" **bold** text"
|
||||
==> " " <> bold "bold" <> " text"
|
||||
"this is **bold** "
|
||||
==> "this is " <> bold "bold" <> " "
|
||||
"this is **bold** "
|
||||
==> "this is " <> bold "bold" <> " "
|
||||
it "ignored as markdown" do
|
||||
"this is * unformatted * text"
|
||||
<==> "this is * unformatted * text"
|
||||
@@ -81,8 +94,16 @@ textFormat = describe "text format (bold)" do
|
||||
<==> "this is *unformatted * text"
|
||||
"this is * unformatted* text"
|
||||
<==> "this is * unformatted* text"
|
||||
"this is **unformatted** text"
|
||||
<==> "this is **unformatted** text"
|
||||
"this is ** unformatted ** text"
|
||||
<==> "this is ** unformatted ** text"
|
||||
"this is **unformatted ** text"
|
||||
<==> "this is **unformatted ** text"
|
||||
"this is ** unformatted** text"
|
||||
<==> "this is ** unformatted** text"
|
||||
"this is **unformatted text"
|
||||
<==> "this is **unformatted text"
|
||||
"this is **unformatted* text"
|
||||
<==> "this is **unformatted* text"
|
||||
"this is*unformatted* text"
|
||||
<==> "this is*unformatted* text"
|
||||
"this is *unformatted text"
|
||||
|
||||
Reference in New Issue
Block a user