Summary
Guest user webinterface does not format messages properly.
Steps to reproduce
I’ve got a guest account at a customer site’s Mattermost instance. They are using Mattermost Enterprise Edition, version 6.3.1, and I’m accessing it through a VPN from a virtual machine in which Firefox ESR (currently 91) runs. Someone writes to me.
Expected behavior
When someone writes a multiline message to me with three accent-gravis characters to indicate preformatted text, I expect to be able to read this as preformatted text.
Observed behavior
I just see them as a bunch of proportional text all bunched together.
Debugging
With F12, I can see the message does not have any HTML-level markup, it’s just plain what the communication partner wrote, e.g.:
<div id="uwpfiuphqirhfirhfiuhrpihrv_message" class="post__body "><span>```
elif [ -f "${PROJECT}/pyproject.toml" ]; then
cd "$PROJECT"
# This will create a tarball with setup.py in subfolder `dist`
poetry build -f sdist
ARCHIVE_NAME="$(basename --suffix=".tar.gz" dist/*.tar.gz | head -n1)"
mv -v "dist/${ARCHIVE_NAME}.tar.gz" "/srv/www/tarballs/python/${ARCHIVE_NAME}~+git${COMMIT_NUMBER}.tar.gz"
cd -
```</span></div>
The linewraps and multiple spaces are correct in the HTML, but since the div does not have xml:space=“preserve” set, they’re gone in the display, of course. This means there’s both some HTML/CSS-level presentation missing as well as some server-side processing (splitting the message into regular soft-wrapped blocks and preformatted monospace blocks where the three accent gravēs are in the source).
Workaround-ish
I’ve put the following into my userContent.css:
@-moz-document domain(mattermost.customername.example.com) {
.post__body {
word-wrap:unset !important;
white-space:pre !important;
font-family:monospace !important;
overflow-x:scroll !important;
}
}
This makes all messages appear monospaced (which is no problem for me, as I prefer that kind of font anyway) and preformatted (which is a problem due to the missing soft linewraps in normal messages). But because of the missing information, better cannot be done in a workaround.