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

Fediverse

27910 readers
1 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 [email protected]!

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 @[email protected] – 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 @[email protected], which was posted about a year ago in [email protected] (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
[–] [email protected] 21 points 3 months ago (4 children)

I don't understand why there isn't a "markdown library" of some sort that software developers can just use in their app. I haven't looked too deep into this, but it has always seemed to me that every app must individually implement markdown display. Why?

[–] [email protected] 40 points 3 months ago (3 children)

Because markdown has committed the worst of old programming sins. It has no standard.

However I'm pretty sure that Lemmy has a standard so there's not really much excuse.

[–] ICastFist 16 points 3 months ago (1 children)
[–] [email protected] 10 points 3 months ago* (last edited 3 months ago) (2 children)

Funny how the competition between charger standards in the alt text was eventually solved with, you guessed it, another standard, called USB-C.

[–] [email protected] 3 points 3 months ago (1 children)

Lol. I wish XKCD showed date published.

[–] [email protected] 5 points 3 months ago

Explain xkcd shows the date published: 2011-07-20

The comic is now a teenager.

P.S. Pedantic rule on the capitalization of xkcd:

The preferred form is "xkcd", all lower-case. In formal contexts where a lowercase word shouldn't start a sentence, "XKCD" is an okay alternative. "Xkcd" is frowned upon.

[–] [email protected] 1 points 3 months ago (1 children)

I am fairly sure that the comic isn't that old. So I think usb-c is what it's alluding to.

[–] [email protected] 7 points 3 months ago

that the comic isn’t that old

That comic recently became a teenager. The first USB-C specifications weren't published until 2014.

[–] [email protected] 12 points 3 months ago

Lemmy documentation references CommonMark so I'm assuming that is the accepted standard, plus a few Lemmy specific things.

[–] [email protected] 3 points 3 months ago (1 children)

Isn't the base markdown standardized?

It's just that so many flavors advertise themselves as markdown+ flavor?

[–] brian 8 points 3 months ago (1 children)

only sort of.

this is the original document defining markdown, and you'll notice it doesn't really specify a lot of the things that have compatibility issues across different markdown processors, along with allowing arbitrary html which really depends on where you're showing it. There's a list of ambiguous syntax here.

CommonMark is as close to a standard as we have.

[–] [email protected] 1 points 3 months ago

Thanks for the info. I thought that markdownguide.org was the standard as explained in your link from the creator.

By using what is described in markdownguide, I've never encountered any issue with any markdown compatible text editor.

[–] JackbyDev 14 points 3 months ago

There are Markdown libraries. Many have small differences and many apps have their own custom additions though.

[–] [email protected] 10 points 3 months ago

The problem isn't that there are no libraries out there that parse Markdown. There are, in fact, plenty for all different languages. The issue is that every site has its own flavor of it. Lemmy does it one way, GitHub another, and something else does it completely differently yet again.

It is, unfortunately, kind of a mess.

[–] micahmo 3 points 3 months ago* (last edited 3 months ago) (1 children)

As one of the Thunder devs, I can say there are markdown libraries. Thunder is written in Dart/Flutter and there is a great library that we use.

https://pub.dev/packages/flutter_markdown

That said, and as others have mentioned, markdown is not as well standardized and it seems like just about every site renders it differently, so there are a lot of edge cases to handle. Lemmy also has several unique implementations of things, such as spoilers, superscript/subscript, and the ability to tag users/communities without a hyperlink.

In fact, one of the things Thunder failed on (table alignment) is a known bug in the markdown library we use. :-)

https://github.com/flutter/flutter/issues/109487

[–] [email protected] 2 points 3 months ago (1 children)

I see. Markdown badly needs a good standard, doesn't it.