-import { SANITIZE_OPTIONS, TEXT_WITH_HTML_RULES } from '@shared/core-utils'
+import { getSanitizeOptions, TEXT_WITH_HTML_RULES } from '@shared/core-utils'
+
+const sanitizeOptions = getSanitizeOptions()
const sanitizeHtml = require('sanitize-html')
const markdownItEmoji = require('markdown-it-emoji/light')
markdownIt.use(markdownItEmoji)
const toSafeHtml = text => {
+ if (!text) return ''
+
// Restore line feed
const textWithLineFeed = text.replace(/<br.?\/?>/g, '\r\n')
const html = markdownIt.render(textWithLineFeed)
// Convert to safe Html
- return sanitizeHtml(html, SANITIZE_OPTIONS)
+ return sanitizeHtml(html, sanitizeOptions)
+}
+
+const mdToPlainText = text => {
+ if (!text) return ''
+
+ // Convert possible markdown (emojis, emphasis and lists) to html
+ const html = markdownIt.render(text)
+
+ // Convert to safe Html
+ const safeHtml = sanitizeHtml(html, sanitizeOptions)
+
+ return safeHtml.replace(/<[^>]+>/g, '')
+ .replace(/\n$/, '')
+ .replace('\n', ', ')
}
// ---------------------------------------------------------------------------
export {
- toSafeHtml
+ toSafeHtml,
+ mdToPlainText
}