this post was submitted on 31 Jul 2024
461 points (98.7% liked)

Fediverse

27820 readers
842 users here now

A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).

If you wanted to get help with moderating your own community then head over to !moderators@lemmy.world!

Rules

Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration), Search Lemmy

founded 1 year ago
MODERATORS
 

Updated! Updates are shown in quote text like this. Some scores are updated following app updates.

An Apps Experiment

Cross-posted from https://lemmy.world/post/18159531

Introduction

This is an experiment I performed out of curiosity, and I have a few big disclaimers at the bottom. Basically, I've seen a lot of comments recently about one app or another not displaying something right. Lemmy has been around for a while now and can no longer be considered an experimental platform.

Lemmy and the apps that people use to access the platform have become an important part of people’s lives. Whether you are checking the app weekly or daily, and whether you use it to stay up on the news or to stay connected to your hobby, it’s important that it works. I hope that this helps people to see the extent of the challenge, and encourages developers to improve their apps, too.

How I did it

I wanted to investigate objectively how accurately each app displays text of posts and comments using the standard Lemmy markdown. Markdown is a standard part of the Lemmy platform, but not all apps handle it the same. It is basically what gives text useful formatting.

I used the latest release of each app, but did not include pre-releases. I only included apps that have released an update in the last 6 months, which should include most apps in active development. ~~I was unable to test iOS-exclusive apps, so they are not included either. In all, 16 apps met the inclusion criteria.~~

I also added Eternity, which is in active development, although it has not had a recent update. I was able to include several iOS apps thanks to testing from @jordanlund@lemmy.world – Thanks, Jordan! This made for 20 apps that were tested.

Each app was rated in 5 categories: Text, Format, Spoilers, Links, and Images. I chose these mostly based on the wonderful Markdown Guide from @marvin@sffa.community, which was posted about a year ago in !meta@sffa.community (here).

I checked whether each app correctly displayed each category, then took the overall average. Each category was weighted equally. Text includes italic, bold, strong, strikethrough, superscript, and subscript. Format includes block quotes, lists, code (block and inline), tables, and dividers. Spoilers includes display of hidden, expandable spoilers. Links includes external links, username links, and community links. Images included embedded images, image references, and inline images.

Thanks to input from others, I also added a test to see if lemmy hyperlinks opened in-app. There was a problem with using the SFFA Community Guide that caused some apps to be essentially penalized twice because there was formatting inside formatting, so I created this TEST POST to more clearly and fairly measure each app.

In each case, I checked whether the display was correct based on the rules for Lemmy Markdown, and consistent with the author’s intent. In cases where the app recognized the tag correctly but did not display it accurately, that was treated as a fail.

Results

Out of a possible perfect 10, 6 apps displayed all markdown correctly:

Alexandrite - 10.0

Connect - 10.0

Jerboa (Official Android client) - 10.0

Photon - 10.0

Summit - 10.0

Voyager - 10.0

Quiblr - 9.5

Arctic - 9.3

Interstellar - 9.1

Lemmuy-UI - 9.0

Thunder - 8.9

Tesseract - 8.6

mlmym - 8.0

Racoon - 7.6

Boost - 7.3

Eternity - 7.0

Lemmios - 6.9

Sync - 6.9

Lemmynade - 6.1

Avelon - 5.7

More details of testing here

Disclaimers

Disclaimers

I Love Lemmy Apps (and their devs)

Lemmy apps devs work very hard, and invest a lot in the platform. Lemmy is better because they are doing the work that they do. Like, a LOT better. Everyone who uses the platform has to access it through one app or another. Apps are the face of the entire platform. Whether an app is a FOSS passion project, underwritten by a grant, or generating income through sales or ads, no one is getting rich by making their app. It is for the benefit of the community.

This is not meant to be a rating of the quality or functionality of any app. An app may have a high rating here but be missing other features that users want, or users may love an app that has a lower rating. This is just about how well apps handle markdown.

This is pretty unscientific

You’ll see my methodology above. I’m not a scientist. There is probably a much better way to do this, and I probably have biases in terms of how I went about it. I think it’s interesting and probably has some valuable information. If you think it’s interesting, let me know. If you think of a better way, PM me and I’d be happy to share what I have so you don’t have to start from scratch.

