logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 6a5036ab19276b57a44f2d81d7df85a83e872800
parent: e90fcb46e3e5bc4144d8777c2267bec638e327a0
Author: Eugen Rochko <eugen@zeonfederated.com>
Date:   Sun, 11 Dec 2016 23:08:46 +0100

Fix whitespace preservation in status text

Diffstat:

Mapp/assets/javascripts/components/components/status_content.jsx13++-----------
Mapp/assets/stylesheets/components.scss1+
Mapp/assets/stylesheets/stream_entries.scss1+
Mapp/lib/formatter.rb3++-
4 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/app/assets/javascripts/components/components/status_content.jsx b/app/assets/javascripts/components/components/status_content.jsx @@ -2,8 +2,6 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import PureRenderMixin from 'react-addons-pure-render-mixin'; import emojify from '../emoji'; -const hideContent = str => $('<p>').html(str).text().replace(/[^\s]/g, '█'); - const StatusContent = React.createClass({ contextTypes: { @@ -15,12 +13,6 @@ const StatusContent = React.createClass({ onClick: React.PropTypes.func }, - // getInitialState () { - // return { - // visible: false - // }; - // }, - mixins: [PureRenderMixin], componentDidMount () { @@ -67,10 +59,9 @@ const StatusContent = React.createClass({ render () { const { status, onClick } = this.props; - const hidden = false; // (status.get('sensitive') && !this.state.visible); - const content = { __html: hidden ? hideContent(status.get('content')) : emojify(status.get('content')) }; + const content = { __html: emojify(status.get('content')) }; - return <div className='status__content' style={{ cursor: 'pointer', color: hidden ? '#616b86' : null }} dangerouslySetInnerHTML={content} onClick={onClick} />; + return <div className='status__content' style={{ cursor: 'pointer' }} dangerouslySetInnerHTML={content} onClick={onClick} />; }, }); diff --git a/app/assets/stylesheets/components.scss b/app/assets/stylesheets/components.scss @@ -90,6 +90,7 @@ word-wrap: break-word; font-weight: 300; overflow: hidden; + white-space: pre-wrap; .emojione { width: 18px; diff --git a/app/assets/stylesheets/stream_entries.scss b/app/assets/stylesheets/stream_entries.scss @@ -153,6 +153,7 @@ color: #282c37; word-wrap: break-word; overflow: hidden; + white-space: pre-wrap; p { margin-bottom: 18px; diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb @@ -15,6 +15,7 @@ class Formatter html = status.text html = encode(html) html = simple_format(html, sanitize: false) + html = html.gsub(/\n/, '') html = link_urls(html) html = link_mentions(html, status.mentions) html = link_hashtags(html) @@ -42,7 +43,7 @@ class Formatter end def link_urls(html) - auto_link(html, link: :urls, html: { rel: 'nofollow noopener' }) do |text| + auto_link(html, link: :urls, html: { rel: 'nofollow noopener', target: '_blank' }) do |text| truncate(text.gsub(/\Ahttps?:\/\/(www\.)?/, ''), length: 30) end end