Add support for sending spoiler markdown (#267)

* Basic spoiler markdown plugin

* Remove console.log statement
This commit is contained in:
ginnyTheCat 2022-01-31 16:58:42 +01:00 committed by GitHub
parent 5f7fa0557f
commit 0e8219b200
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 173 additions and 17 deletions

View file

@ -3,6 +3,7 @@ import { micromark } from 'micromark';
import { gfm, gfmHtml } from 'micromark-extension-gfm';
import encrypt from 'browser-encrypt-attachment';
import { getShortcodeToEmoji } from '../../app/organisms/emoji-board/custom-emoji';
import { spoilerExtension, spoilerExtensionHtml } from '../../util/markdown';
import cons from './cons';
import settings from './settings';
@ -84,8 +85,8 @@ function getVideoThumbnail(video, width, height, mimeType) {
function getFormattedBody(markdown) {
const result = micromark(markdown, {
extensions: [gfm()],
htmlExtensions: [gfmHtml],
extensions: [gfm(), spoilerExtension()],
htmlExtensions: [gfmHtml, spoilerExtensionHtml],
});
const bodyParts = result.match(/^(<p>)(.*)(<\/p>)$/);
if (bodyParts === null) return result;
@ -406,7 +407,7 @@ class RoomsInput extends EventEmitter {
// Apply formatting if relevant
const formattedBody = formatAndEmojifyText(
this.matrixClient.getRoom(roomId),
editedBody
editedBody,
);
if (formattedBody !== editedBody) {
content.formatted_body = ` * ${formattedBody}`;