Closed lokesh-krishna closed 3 years ago
Should be pretty straightforward to implement this on Desktop, though we'll probably want to coordinate the release with Android/iOS.
It would be great to also support adding code blocks, inline code, and links!
This still keeps me on Skype for quick chats nowadays :(
I'm still happy to implement this feature, but I'm not willing to build it on all three platforms. I don't want to build another PR just for it to be rejected on the grounds of not wanting the feature. If I built this feature again, and it met the code standards you want, would it be merged?
You know what would be helpful for us? A comprehensive spec of the behavior you'd like, including the phones, including comparisons to the other mobile apps. We have other higher-priority stuff on our plate right now, but that spec would remove a lot of the design friction holding us back whenever we do consider this.
First thanks for taking time to respond, I know you and your colleagues are busy with so much more than this issue. I'm willing to help in additional areas beyond this single issue, but this is a feature I want so it seems like a good place to start and get my feet wet in the codebase.
Granted this is just my 2 cents on this, but here goes:
The underlying principle for me is that I as a user of Signal (and a strong advocate) would like formatting on my messages.
It's a strong desire, but it's non urgent. The primary use case of Signal (in my mind) is security, not features, but IMO the features are what push Signal from a project only used by enthusiasts to something the mainstream public can use. With that out of the way here is my probably flawed vision for formatting in messages:
Desktop (electron web app): Ideally we'd see something like what Github provides, a full featured editor with buttons that does the formatting for you, but for power users the ability to insert formatting via the keyboard. Markdown seems like the obvious choice.
Mobile: Same behavior, on mobile it might make sense to limit the number of UX options for formatting on the top level, but mobile isn't a second class client so having all the options (even if some is under a dropdown) and preserving the ability to use markdown to format the message would be ideal.
As for comparisons to other applications, my comparisons are a bit outdated because I switched to using Signal as my main messaging application and pulled my inner circle with me almost 2 years ago, I only use signal and texts now. I'm passionate about this feature because I spent 3 months evaluating other options and after weighing pros and cons chose signal. Many of my friends ask me often why signal doesn't support formatting like What'sApp does. I can look into some other apps in the near future, and come back.
Ultimately I believe limiting support to a subset of markdown is a mistake, because markdown degrades gracefully into text.
I was recently made aware of Signal by a friend and I wondered how I had overlooked it. I think it's because I was searching for chat clients that supported markdown. I wouldn't use a graphic toolbar (in fact, I'd rather not have one). Thanks for considering this feature!! :D And thanks for your hard work.
Thanks for hard work: app works and looks great. That said, yes, support for formatting, especially for code blocks, is very much needed.
I would also like to have this feature of Markdown (don't need any UI to manage it) people would just have to know the markdowns which are standard.
Lively convo over here, in case it hasn't been linked already: https://community.signalusers.org/t/font-styling-for-signal-messages-e-g-using-markdown/612
i agree- markdown support would be really nice. Signal makes it too easy to securely encrypt and send messages\files to friends and coworkers to not have at least some this feature set at our disposal. (it also is nice WHEN BEING INTENTIONALLY dramatic.) :wink:
Since for scientific workgroups this is also quite important: supporting LaTeX expression as part of markdown. This would make life sooo much easier.
As for the reserved character problem: To make this not confuse users who have no idea about markdown and wonder about reserved characters: I'm all for toggling the markdown mode with a button in the text field.
Also one thing I have in mind: when replying to a markdown message, when toggling the markdown mode in the reply field the code of the referred message should be shown and one should be able to split the messages on refers to up, so one could react on individual points of the message.
I think Signal-Desktop provides the ideal platform to implement this first, as it has an entire browser stack already integrated. This feature would imho justify all the bloat that comes with electron.
If one is more interested in the points I'm making I will provide mockups.
For users switching away from WhatsApp, the habit of typing in standard markdown is strong and switching to signal is the obvious choice but then the habits die hard
bump I wouldn't mind taking the time to make a PR for the iOS version if others are willing to take the responsibility of desktop and android, it seems clear from this thread that people are keen for some form of formatting
. Personally I'd like to avoid links though since it can be easy to send misleading/malicious links through markdown, but otherwise I think the rest of MD would be good to implement and only requires client side code.
Hi,
As I've explained on the signal community forum, I'm very happy to work on this for android, desktop, and iOS. I've explained my methodology and decisions there too, but it will not be hard to add addition styling options on top of my 'minimum' requirements.
Also explained there is my current status on this. After 2 days, in my spare time, I've got the rendering of styles working on android and desktop - very soon I will port the functions across to iOS too. My next steps (again explained at the forum) are to get previewing of stylings, then the style menu popup options working.
Currently my solution applies to bold (*bold*), italic (_italic_) and strikethrough (\~strikethrough~) - the reasons for deviating from commonmark explained in the forum post - but it will not be hard to expand on this, e.g. for `monospace`.
@SRugina Could you evaluate math expression support too eventually?
The code that evaluates math expressions would have to be written/used from a package, but feasibly the code I'm currently using can be used to detect the start and end of a math expression - then all one would have to do is use a package to evaluate the math expression within this range.
Currently, I do not plan to add that myself as it is beyond my goal of text styling for Signal.
@Esokrates I've never seen markdown esque formatting evaluate functions. Did you mean formatting math expressions?
Looking forward to this, especially links
I'm new to Signal and I'm floored that it doesn't have text-formatting. I thought this is such a basic feature of all chat apps! Like, really?
Not constructive, positive, or likely to promote getting this feature included @KeronCyst.
Okay, I guess I should say, "Yes, please add this."
To me, that doesn't carry anywhere near as much weight as "Literally every other app has this basic feature, even Hangouts (if on desktop)." The only no-format messaging system I can think of is SMS or systems based on SMS like GroupMe (and maybe LINE, way back then... I can't remember).
But I mean, whatever interpretation of my reaction will help more, sure.
And now you're just inviting the question of "if every other app is superior to your mind, why are you here?". To me, your tone is about the only way of ensuring your message carries no weight at all.
Can we please, please keep the discussion on topic so that this thread doesn't need to be locked?
"if every other app is superior to your mind, why are you here?"
Because I obviously want Signal to be superior, and I see its potential and would still like to use it; I was just floored by this matter when I found out on my own. Anyways, all blows have been delivered here, so carry on.
Just want to add that I use signal for most of my messaging (android and linux desktop) and would love to have basic markdown support. As many of the people I interact with are developers, as is myself, code blocks and inline code snippets would make a huge difference. I'm happy to help implement this feature as well.
While not having this support wouldn't make me stop using signal, I think it's something that could benefit everyone -- especially those migrating from other messaging apps that already do support markdown. First impressions are important.
I'd also love to see the support of ``` code quotes in Signal. Telegram supports it and it make shared code a lot more pleasant to read.
Coming from Matrix and Discord makes me miss this feature. Having it would definitely helpful in convincing others to use Signal :)
I'm seeing this being requested in various posts in the community since 2016 - I get that there are "more important features" being implemented, but after seeing stickers and other 'fluff' being added in, I'm surprised that this has yet to be done, especially since someone in this thread offered to implement it.
Inline styling support will help a lot in migrating people from WhatsApp. As things stand, the average user would consider this a limitation.
It has been confirmed that Signal is working on implementing this feature.
These things would really make the experience for my family and I complete
- Support for backups and transfer on Android. Not manual, > but automatic like iOS
- Support for ChromeOS via Android Tablet support
- Support for simple markdown like bold, strike through etc.
signal_app: Great list, weโre working on all of these!
Just was going to ask whether an external contributor may do that to get that feature finally in (as it would usually be with open source projects). But if they are already implementing it on their own, fine by me!
They've been super backlogged with the huge influx of users and @SRugina had been very busy with his main work. If you're qualified to take it on then I think you'd be able to get something together sooner than anyone else ๐
You can already do this with Unicode; cf. the Javascript-based YayText.com.
I switched from WhatsApp and Telegram to signal. I really miss bold text and code blocks (discussion with a friend of mine who is also coding). My daughter is not using Signal because "why using a messenger that is not even allowing bold text". I would donate 20 Euro for this feature!
You can already do this with Unicode; cf. the Javascript-based YayText.com.
Thanks, this is a good workaround. But I would really appreciate it (20 euros) if Signal added Markdown support.
I really wonder, why such an important feature (under user perspective) is missing. Do you cooperate with services like https://www.bountysource.com/ There users can donate for single GitHub issues and I already have donated for some other projects there.
I would like to be able to paste source code
You can already do this with Unicode; cf. the Javascript-based YayText.com.
Where exactly do we find this ~/.config/plasmashellrc
file and is the formatting local only to us? If the formatting is local-only then this doesn't matter.
To offer a great user experience (UX) and to increase the usability, users should have an easy way of formatting text (markdown). And this feature should be available for all platforms.
I'd also love to see the support of ``` code quotes in Signal. Telegram supports it and it make shared code a lot more pleasant to read.
This is the most important one. If I want to share something, like an email, I want the entire thing to be quoted and any links to be inactive, etc.
Sorry if I ask this question: when is this feature planned? If I see it correctly then it is not even planned for any release?
So, this discussion started almost 6 years ago, and no implementation yet? I know you're focused on security and privacy, that's why I switched, but if you keep ignoring user experience and quality of life improvements your retention will suffer. Most of my friends dropped it within the month, and the ones who stayed are using less and less.
So, this discussion started almost 6 years ago, and no implementation yet? I know you're focused on security and privacy, that's why I switched, but if you keep ignoring user experience and quality of life improvements your retention will suffer. Most of my friends dropped it within the month, and the ones who stayed are using less and less.
I think it's best to convince people to switch to Matrix. It's more like email, in the sense that it's an open standaard and you can use whatever client works with that standard. Let's say we finally get an RPM or an official Flatpak after 6 years, tomorrow you maybe want to switch to the Pinephone or Librem 5. Then we have the same problem again.
Being locked in to a software vendor sucks. We need open-source and open standards. With Matrix we can use whatever client we like. Element is quite a mature client. So, let's just convince people to switch to that and we don't have to have these conversations again. The community can then provide the features, clients and compatibility that's needed. The same ease and simplicity as with the email standard.
While I don't entirely disagree with this, and the approach Signal's taking WRT third-party integration makes it even harder to disagree with, the problem with Signal adoption (especially around UX for those used to more polish ala Telegram/WhatsApp) is far greater in the Matrix ecosystem. Which client do I use and why? Which homeserver do I join? WTF is a homeserver? What happens when my homeserver dies? To say nothing of UI UX.
Signal is the mainstream middle-road option. You don't get the corporate influence like with WhatsApp or the lack of privacy like with Telegram, but you also don't get the absolute freedom of a federated ecosystem or the polish of a corporate-sponsored solution. On balance, if you want any part of the network effect plus your privacy respected, the middle of the road is where it'll have to be. I have enough trouble getting friends and family to care about privacy etc without answers to the Matrix questions above.
We've seen it time and time again that community driven software suffers on the UI/UX side, and if you're part of the Linux community you'll know it very well. "Just use the terminal" or "Who cares if it's ugly? It works.". People were offended when users were asking to have smooth rounded borders on ubuntu when it was frankly a pixelated mess. The user side will always suffer, be limited or ignored entirely when there are functionality-based priorities to be addressed.
What people don't realise, don't care or conveniently forget about is that for your software to be dominant you need two things, popularity (user adoption) and good UX (user retention). UX is not just "this app is performant", it's mainly "this app is pleasant to use". And being pleasant to use is based mainly on the UI being fast, intuitive, polished and feature complete according to what people are used to at the time, which in this case means Whatsapp and Telegram.
Most people don't care about security, privacy or what's happening behind the scenes as long as it lets them accomplish their tasks without being a hindrance. The fact that Signal has the hardest parts already taken care of, which are popularity, security and privacy, and could have the best of both worlds but choose not to, is what will eventually drive me and many others away.
You can see above in this discussion TheMcMurder offering to build this feature even though his PR may be blocked again, where scottnonnenberg replies with:
"You know what would be helpful for us? A comprehensive spec of the behavior you'd like, including the phones, including comparisons to the other mobile apps. We have other higher-priority stuff on our plate right now, but that spec would remove a lot of the design friction holding us back whenever we do consider this."
So, a community member on an open source software board offers to develop a feature and instead of receiving the green light along with collaboration guidelines, they instead receive a task that will create a blocker for progress. In an ideal scenario, Signal would welcome the effort, review the PR and complete it themselves with the big part of the work already done.
We are talking about markdown support on the chat box and bubbles here, it's not some bleeding edge groundbreaking feature and shouldn't take more than 2 weeks to write a regex replace function that won't run if inside certain situations such as code blocks (```), especially because Discord, Slack, Whatsapp Telegram and every other modern chat software under the sun already has it. Instead, we've waited 5 and a half years.
Come on Signal devs, pay a bit more attention to the user side of things, please.
Can y'all please move the discussion to the community forum? Each message that isn't a step towards resolving the issue simply pings every single person who's subscribed to the issue with just noise with respect to what they're actually subscribed to. Seeing progress, not more of preaching to the choir or to hear about alternatives.
Just my 2 cents. I don't mind moving this conversation, but it's not like it's irrelevant to progress when this issue hasn't been worked on at all. Fragmenting the discussion and moving to another forum when people here are asking for progress and giving reasons for this progress to happen is also a way of blocking said progress and ensuring nothing happens, again.
i'd particularly love to see backticks for codeblocks and preview before send ;)
Lively convo over here, in case it hasn't been linked already: https://community.signalusers.org/t/font-styling-for-signal-messages-e-g-using-markdown/612
i agree- markdown support would be really nice. Signal makes it too easy to securely encrypt and send messages\files to friends and coworkers to not have at least some this feature set at our disposal. (it also is nice WHEN BEING INTENTIONALLY dramatic.) wink
I would like to bring this message and the link to the relevant community thread again to the forefront.
There is a lot of discussion going on and there are also updates regarding the feature. It's confirmed that this is being worked on and some complexities of PRs and making this happen are well explained.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Bump to keep the stale bot from closing. Many people still want this, myself included. ๐
Feature Description
There is currently no support to format text as italic, bold or to underline or strikethrough.
Screenshots
WhatsApp handles this really well on Android and iOS (have never used the web interface) though it would be better to implement Markdown tags than to come up with our own tags like WhatsApp did.
The way WhatsApp does it is that it turns
Into
This is already a filed issue on the Android repository: https://github.com/WhisperSystems/Signal-Android/issues/5534
This is to make the feature cross platform.