My only goal is to help the community

I do think that accurately displaying markdown should be a standard expectation of a finished app. I hope that devs use this as an opportunity to shore up the areas that are lagging, and that they have a set of standards to aim for.

~~I don’t have any Apple things~~

~~Sorry. This is just Android and Web review. If someone would like to see how iOS apps are doing, please reach out and I’ll share how we can work together to include them.~~

you are viewing a single comment's thread
view the rest of the comments
[–] Blaze@sopuli.xyz 44 points 1 month ago (5 children)

Interesting to see that even Lemmy-UI does not display markdown completely correctly

[–] Nothing4You@programming.dev 45 points 1 month ago (6 children)
if you want to get fancy
you can even use undocumented tables
[–] AmbiguousProps@lemmy.today 18 points 1 month ago

This surprisingly works on boost.

[–] paraphrand@lemmy.world 12 points 1 month ago

Works on Voyager.

[–] ptz@dubvee.org 9 points 1 month ago (1 children)
[–] Nothing4You@programming.dev 9 points 1 month ago

just as great as lemmy-ui

[–] threelonmusketeers@sh.itjust.works 7 points 1 month ago (1 children)
[–] med@sh.itjust.works 2 points 1 month ago

Confirmed here on android

[–] Anafabula@discuss.tchncs.de 2 points 1 month ago (1 children)

Tables are a very common markdown extension most(?) popular markdown parsers support them

[–] Nothing4You@programming.dev 1 points 1 month ago (1 children)

for sure, but they're neither mentioned on https://join-lemmy.org/docs/users/02-media.html nor on the linked CommonMark tutorial.

[–] Anafabula@discuss.tchncs.de 2 points 1 month ago

Which is funny because the main part of that documentation is a Markdown table

[–] sjmarf@lemmy.ml 2 points 1 month ago

Footnotes^[Hello world!] are also undocumented.

[–] stormio@lemmy.ca 10 points 1 month ago

I wasn't sure if Lemmuy-UI in the results list was a typo or an alternative interface. Now I know. 😄

[–] gedaliyah@lemmy.world 9 points 1 month ago (1 children)

For some reason, Lemmy-UI does not convert usernames to links: @gedaliyah@lemmy.world

[–] Nothing4You@programming.dev 9 points 1 month ago (3 children)

it does, but only if you use the autocomplete feature. it's also a bit delayed without any indicator that it's loading.

if you type @gedal and wait a moment it'll load @gedaliyah@lemmy.world to be selected:

[–] gedaliyah@lemmy.world 15 points 1 month ago (3 children)

Yes, I'm not sure if that is meant to be a placeholder or a substitute for native user links. What it actually does is generate markup that converts the username into a web link, which is fine for most circumstances, but not ideal. A plaintext username should automatically link to the user. This creates an inconsistent behavior between posts depending on where (and when) they were typed.

In other words, it's a very helpful feature, but it is not recognizing and linking usernames.

[–] BentiGorlich@thebrainbin.org 6 points 1 month ago (1 children)

Actually that behaviour is very annoying to other platforms. Mbin for example can only link to the lemmy server this user is on and no longer the local profile of that user. Example: @ user @ lemmy.instance gets converted to [@ user @ lemmy.instance](https:// lemmy.instance/u/user so on mbin this does not open the profile of the user on the local server, but instead links the lemmy instance, so you leave your instance to view the profile.

(spaces included so this won't get converted to mentions, etc)

[–] JackbyDev@programming.dev 2 points 1 month ago (1 children)

Are those not two different users though? Joe at Hotmail and Joe at Gmail are different.

[–] BentiGorlich@thebrainbin.org 6 points 1 month ago (1 children)

Yes they are, but you have my profile on your server and you do not need to leave the server to view my profile... @ user @ lemmy.instance should link to https:// mbin.instance/u/@user@lemmy.instance and not to https:// lemmy.instance/u/user

[–] JackbyDev@programming.dev 2 points 1 month ago

I'll have to try on desktop, in the app it isn't very clear what exactly it's looking at to see profiles.

[–] threelonmusketeers@sh.itjust.works 4 points 1 month ago (1 children)

It's weird that community names are automatically rendered as links, but usernames aren't. Isn't it pretty much the same thing?

[–] BentiGorlich@thebrainbin.org 3 points 1 month ago

yeah exactly. On mbin it works this way and lemmy inserting the link breaks that. But it does it for communities in the community description sometime as well, though I don't know if it is just a user "error" or a lemmy error

[–] sjmarf@lemmy.ml 2 points 1 month ago (1 children)

Yeah, it's rather inconsistent. I opened an issue for it a while ago.

I hope they fix it soon. It would make tagging users way smoother and less clunky.

[–] JackbyDev@programming.dev 4 points 1 month ago

Compare the source of your comment to the one you're replying to. Those are two different things. I'd argue it's a workaround of anything.

[–] threelonmusketeers@sh.itjust.works 2 points 1 month ago* (last edited 1 month ago) (1 children)

What happens if you press tab or click on the suggested item at the point in your screenshot?

For me, it inserts the link at the cursor position, but doesn't replace the bit you've already typed, resulting in @gedal[@gedaliyah@lemmy.world](URL).

Anyone else have this issue?

[–] Nothing4You@programming.dev 2 points 1 month ago (1 children)

on firefox, if i type @gedal and click or press tab once it replaces the text with [@gedaliyah@lemmy.world](https://lemmy.world/u/gedaliyah) . the behavior is the same whether i hit tab, enter or click the text.

[–] threelonmusketeers@sh.itjust.works 2 points 1 month ago (1 children)

if i type @gedal and click or press tab once it replaces the text with [@gedaliyah@lemmy.world](https://lemmy.world/u/gedaliyah)

Ah, you are correct. It turns out that the issue I was encountering was a little more subtle.

If I type all the way to @gedaliyah@ and click or press tab once it replaces only the second '@', resulting in @gedaliyah[@gedaliyah@lemmy.world](https://lemmy.world/u/gedaliyah).

[–] Nothing4You@programming.dev 3 points 1 month ago (1 children)

It's not even just that. It seems that the extra @ acts as a separator, so you can't even autocomplete e.g. @threelonmusketeers@sh as that'll try to autocomplete @sh instead of taking the instance domain as part of the mention.

I've raised a GitHub issue for this now: https://github.com/LemmyNet/lemmy-ui/issues/2652

Thanks for investigating and opening a GitHub issue!

I hope they fix it soon, or else just fix the underlying issue to render @user@instance as markdown in the first place.

[–] maegul@lemmy.ml 3 points 1 month ago

Dunno ... I went to the linked page in the top post and everything seemed fine to me (using Lemmy-UI)

[–] dual_sport_dork@lemmy.world 2 points 1 month ago (3 children)

It doesn't display headings, I know that much.

#Heading

[–] maegul@lemmy.ml 11 points 1 month ago (1 children)

I'm not sure #heading is valid markdown (see, eg, Daring Fireball's "original" syntax page) ... and I've never seen it. I've always understood that the space was necessary, which I think makes sense for a number of reasons TBH

So ...

#This does not work

This does work

[–] gedaliyah@lemmy.world 3 points 1 month ago (1 children)

I know that it works on some sites (reddit for example). Generally, it is not preferred.

[–] maegul@lemmy.ml 4 points 1 month ago

Didn't know it worked on reddit. Generally it seems necessary to require the space as it disambiguates headings from hashtags, and also makes the raw text more readable.

[–] gedaliyah@lemmy.world 3 points 1 month ago (1 children)

In doing this I learned that there are "correct" but also "preferred" ways to use markdown. A heading should have a space after the # even though it is correct either way.

##Heading

Heading

These lines may be the same or different in different apps.

[–] dual_sport_dork@lemmy.world 1 points 1 month ago (1 children)

The thing of it is, if you just highlight some text and hit the heading button in the GUI, it doesn't include the space.

[–] gedaliyah@lemmy.world 1 points 1 month ago

Interesting. I never noticed that. As I said, it's technically correct but not preferred. I'll see if I can post a link about this later.