Request for sync-up on markdown newline rendering
In ssb-markdown v4.0.0 the newline rendering was changed, from GFM-style to CommonMark-style. Before v4.0.0, ssb-markdown used ssb-marked with the breaks: true
option to use GFM-style linebreak-rendering. "Commonmark needs two spaces or a <br> to create a new line, GFM does newlines when you do a newline" [%glPwQU6...]. This is a breaking change in post rendering. I was reminded of this today when I saw %vZwqyoj... where it appears to me as a shell icon on each line but I think maybe they were intended to be on one line.
@christianbundy considered the old behavior a bug [%v6Cj1y1...], but I don't think it is a bug. Either way, I think it is safe to say that most of the hundreds of thousands of posts I have replicated so far were authored with the assumption they would be rendered that way. Changing it means that old messages are not rendered not as they were intended. It also means that messages composed with ssb-markdown v4.0.0 are not rendered as they were intended, by old or existing clients. Right now there is no straightforfoward way to render posts correctly, because to do so means you have to know which style of newline rendering they should use, and that can only be guessed at.
Previously I wrote: "Part of the value of the network I think is the corpus of message content, the data-lake, so to deprecate large amounts of existing content I would consider a shame" [%mTboZT8...]. I still think this. I don't think SSB should be a place where we look back on old content and think, oh, it's broken because it's old. SSB messages are immutable: they are supposed to stand the test of time. Things in this world are not permanent, but we can still try, and respect our attempts by treating historical content well and being mindful of breaking compatibility.
Current state of the clients: Patchbay uses ssb-markdown v4.0.0, and Patchwork uses it but not yet in the latest release. patchfoo and ssb-viewer use ssb-marked. git-ssb-web uses ssb-marked, patched [%Z2dr7bn...]. Decent uses ssb-markdown@^3.6.0. As for go-sbot
, patchless
, ngx-ssb-client
or others, I don't know. But this is potentially an issue of schema, not just clients.
I would like to request that ssb-markdown revert the line break behavior to GFM-style which is that a newline makes a newline (usually), since that is what most of the content on the network has been composed to assume.
If that is not acceptable, may I ask that ssb-markdown accept a flag to set which style of newline rendering to use. (ssb-marked
has such an option, breaks
, which is set to true
in patchfoo, ssb-viewer, git-ssb-web and ssb-markdown ≤ v3.6.0.) Then I would also ask Patchbay and Patchwork, if they still want to use CommonMark-style linebreak-rendering, to set a flag on posts they publish to indicate they are composed with that linebreak setting, and then render posts according to that flag, which patchfoo and ssb-viewer would then also do.
Either of those options would allow us to get back to more unified message rendering, except for of posts done recently in Patchbay and patchwork@master. Without such changes, we are stuck in the status quo which is inconsisent message rendering and what I think are unnecessary trade-offs between prioritizing old vs. new messages and users of different ssb clients/apps.
cc: #patchbay-dev #patchwork-dev #ssb-markdown @mix @mmckegg @christianbundy @arj @cryptix @ev