Use of markdown in snap metadata (summary / description)

We are already here. Removing this functionality would degrade the presentation of snaps on snapcraft.io.

It has not been argued that a web page’s worth of content should be presented in a description. Indeed, being able to link off to other pages keeps the description focused on the app’s merits.

Code blocks are useful to demonstrate the utility of your application through examples. Countless manpages and the success of tldr evidence this. Developers like Andrzej wouldn’t be using this if they didn’t think it would help people understand and be motivated to install their app.

It is also worth noting that code blocks are helpful in outlining post-install instructions. You can find many cases in the store walking the end user through connecting needed interfaces or placing assets in the right directory.

I believe the events were:

  1. Someone designed a specific format to ensure it would look good on the terminal
  2. The proposition was presented, and agreed to as a good start
  3. Something else was implemented instead
  4. People used the new formatting
  5. It now looks awful on the terminal

So, the pain was self-inflicted, and we need to fix it.

The suggested corrective action is:

  1. Fix the formatting ASAP, as already requested above, to ensure we don’t derail further
  2. Fix the formattings that are broken in the web to ensure they conform

We can then discuss further improvements to the formatting, but anything is pointless if we don’t follow through on our agreements. It’s also important to understand their rationale.

I think it’s fine to handle four-space indented blocks as mono-spaced code blocks. That will also look good on the terminal. I would suggest using the same logic as Discourse: needs to be indented by 3 spaces or more, and with an empty line above and one below.

1 Like

I had assumed (in absence of being able to do actual links inside a terminal) you would render inline links in a style similar to the shortcut reference links. Is that acceptable in a text renderer or does that transform the text too much? From an editors point of view the inline links are easier to write and manage.

I do not think we should rush into this.

  1. Taking features away from people sets a bad precedent.
  2. At some point we must accept that requiring presentation in all other clients match what’s possible in the terminal severely limits our ability to create a compelling experience in these richer environments.
1 Like

We are not rushing. The syntax proposed here is from September of 2017, and the awful presentation in the terminal is real, as anticipated.

Let’s please address this as a matter of urgency so we stop the improper syntax from being used and so that we can fix the terminal presentation for those already using it.

FWIW we have updated snapcraft.io in a demo URL with the following list:

  • Lists (* Foo)
  • Italics (foo)
  • Bold (foo)
  • Paragraph merging (consecutive lines are joined)
  • Auto-linking of literal URLs
  • No titled URLs
  • Code in sentence using single backtick (`)
  • No ``` backticks for code blocks
  • Support for code blocks with 3 spaces (for now) one line above and below the code block. We will add support for 3 or more spaces for code blocks shortly after.

You can check the changes in the following demo URL: https://snapcraft-io-canonical-websites-pr-1694.run.demo.haus/ , so we are ready on our side to release if everyone is happy.

Some example to look at:
https://snapcraft-io-canonical-websites-pr-1694.run.demo.haus/electron-mail
https://snapcraft-io-canonical-websites-pr-1694.run.demo.haus/fuzzy-repo-finder

1 Like

The syntax you proposed was in September 2017. There was further discussion through October and November, resulting in the proposal that included title URLs and code blocks. The feature went live at the end of January. Given that it’s been over a month and a half without a single end user complaint, perhaps this urgency is unwarranted.

We should first discuss and put ourselves on record accepting the implications of reverting, should that prove necessary. Removing title URLs and code blocks as backticks would break presentation for existing apps, create unanticipated work for the authors, and potentially leave an impression that future features may be taken away without notice.

I do not think we should treat that lightly.

There was a very specific rationale used for the proposed syntax, which has proven correct in practice rather than in theory. I don’t know how to say that more emphatically: we don’t want to have rich syntax that turns the terminal interactions into a mess.

Can we please stop arguing to thread carefully, and fix the problem right now before it spreads further?

1 Like

Hi,

It’s been a while, and since the last response, snapcraft.io has been working as agreed here.

Is there any possibility to consider expanding the capabilities as some people suggested here?

As a maintainer of snapcraft.io, I would love to stick to a standard like CommonMark, some of the work done previously has caused issues for users:

For comparison, we use CommonMark on charmhub.io on all the charms details pages and libraries, and we never had any issues with it.

Could we consider using a Markdown standard on snapcraft.io?

3 Likes

Another advantage of using a standard markdown is that you can reuse an existing library for the implementation and therefore be building on the back of someone else’s work instead of reinventing the wheel. This will reduce the burden on the snapcraft.io maintainers and allow for security coverage to be managed much easier.

2 Likes

This is a really bad take in my opinion. A lot of software on the store is difficult to understand how to use it, or there are required steps to follow before you can use it. This is not about replicating a webpage but to explain to users how to use our software. Yes there is a descriptive property, but there is also the requirement to inform users about how to use the app - I’d argue instructions are also description because it helps the user understand the requirements BEFORE they install the software so can make an informed decision on whether they want to do so. Without the abilities we’ve discussed here, particularly fenced code blocks and named hyperlinks, users will install complex apps and immediately uninstall or complain to the developer (or this forum) because they can’t drive it without the instructions.

Sure you could ignore that premise and people won’t use the store for apps that need instructional material to get going. Instead either the developer will ignore the snap store for being too difficult or they’ll ignore the description field entirely and not provide anything useful at all beyond a duplication of what they put in their summary.

One of the biggest marketing efforts of the Snap ecosystem has historically promoting the ease of developer experience. This discussion and the decision to restrict the description in these ways flies in the face of that messaging.

Also: named hyperlinks are an accessibility thing. With a plain hyperlink (URL only) people, visually impaired and otherwise, are unable to understand the purpose of the link.

1 Like