mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-22 17:35:54 +03:00
Bugfix/markdown parsing (#2002)
Removed replacing of newlines in already parsed HTML documents Signed-off-by: Leon Schmidt <mail@leon.wtf> Co-authored-by: Benoit Marty <benoitm@matrix.org>
This commit is contained in:
parent
44cb8cdeca
commit
29123ac726
2 changed files with 3 additions and 14 deletions
|
@ -10,6 +10,7 @@ Improvements 🙌:
|
|||
|
||||
Bugfix 🐛:
|
||||
- Display name not shown under Settings/General (#1926)
|
||||
- Wrong markdown parsing (#350, #1375, #1939, #1982)
|
||||
- Words containing my name should not trigger notifications (#1781)
|
||||
- Fix changing language issue
|
||||
- Fix FontSize issue (#1483, #1787)
|
||||
|
|
|
@ -33,7 +33,7 @@ internal class MarkdownParser @Inject constructor(
|
|||
private val textContentRenderer: TextContentRenderer
|
||||
) {
|
||||
|
||||
private val mdSpecialChars = "[`_\\-\\*>\\.\\[\\]#~]".toRegex()
|
||||
private val mdSpecialChars = "[`_\\-*>.\\[\\]#~]".toRegex()
|
||||
|
||||
fun parse(text: String): TextContent {
|
||||
// If no special char are detected, just return plain text
|
||||
|
@ -54,8 +54,7 @@ internal class MarkdownParser @Inject constructor(
|
|||
return if (isFormattedTextPertinent(text, cleanHtmlText)) {
|
||||
// According to https://matrix.org/docs/spec/client_server/latest#m-room-message-msgtypes:
|
||||
// The plain text version of the HTML should be provided in the body.
|
||||
val plainText = textContentRenderer.render(document)
|
||||
TextContent(plainText, cleanHtmlText.postTreatment())
|
||||
TextContent(text, cleanHtmlText.trim())
|
||||
} else {
|
||||
TextContent(text)
|
||||
}
|
||||
|
@ -63,15 +62,4 @@ internal class MarkdownParser @Inject constructor(
|
|||
|
||||
private fun isFormattedTextPertinent(text: String, htmlText: String?) =
|
||||
text != htmlText && htmlText != "<p>${text.trim()}</p>\n"
|
||||
|
||||
/**
|
||||
* The parser makes some mistakes, so deal with it here
|
||||
*/
|
||||
private fun String.postTreatment(): String {
|
||||
return this
|
||||
// Remove extra space before and after the content
|
||||
.trim()
|
||||
// There is no need to include new line in an html-like source
|
||||
.replace("\n", "")
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue