Support Strikethrough in Markdown README (BB-5048)

Issue #4412 resolved
Christopher Case
created an issue

Currently, strikethrough is not supported in Markdown README files, or in wiki pages. This is for the obvious reason that the Markdown Syntax doesn't support strike through. (Personally, it's an annoying oversight.) Generally speaking, it's useful to be able to have a todo list, and "cross off" items as you work on them.

In other markdown enabled sites, <del> or <s> can be used. That's not possible, given Bitbucket's policy.

What I propose is extending Markdown's syntax slightly:



  • Some Item
  • Some Other Item
  • ~Some Finished Item~

Using ~ as the character to represent strike through is used in other syntax, and I think would make a decent amount of sense. Since Bitbucket is built ontop of django, it should be possible to implement this as a template filter in a fairly straightforward manner. (I might even be able to submit an example one once work dies down a bit.)

It may seem like a small issue, but I've run into it enough that I felt it's worth devoting a ticket and some time towards. Let's hope the devs agree.

Comments (68)

  1. Christopher Case reporter

    Ah, it seems that there isn't a good way to edit a ticket once submitted, and that my attempt at preformating failed. Here's a minor correction:

    Using ~ as the character...
  2. Dylan Etkin

    I am afraid we are not going to extend the markdown syntax we support. This would be a change that should be lobbied for with the markdown folks.



  3. Jeremy Banks

    @Dylan Etkin Who are "the Markdown folks", as far as this ticket is concerned?

    John Gruber hasn't updated the original implementation or "specification" in over eight years; he's the creator but he's not a maintainer in any sense.

    Or are you using a markdown library whose author we could petition?

  4. Robert Hoare

    Just spent a few minutes trying <s>, <del>, ~~ and so on before coming here to find out strikethrough isn't supported yet. It really is needed, to indicate what got fixed in an issue description.

  5. Jon

    It looks like there are a lot more users who voted for this with "+1" comments than there are votes on the issue - if you want this head to your local polling station and do your civic duty :)

    @Gordon McShane it may very well be that they want to keep the core project as lightweight as possible so that people can get just what they need and add in anything they need w/o getting more than they want. If this is the case they may intend to never add in support to the core project, which would make BB adding the extension the only route if they wished to add support (which I'd favor).

  6. Arya Irani

    +1 Is there at least a full description of bitbucket-supported markdown syntax? I can only find bitbucket-specific notes, like how to link issues and commits.

  7. Dylan Etkin

    Hi Everyone,

    We have just rolled out support for strikethrough via the extension found here

    Thank you all for pointing out that the extension existed and I am personally sorry it took so long for us to address the issue. To be honest it just fell through the cracks since it was already marked as won't fix.



  8. mickk

    According to the documentation of the extension, it also provides syntax for ++items++ that looks like: ++items++ (i.e. it underlines). This has 'interesting' consequences for README's and wikis that mention the C++ language, by which I mean the C++ language. (I mean C++.) Is this intended?

  9. Jonathan Mooring

    @mickk thanks for pointing that out. You can escape the first + character to get around this. C\++ and C++ renders appropriately: C++ and C++

    We'll monitor community feedback on this extension, but right now I think it's probably worth the trade-off.


  10. Anatoly Scheglov

    There are some people who write in C++, and have "C++" in their documentation. If you don't write in C++ it may look like a good trade-off because meh who cares about those C++ geeks, but to me it looks like you broke my text. Thank you.

  11. Mark Boyall

    Are you kidding? There's no way in hell that I'm going to go through all my content and edit it for this. It's a serious breaking issue for everybody with content in C++.

  12. Danny Y

    @Jonathan Mooring I don't think it's worth the trade-off because no one honestly expects C++ to not parse properly if used twice in a paragraph. Not to mention that there isn't much use of underlining text on the internet anyway as it conflicts with the notion that an underlined word is probably a link.

    This just feels like faulty design to me and I honestly hope that it gets fixed in the future because it is slightly annoying to have to escape a character to just state the language that your project is using.

  13. Anonymous

    This is fixed! Use Markdown, not HTML! For example ~~ instead of <del> and ++ instead of <ins>.

    This: This is <ins>added content</ins> and this is <del>deleted content</del> doesn't work and renders normally.

    While this: Strike-through ~~doesn't~~ work++s++ in BitBucket! should work.

    Example: Strike-through doesn't work++s++ in BitBucket!

  14. Anonymous

    @Stanislav Volodarskiy No one say nothing about you being "attentive"! :] I was also mislead with this discussion and my first comment was also a question, is it working at all, and why it is marked as fixed, if <del> doesn't work.

    I found out, that we need to use ~~ by accident and reedited my comment. All fine, all thumbs up! :]

  15. Stanislaw Pankevich

    Tomasz, I saw both your original and final comments (the former by email, the latter by bitbucket).

    It was a mistake in my comment which is now fixed - it was "unattentive" that what I meant and which after all means that I was ++unattentive++ twice))

  16. Pedro Assunção

    Anyone tried striking something while inside a numbered list?

    1. Something something
    2. Another something

    See? It doesn't respect the list structure, it puts the second item on the same line as the first one... :(

  17. Anonymous

    @Pedro Assunção Example:

    1. Normal strike-through part.
    2. Normal strike-through part.
    3. Normal ++added++ part.
    4. Normal ++added++ part.


    1. Normal ~~strike-through~~ part.
    2. Normal ~~strike-through~~ part.
    3. Normal ++added++ part.
    4. Normal ++added++ part.

    Make sure, that you surround list with two empty lines (before and after list). Failing to do so makes list rendered in one line in Markdown. Striking or inserting has nothing to do with the fact, that your numbered list doesn't look like numbered list.

  18. Christopher Werby

    Surrounding a bit of a piece of text with ~~ works for strikethrough. But the <del> or <strike> tags should work as well, but don't. My understanding of Markdown is that straight HTML tags are supposed to be implemented in Markdown.

    From Gruber's Markdown syntax page:

    For any markup that is not covered by Markdown’s syntax, you simply use HTML itself. There’s no
    need to preface it or delimit it to indicate that you’re switching from Markdown to HTML; you just use the tags.

    Can we get support for (at least) the text-formatting html tags, like <del>, <ins>, and so on?

  19. Log in to comment