From 561dc58de8af7b617e0f0ca55a52ae205f6eebdc Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Tue, 23 Apr 2019 13:37:40 +0200 Subject: [PATCH] Accept richer text from remote statuses Support abbr, del, pre, blockquote, code, strong, b, em, i, ul, ol, li and h1 to h5 tags in remote statuses. --- .../styles/mastodon/components.scss | 55 +++++++++++++++++-- app/lib/sanitize_config.rb | 11 ++-- 2 files changed, 57 insertions(+), 9 deletions(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 2326dee38..120d0d868 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -667,10 +667,6 @@ &.status__content--with-spoiler { white-space: normal; - - .status__content__text { - white-space: pre-wrap; - } } .emojione { @@ -679,7 +675,9 @@ margin: -3px 0 0; } - p { + p, + pre, + blockquote { margin-bottom: 20px; white-space: pre-wrap; @@ -688,6 +686,53 @@ } } + h1, + h2, + h3, + h4, + h5 { + margin-top: 20px; + margin-bottom: 20px; + } + + h1, + h2 { + font-weight: 500; + font-size: 18px; + } + + h2 { + font-size: 16px; + } + + blockquote { + margin-left: 20px; + color: $dark-text-color; + } + + b, + strong { + font-weight: 500; + } + + em, + i { + font-style: italic; + } + + ul, + ol { + margin-left: 1em; + } + + ul { + list-style-type: disc; + } + + ol { + list-style-type: decimal; + } + a { color: $secondary-text-color; text-decoration: none; diff --git a/app/lib/sanitize_config.rb b/app/lib/sanitize_config.rb index 1bba4a5a6..0a87bf6df 100644 --- a/app/lib/sanitize_config.rb +++ b/app/lib/sanitize_config.rb @@ -20,11 +20,13 @@ class Sanitize end MASTODON_STRICT ||= freeze_config( - elements: %w(p br span a), + elements: %w(p br span a abbr del pre blockquote code b strong i em h1 h2 h3 h4 h5 ul ol li), attributes: { - 'a' => %w(href rel class), - 'span' => %w(class), + 'a' => %w(href rel class title), + 'span' => %w(class), + 'abbr' => %w(title), + 'blockquote' => %w(cite), }, add_attributes: { @@ -35,7 +37,8 @@ class Sanitize }, protocols: { - 'a' => { 'href' => HTTP_PROTOCOLS }, + 'a' => { 'href' => HTTP_PROTOCOLS }, + 'blockquote' => { 'cite' => HTTP_PROTOCOLS }, }, transformers: [