-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to express anger in ASCII without using a backslash escape, interpreted as quote by Markdown. #20724
Comments
We use an external markdown specification called CommonMark so that you don't have to learn a new dialect for each product you use https://spec.commonmark.org/dingus/ There is another open issue about switching to a different dialect but it suggests GFM which has the same behaviour. Running a bespoke/modified dialect would be a lot of extra work for very little gain and with a lot of added user-facing confusion. |
Personally, I've seen different friends hit this bug many a time - they're used to other chat apps which don't create a block quote when typing But due to Discord's live markdown preview, this surprise is experienced before a message is sent. 2022-01-24.23-52-40.mp4which saves one from finding out after having sent a message. (this is tracked at element-hq/element-meta#1569). Regardless of WYSIWYG functionality though, the same argument can be made for I disagree that a custom dialogue would be little gain, as it would allow us to support the above syntax. I'm also unconvinced that it would be too much work to support. Other chat apps do it -- why can't Element? markdown-it is a markdown parser with support for plugins for custom syntax. discord-markdown is a from-scratch library that tries to mimic discord's markdown syntax. |
The issue ends up being parity matching between all the platforms, right now we already have 3 different dialects but in theory just using stock commonmark makes it easier to match between them. Having to mimic the extensions for both serialising and deserializing across all 3 platforms adds a lot of load to maintain. Also Discord has 10x the employees |
Parity in syntax between platforms is indeed something that has been a problem in the past. Though, did the difficultly in implementation lie in the conversion between text and HTML, or in implementing the rendering? If the latter, then that's a separate problem from commonmark vs. GFM etc. If it is down to the markdown renderer, then much like the spread of matrix-rust-sdk, could we not maintain a single rust library which takes in text and spits out HTML (and vice versa) and use that across all three platforms? |
HTML Rendering implementation is an entirely different topic, the Matrix spec has a set of suggested tags to support and those are all supported in Web, with partial support elsewhere. The main difficulty was a stable MD -> HTML -> MD solution which was consistent between the platforms. Just checked, Android has finally moved to stock CommonMark too now, from their MarkedJS-in-Android hell from yesteryear
Yes, probably, but then also need to maintain our own documentation which we are awful at. We currently just point people at the stock CommonMark docs. |
Thank you for the context. The task in indeed not trivial, but I think we've reached a possible way forward if someone is willing to put in the work:
This comes with the burden of maintaining a new library. But it also comes with the benefit of introducing syntactic features as the chat ecosystem continues to evolve, as well as maintaining parity across all 3 platforms going forwards. |
I think maintaining good documentation and maybe a tool like Dingus too will be important. |
element-hq/element-meta#330 is relevant here, as commonmark enforces this exact behaviour. I'm wholly in support for the new syntactical approach btw, if i can help with that, please let me know 👍 |
You can use |
i don't really consider this a good option. i run up against this inconvenience almost daily and it's always a bit of an "ugh element" moment with me and my friends. given that no other chat app (discord, slack, zulip, ...) has this issue, i find it pretty frustrating that the official answer is that it's intended behavior... |
Indeed. Plus it means the rest of your message won't be interpreted as markdown, which is often undesirable. I think a reasonable alternative would be requiring require a space after the |
We won't be maintaining our own markdown dialect, I suggest adding comments to element-hq/element-meta#330 that you would like to pick a markdown dialect which only treats blockquotes as |
Your use case
What would you like to do?
Express anger to my friends using ASCII emotes, such as
>:( >:[ >:c
and othersWhy would you like to do it?
Because I'm mad.
How would you like to achieve it?
Requiring a space between the '>' and the quoted text. Discord does this fwiw
Have you considered any alternatives?
Flipping my anger the other way,
):< ]:<
Additional context
The text was updated successfully, but these errors were encountered: