PleromaFE Patch Release: 2.11.1
PleromaFE 2.11.1 is a minor release of PleromaFE (Frontend)
Highlights
Small but important changes
- Long-standing bugs with popovers opening outside screen borders and empty screen when showing new posts on mobile are fixed.
- Emoji are no longer forced to be 1:1 squares, they can be wide (or tall), with maximum aspect ratio of 3:1. There is a way to circumvent that, however, if you really want to, he he he…
- If you don’t like it you can force 1:1 ratio in settings
- Autocomplete now sorts suggested users based on their latest activity, which means you won’t get extremely-old or unrelated alt accounts when searching for
@user. - If supported by backend and data for it is present, opening user profile will override wallpaper with that user’s one.
- Attachment description (alt-text) has been vastly improved, replacing old and broken “bottom bar” with a proper popover, gallery view description display is also improved
- You can now reply with a quote, or just attach a quote to a new status
Settings & User Highlight synchronization
All (almost all) settings are now synchronized between different browser sessions. Same happens with user highlight. Synchronization uses our CRDT implementation, meaning that changes made on one session (i.e. on phone) won’t conflict with changes made on another (i.e. on desktop). Changes are timestamped and most recent change takes precedence. This is the same technology as one used for pinned navigation items and pinned status actions.
Please note that there is a migration process - when session is opened with “unmigrated” settings, it will override all synchronized settings with older, unsynchronized ones and mark them as “migrated”. Only settings that were ever changed would be affected, not the entire thing. This means that there will be some instability upon initial use until all settings are migrated.
Not every setting should be synchronized, however, so right now there’s a list of exceptions that don’t get synchronized. In future we might implement proper user-configurable “local overrides” instead of hard-coded list, underneath it already supports it - it’s just a matter of making a non-confusing UI.
Admin User Management
Admin Dashboard just got a small upgrade, there’s now “Users” tab, showing list of all users (default filtering to local accounts only but you can see all known users if need be), their status (i.e. suggested, confirmed, etc), registration reason and email. User moderation menu got a little upgrade, too, allowing more actions on user profile as well as bulk actions on admin tab. Admins are also now able to quickly change post’s scope and sensitivity. Separate page was also added for showing ALL user’s posts, i.e. a “godmode” view, with toggle to see DMs.
Another feature of AdminFE ported over to Admin Dashboard
MFM (Markup Language for Misskey)
Our HTML parser/renderer now supports MFM attributes, correctly rendering associated CSS effects. This requires backend support (Akkoma should work but untested, Pleroma develop commit 86dd9663fc onwards) to actually parse the markdown and turn it into a HTML with data-mfm attributes.
Extra work has been put to make sure complex MFM animations and “MFM Art” renders correctly, as a result MFM imposes extra changes to rendered content:
- Emoji are not constrained by maximum 3:1 aspect ratio (wink wink)
- Emoji ignore “emoji scale” setting and instead follow text size scale.
Despite this, MFM might still not render exactly as on Misskey, with some issues that might never get fixed:
- Different font (and size) used
- Different unicode emoji font/graphics used
- Different HTML rendering (i.e. empty newlines/spaces removed in the beginning)
mfm-sparkleon misskey uses extremely fancy complex JS animation, we… just fake it with some unicode emoji in::beforeand::after. We might implement proper animation later.- Some tags like
mfm-unixtimeare not supported (yet?)
As part of original implementation, there’s a setting to make MFM scale with user emoji size setting, but since MFM artists tend to pad post with empty newlines (without :blank: emojis) this causes MFM animations to be cut-off.
All MFM animations are play-on-hover by default, just like GIFs (uses separate setting).
Not really related but code blocks now have prettier styling and don’t have word-wrapping.
Load Optimization & Error Handling
A lot of work was done behind the scenes to improve code quality and to optimize loading times. As a result two user-facing changes have been made:
- Lots of code was made to be loaded on-demand, primarily stuff that isn’t immediately visible or seldom-used, as well as administration stuff. As a result there might be some delay before parts of UI are loaded in (i.e. “Moderation” button on user profile might not be visible instantly). In general this means reduced initial “main chunk” size (currently ~135KiB after gzipping) and therefore faster initial load as well as saving on traffic.
- There is a global error modal - if there is some error happening in vue component a modal will be shown with error details. Usually those errors are benign and don’t affect user experience at all, but they still shouldn’t happen.
- As an added bonus we now detect and handle cases where server updated FE but user still has older version in cache, it should display modal telling user to refresh the page instead of… well nothing happening at all.
Sorta related; we’ve refactored ALL of our API code, making it much more consistent than before and improving capacity for proper error-handling. We’ve did extensive testing and test-driving of it but some things might have fallen through cracks, as it was the case with 2.11.1 patch release.
Changelog
Added
- Settings synchronization
- User highlight synchronization
- Initial MFM rendering support
- User administration + post scope/sensitivity admin change support
- Mention autosuggest now sorts by recent activity
- Non-square emoji support (toggleable by user)
- Add quoting by URL and in replies
- Displaying other user’s backgrounds (if supported by BE)
- Showing user tags (MRF policies for user + custom if present)
- Option to remove forced aspect ratio for user profiles (requested)
- Button to remove all drafts
- Version information now is also in about page
Changed
- Improved attachment description (alt text) input and display
- Reply/quote now is a radio group and wraps, fixes overflow on languages where labels are too wide
- Overall improved spacing in status action buttons and post form
- Personal note input is now bigger
- Dots status action button drops down instead of up to avoid hiding the action buttons
- Moved “edit pinned” to the bottom for status action buttons.
- Migrated to Vite 8 and optimized our imports, more stuff is loaded on-demand, reducing the initial load time and transfer size
- Logout confirm button is now dangerous
Fixed
- Occasional blank page when showing new posts
- Popovers opening outside of window’s boundaries
- Fix HTML attribute parsing for escaped quotes
- Fix emojis breaking user bio/description editing
- Repeater name overflowing content
- Navbar wide logo cropping search input
- User background upload failure no longer breaks new uploads + displays an error
- Importing theme from old theme editor
- Reply popover is now shown if replied-to status is muted
- Second language input not having header
- Post form’s bottom left buttons not showing their toggled state
- Some font overrides not working
- Fixed status action mute hiding itself on click
- Removed duplicate federationpolicy entry in admin tab
- Fix reply form crash when quote-reply settings are unavailable
- Danger buttons being too bright
Changelog for 2.11.1 patch release
2.11.1 release was made while I was writing this announcement, fixing a bug in 2.11.0
Fixed
- User note not working in 2.11.0 release