Multi-Line Strikethrough Not Covering Quotes

(Alex Sherwood) #1

I’m not sure whether this bug is specific to Discourse but when I try to strikethrough several lines of text & one of those lines is a quote, the quote’s text is not struck out.

The preview displays the quoted text as struck out -

but when posted, it renders like this -

Striking out each line instead like this -

does behave as I was expecting -

Strikethrough `<s>` displayed differently in editor preview and post
(cpradio) #2

You should really try that example at

As that is the site testing implementing the common mark spec into Discourse.

(Sam Saffron) #3

Works fine in

(Alex Sherwood) #4

I’m still having the same issue in, in your example you haven’t got struck out text before the quote but in mine, I have -

looks like

From this topic -

(Sam Saffron) #5

Looks like nokogiri may be messing stuff up, I will investigate.

(Jeff Atwood) #6

Let’s see

Some text

a quote


<s>Some text

> a quote


This still happens.

(Sam Saffron) #7

Strike is an inline, not a block level element, I may just add a rule to balance inline tags

(Matt Maier) #8

So this is still a thing. The preview is different from the final product.

(Jeff Atwood) #9

Simple workaround, use strikethrough as a line not block element.

Rather than expecting this to work

> there

Strikethrough each line instead

> <s>there</s>



(Matt Maier) #10

Thanks, but I wasn’t asking for a work around. I was pointing out that this bug still exists. It’s weird that the preview gets it right but the actual render doesn’t.

(Jeff Atwood) #11

It’s unlikely we will be “fixing” this bug anytime soon, so plan accordingly :wink:

(Mittineague) #12

I’m not so sure this is a bug. Phrasing content can’t be expected to work well with Flow content that is not itself Phrasing content. eg. <div> or <p> tags.

What would be required is to parse the single opening and closing <s> tags to multiple tags within the parent Flow content elements.

IMHO, that is most likely a bit much for something that is edge case and has an existing workaround.

(Kane York) #13

What’s happening is the browser is applying an age-old fix by copying the <s> onto each paragraph until the close tag. The server uses Nokogiri which does not Reconstruct the active formatting elements but instead inserts a close tag for the strikethrough at the end of paragraph, as you would for any non-formatting mis-nested tag.

It’s officially specified as applying to a, b, big, code, em, font, i, nobr, s, small, strike, strong, tt, and u.


(Sam Saffron) #14

I am not against somebody submitting a patch nokogiri that works around this issue, or gives it a mode where it is able to handle it and we use it.

But I am moving this to feature … cause technically you provided bad HTML, if anyone is passionate about this raise it on the CommonMark site or Nokogiri bug tracker.