Releases: MoeraOrg/moera-client-react
Moera node & client 0.15.0
New Features
Universal URLs. These new URLs of Moera pages use a central redirector at moera.page
host and include a node name. Read the details in the documentation.
Direct Image Serving. To speed up the serving of images to the client, a new feature has been added allowing to configure the server to serve images directly from the local file system, without accessing the node. (In case you're using a separate web server as a reverse proxy.) Private images are assigned a random identifier that periodically changes to prevent unauthorized access. This also eliminates the need for authentication when accessing images directly, resolving issues such as images failing to load when switching from Wi-Fi to mobile data.
Sorting Notifications by Importance. Now, more important notifications (such as comments and mentions) will appear higher in the list compared to less important ones (like reactions). This applies only to unread notifications. Once a notification is viewed, its position remains unchanged. This behavior can be disabled in the Settings. (thanks to @Drakoniha for the idea and @Orbb1974 for the feedback)
Freezing Inactive Nodes. Nodes whose owners haven't accessed them in the last year are now frozen. This means notifications to these nodes are queued and not processed by the node itself, only recorded in the database. If a node remains inactive, old notification records are purged without processing. This stops the frozen node from building the Newsfeed and frees up other nodes from unnecessary work. However, the content of the frozen node continues to be served as usual. When an administrator accesses a frozen node, it's unfrozen, all queued notifications are processed, and the Newsfeed is built as soon as possible.
FCM Relay. Notifications for mobile clients can now be sent through relays, acting as intermediaries between the Moera network and centralized message delivery systems. The first such relay is built for Firebase Cloud Messaging (FCM), used in Android. For more details, see the relay description.
Account Deletion Requests. A mechanism has been added to send requests to the provider for account (node) deletion. This capability is required by Google Play and legislation in some countries.
OAuth2. A new mechanism has been added that allows users to grant specific administrative permissions to third-party applications. Administrative privileges are divided into various scopes to enable fine-grained access control. To gain access, a third-party application must first register a Moera name and then send an OAuth2 request using a simplified flow. Once approved, the application can perform administrative tasks on the user's node using its own authentication tokens. For more details, please refer to the documentation.
Speed improvements
- Improved Redux selectors to avoid unnecessary re-rendering of React components.
- Made client initialization process faster.
- Do not request information about the same node many times.
- Migrated from create-react-app scripts.
- Updated all dependencies that had security issues.
- Replaced some minor dependencies with our own code.
- Reduced size of the main bundle of the client by lazy-loading parts of the code that are not needed on the start.
- Moved WebSockets events processing code to a web worker.
- Precompile JSON schemas and perform validation in a web worker.
- Do not build FontAwesome icon library on the start, because it blocks the main thread for a while.
- Pass node name in
X-Moera
header. - Avoid duplicate requests to the naming server. Cache names for several naming servers and do not clean the cache after switching user.
- Do not show a loading indicator if loading is fast enough.
- The Newsfeed is now stored in the client's memory all the time, allowing going back to it quickly.
- A service worker has been added for caching client code, frequently used images, and naming server responses. The client now starts quickly even with poor connectivity.
- Database queries have been optimized, resulting in faster execution of many queries.
- Caching of information about images attached to posts or comments has been implemented.
Other Changes
- Browser add-on support removed.
- Node now requires Java 17 for running.
- Developers' naming server is now used in development environments.
- Converted all React components to be functional and use React hooks.
- Generation of Node API classes, JSON schemas and routines in TypeScript and Python from Node API definition in YAML.
- Improved the Node API documentation.
- Improved debug logging of Redux actions, making possible to see actions that caused them.
- Made WebSockets connection more reliable.
- Improved accessibility of buttons that have no text on them.
- Set correct dimensions of image placeholders in the text of posts/comments to avoid layout shifts when loading images.
- Use more convenient wording: "create a blog" instead of "sign up", and "log in/out" instead of "connect/disconnect".
- A lot of refactoring in the client.
- Less punctuation and mathematical characters are now allowed in node names (thanks to @eliduvid[Eliyahu Duvidzon] for proposal).
- The debug log now contains more information, enabling tracking of the processing and timing of each individual request. Statistics on requests' execution time throughout the server's uptime have also been added.
- Part of the Novacrypto project's code has been migrated to
moera-node
due to the repository's demise. - Errors in sitemap generation have been fixed, and sitemap delivery to clients has been sped up, improving search engine indexing.
- Duplicate pages (those with multiple addresses) and feeds have been excluded from search engine indexing. Only posts, comments, and general blog information remain indexed.
- A universal mechanism for executing asynchronous tasks with persistent state, recovery after failures and server restarts, error handling, and various error recovery options has been implemented. All asynchronous tasks now utilize this mechanism.
- When grouping multiple comment notifications into one, the link now points to the first of these comments rather than the last.
- Comment notifications are no longer grouped with those already read.
- Unread reactions and comment notifications are now grouped, even if significant time has passed between them.
- A universal mechanism for managing pop-up dialogs and dropdown menus has been implemented, allowing closing them one by one in the order of opening — by clicking outside the dialog, the Esc key, and the "Back" button on mobile devices.
- A button has been added to the feed, allowing quick skipping of all pinned posts and jumping to the first non-pinned one. (thanks to @tigra[Tigra] for the idea)
- An error preventing the hiding of multiple paragraphs of text under a spoiler has been fixed.
- Hashtags are now treated as regular text when pasted from Facebook.
- Emojis consisting of multiple characters are now correctly processed when pasted from Facebook.
- A registration button has been added to the login dialog.
- An error displaying other users' avatars in comments in the Web UI has been fixed.
- An error causing the cursor to disappear when selecting a name from the list has been fixed.
- Remove escaping backslash only when it prepends a smiley (thanks to @tigra[Tigra] for reporting).
- Allow
<strike>
tag. Use<s>
for strikeout in the editor in HTML mode (thanks to @Igor.braginsky[Igor Braginsky] for reporting). - The word
complain
in the API has been replaced withcomplaint
everywhere.
Moera node & client 0.15.0-beta1
New Features
Direct Image Serving. To speed up the serving of images to the client, a new feature has been added allowing to configure the server to serve images directly from the local file system, without accessing the node. (In case you're using a separate web server as a reverse proxy.) Private images are assigned a random identifier that periodically changes to prevent unauthorized access. This also eliminates the need for authentication when accessing images directly, resolving issues such as images failing to load when switching from Wi-Fi to mobile data.
Sorting Notifications by Importance. Now, more important notifications (such as comments and mentions) will appear higher in the list compared to less important ones (like reactions). This applies only to unread notifications. Once a notification is viewed, its position remains unchanged. This behavior can be disabled in the Settings. (thanks to @Drakoniha for the idea and @Orbb1974 for the feedback)
Freezing Inactive Nodes. Nodes whose owners haven't accessed them in the last year are now frozen. This means notifications to these nodes are queued and not processed by the node itself, only recorded in the database. If a node remains inactive, old notification records are purged without processing. This stops the frozen node from building the Newsfeed and frees up other nodes from unnecessary work. However, the content of the frozen node continues to be served as usual. When an administrator accesses a frozen node, it's unfrozen, all queued notifications are processed, and the Newsfeed is built as soon as possible.
FCM Relay. Notifications for mobile clients can now be sent through relays, acting as intermediaries between the Moera network and centralized message delivery systems. The first such relay is built for Firebase Cloud Messaging (FCM), used in Android. For more details, see the relay description.
Account Deletion Requests. A mechanism has been added to send requests to the provider for account (node) deletion. This capability is required by Google Play and legislation in some countries.
Other Changes
- The debug log now contains more information, enabling tracking of the processing and timing of each individual request. Statistics on requests' execution time throughout the server's uptime have also been added.
- Database queries have been optimized, resulting in faster execution of many queries.
- Caching of information about images attached to posts or comments has been implemented.
- Part of the Novacrypto project's code has been migrated to
moera-node
due to the repository's demise. - Errors in sitemap generation have been fixed, and sitemap delivery to clients has been sped up, improving search engine indexing.
- Duplicate pages (those with multiple addresses) and feeds have been excluded from search engine indexing. Only posts, comments, and general blog information remain indexed.
- A universal mechanism for executing asynchronous tasks with persistent state, recovery after failures and server restarts, error handling, and various error recovery options has been implemented. All asynchronous tasks now utilize this mechanism.
- When grouping multiple comment notifications into one, the link now points to the first of these comments rather than the last.
- Comment notifications are no longer grouped with those already read.
- Unread reactions and comment notifications are now grouped, even if significant time has passed between them.
- The Newsfeed is now stored in the client's memory all the time, allowing going back to it quickly.
- A universal mechanism for managing pop-up dialogs and dropdown menus has been implemented, allowing closing them one by one in the order of opening — by clicking outside the dialog, the Esc key, and the "Back" button on mobile devices.
- A service worker has been added for caching client code, frequently used images, and naming server responses. The client now starts quickly even with poor connectivity.
- A button has been added to the feed, allowing quick skipping of all pinned posts and jumping to the first non-pinned one. (thanks to @tigra[Tigra] for the idea)
- An error preventing the hiding of multiple paragraphs of text under a spoiler has been fixed.
- Hashtags are now treated as regular text when pasted from Facebook.
- Emojis consisting of multiple characters are now correctly processed when pasted from Facebook.
- A registration button has been added to the login dialog.
- An error displaying other users' avatars in comments in the Web UI has been fixed.
- An error causing the cursor to disappear when selecting a name from the list has been fixed.
- The word
complain
in the API has been replaced withcomplaint
everywhere.
Moera node & client 0.15.0-beta0
New features
- Universal URLs. These new URLs of Moera pages use a central redirector at
moera.page
host and include a node name. Read the details in the documentation.
Improvements
- Browser add-on support removed.
- Node now requires Java 17 for running.
- Developers' naming server is now used in development environments.
- Converted all React components to be functional and use React hooks.
- Generation of Node API classes, JSON schemas and routines in TypeScript and Python from Node API definition in YAML.
- Improved the Node API documentation.
- Improved debug logging of Redux actions, making possible to see actions that caused them.
- Made WebSockets connection more reliable.
- Improved accessibility of buttons that have no text on them.
- Set correct dimensions of image placeholders in the text of posts/comments to avoid layout shifts when loading images.
- Use more convenient wording: "create a blog" instead of "sign up", and "log in/out" instead of "connect/disconnect".
- A lot of refactoring in the client.
- Pass node name in
X-Moera
header. - Less punctuation and mathematical characters are now allowed in node names (thanks to @eliduvid[Eliyahu Duvidzon] for proposal).
Speed improvements
- Improved Redux selectors to avoid unnecessary re-rendering of React components.
- Made client initialization process faster.
- Do not request information about the same node many times.
- Migrated from create-react-app scripts.
- Updated all dependencies that had security issues.
- Replaced some minor dependencies with our own code.
- Reduced size of the main bundle of the client by lazy-loading parts of the code that are not needed on the start.
- Moved WebSockets events processing code to a web worker.
- Precompile JSON schemas and perform validation in a web worker.
- Do not build FontAwesome icon library on the start, because it blocks the main thread for a while.
- Avoid duplicate requests to the naming server. Cache names for several naming servers and do not clean the cache after switching user.
- Do not show a loading indicator if loading is fast enough.
Bugfixes
- Remove escaping backslash only when it prepends a smiley (thanks to @tigra[Tigra] for reporting).
- Allow
<strike>
tag. Use<s>
for strikeout in the editor in HTML mode (thanks to @Igor.braginsky[Igor Braginsky] for reporting).
Moera node & client 0.14.0
New features
Link previews. When you insert a link into the text of a post or comment, a special panel appears below it: an image, a title, and a brief description of what the link leads to. In Moera, a post/comment can have several links with previews. A post/comment can have both attached images and link previews at the same time. You can choose which links to show previews for (using the "Links" button under the editor), delete previews (click the cross in the upper right corner) and edit the preview text (click the pencil there).
Access permissions. Access permissions support has been added everywhere possible. The full extent of possibilities can only be seen through the API, because a UI with all of these features would look like a cockpit. Now it is possible to limit access to almost everything, including individual reactions. Upper-level users (admins, post authors, and comment authors) can override access permissions defined by subordinates and limit their ability to limit possibilities 😉
Access categories: everybody, registered users only, subscriptions only, friends (see below), a particular group of friends, only me.
What can be tuned:
- Visibility of a post.
- Visibility of comments, including hiding them completely.
- Limiting the circle of people who can add comments, up to disabling comments.
- Hiding/unhiding comments one-by-one - can be made by both comment's author and post's author.
- It is possible for post's author to hide all comments automatically and reveal them later one-by-one or all at once.
- Switch all reactions on/off, or only negative ones.
- Visibility of the e-mail address in the profile.
- Hiding/showing the lists of subscribers, subscriptions, friends, banned users etc. completely or one-by-one - can be made by both blog's owner and the subscriber.
Friends. Made possible to add other users to friends and to create groups of friends. It means you are able to write "friends only" posts or you can enable commenting to friends or to a group of friends only etc. Friends and groups of friends may be visible to you, to the members of the group or to everybody else. Also it is now possible to write posts "only for those who I'm subscribed to" and to assign other permissions to them.
Subscription button now allows not only to subscribe, but also to add to friends and to choose groups of friends. And a separate menu item was added there: ask a user to subscribe to you or to add you to his/her friends. It is possible to attach a short message to the request. Notifications have been also upgraded: now there are buttons in notifications about you have been subscribed to, added to friends or asked about something. These buttons allow to subscribe back or add to friends immediately.
People page has been rewritten. It now contains lists of friends, groups of friends and those who added you to friends. Icons next to the name show that the friendship is mutual or that the subscriber is your friend etc. Advanced management tools are shown to those who have more than 12 subscriptions or friends. They allow to find a person by name, select several persons and perform an operation on them: subscribe/unsubscribe, friend/unfriend, change their groups of friends. People are now arranged in the list in the order of closeness to you - those you interact with more often are displayed first. But there is a button to order them alphabetically.
Ban. Now it is possible to prohibit a particular user from adding comments to your posts, to prohibit from adding reactions to your posts, to hide comments by this user in all discussions (including discussions in blogs of others) or all of this together. The ban may be limited to a particular period of time or be permanent. The ban may be related to a particular post (i.e. it is possible to remove a user from one specific discussion) or to all of your posts. To kick a user from a specific discussion, open the menu of some of his comments. To ban a user globally, press the friend/subscribe button. The banned user will be notified about this.
The list of banned and those who banned you is shown on the People page. This list is public by default, but you can hide it. You can add a message to the ban, to explain the reason of the ban. This message will be sent to the banned and will be shown on the People page.
"Show hidden buttons" button allows to reveal the comments of the users hidden by you at any moment.
Sheriffs is a voluntary moderation mechanism in the decentralized network. If you allow the sheriff to moderate your blog, he will be able to see all your posts (except the ones visible to you only) and mark the posts or comments that, as he thinks, violate the rules. For now, there is only one sheriff in the Moera network - the one enforcing the rules of Google Play. This is required by Google as a condition to allow the Moera application to Google Play application store. The blogs not allowing sheriff to moderate them will not be shown in the Moera application installed from Google Play. Posts and comments marked by the sheriff will also be hidden. But outside the application - when accessing Moera through a browser or any other application - all these blogs, posts and comments will be accessible.
Any user of the application may complain to the sheriff about violation of the rules by any post or comment. All complaints are public by default. The user may ask not to show his complaint to others, in this case the complaint will be hidden till the sheriff's decision. All further hiding of the complaint is at the discretion of the sheriff, but, in most of the cases, the sheriff will leave the complaint public.
Rearranged Settings. Settings arranged into groups, laid out in convenient order etc. For numeric settings, the allowed range is shown. Added caching of settings on the client and binding some settings to a particular device or device type (desktop/mobile).
Translation to other languages. Added UI localization mechanism and added translations to Russian, Ukrainian and Polish (partially, thanks @tigra[Tigra]). If you wish to take part in other translations or to make corrections, you are welcome at: https://app.tolgee.io/projects/1120 User's gender (if defined) is now taken into account when formatting messages. The default language is figured out automatically from browser settings and may be changed on Settings page or when signing up.
Internal mechanism of subscriptions is rewritten. Two concepts are now separate: "user's subscriptions" - those the user asked for and controls directly, and "machine's subscriptions" - those are part of interactions between nodes and not visible to the user. This separation allows to extend user's abilities: for example, to subscribe to updates of a post - the user will receive notifications when the post was edited. But this feature was not added to the UI yet.
Now you can also unfollow comments to your own post.
Lists of users. Any node may keep lists of users, and all other nodes can read these lists, search in them and subscribe to them to receive notifications about changes. The lists may be used, for example, to fight spam or to create decentralized communities. The sheriff uses such a list to inform all nodes that some specific user violates the rules too often, and because of that all his comments should be marked by the sheriff's mark automatically.
Plugins (add-ons). Plugin is a web application that connects to a Moera server (at server level or at particular node level). It differs from a script in that, in addition to performing regular operations, it can receive notifications from the server about various events (comment added, post updated etc.), can extend server API and have settings.
Server-level plugins require the root secret for authentication, so only server owner may run them. Node-level plugins may be added by any user on their node - they need to generate an authentication token and pass it to the plugin or to the script. There is now an UI on the Settings page for this.
Smaller changes
- Allowed to embed
<iframe>
from codepen.io. - Allowed to embed images from gifer.com and giphy.com.
- Long titles of posts are truncated when displayed in the feed.
- Titles in Hebrew/Arabic are now right-aligned.
- Special icons have been added when a post or comment is briefly mentioned in notifications: "chain" - link, "scroll" - quote, "picture" - image, "camera" - video.
- Improved automatic detection of image formats and rotation - fixed nasty bugs at image loading and when an avatar is cut (thanks to @uinm[Oleksandr Pushkar] and @edjekora).
- Possibility to hide posts from viewing without a client, possibility to deny indexing of posts by search engines (thanks to @zera for the idea).
- Pasting images from the clipboard (thanks to @eliduvid[Eliyahu Duvidzon] for the implementation).
- When returning from a post to the feed, a small part of the feed is now shown above the post (thanks to @Drakoniha[Дракониха] for the proposal).
- When viewing a gallery, a message is now shown when moving from the last image in the gallery back to the first one (thanks to @Drakoniha[Дракониха] for the proposal).
- Added REST API documentation in OpenAPI format. It is located at
/moera/api-docs
. At/moera/api-ui.html
you can see it in a more user-friendly form. - Provider can now receive mails about registration of new users.
- Provider can now subscribe all new users to some blog.
- Click on Moera logo in the top-left corner now opens your Newsfeed (thanks @Orbb1974[Orbb_1974] for the proposal).
- Added new "Tired" reaction.
- Context menu of a post is now located at the bottom of the post also.
Moera node & client 0.14.0-rc0
Release candidate
Ban. Now it is possible to prohibit a particular user from adding comments to your posts, to prohibit from adding reactions to your posts, to hide comments by this user in all discussions (including discussions in blogs of others) or all of this together. The ban may be limited to a particular period of time or be permanent. The ban may be related to a particular post (i.e. it is possible to remove a user from one specific discussion) or to all of your posts. To kick a user from a specific discussion, open the menu of some of his comments. To ban a user globally, press the friend/subscribe button. The banned user will be notified about this.
The list of banned and those who banned you is shown on the People page. This list is public by default, but you can hide it. You can add a message to the ban, to explain the reason of the ban. This message will be sent to the banned and will be shown on the People page.
"Show hidden buttons" button allows to reveal the comments of the users hidden by you at any moment.
Sheriffs is a voluntary moderation mechanism in the decentralized network. If you allow the sheriff to moderate your blog, he will be able to see all your posts (except the ones visible to you only) and mark the posts or comments that, as he thinks, violate the rules. For now, there is only one sheriff in the Moera network - the one enforcing the rules of Google Play. This is required by Google as a condition to allow the Moera application to Google Play application store. The blogs not allowing sheriff to moderate them will not be shown in the Moera application installed from Google Play. Posts and comments marked by the sheriff will also be hidden. But outside the application - when accessing Moera through a browser or any other application - all these blogs, posts and comments will be accessible.
Any user of the application may complain to the sheriff about violation of the rules by any post or comment. All complaints are public by default. The user may ask not to show his complaint to others, in this case the complaint will be hidden till the sheriff's decision. All further hiding of the complaint is at the discretion of the sheriff, but, in most of the cases, the sheriff will leave the complaint public.
Lists of users. Any node may keep lists of users, and all other nodes can read these lists, search in them and subscribe to them to receive notifications about changes. The lists may be used, for example, to fight spam or to create decentralized communities. The sheriff uses such a list to inform all nodes that some specific user violates the rules too often, and because of that all his comments should be marked by the sheriff's mark automatically.
- The friend/subscribe button now shows the most important information about your relations with the user: ban, friendship, subscription. All other information you can see after pressing the button.
- Added a button on the People page to create groups of friends.
- Polish translation added (thanks to
@tigra[Tigra]
).
Moera node & client 0.14.0-beta3
Beta release
Friends. Made possible to add other users to friends and to create groups of friends. It means you are able to write "friends only" posts or you can enable commenting to friends or to a group of friends only etc. Friends and groups of friends may be visible to you, to the members of the group or to everybody else. Also it is now possible to write posts "only for those who I'm subscribed to" and to assign other permissions to them.
Subscription button now allows not only to subscribe, but also to add to friends and to choose groups of friends. And a separate menu item was added there: ask a user to subscribe to you or to add you to his/her friends. It is possible to attach a short message to the request. Notifications have been also upgraded: now there are buttons in notifications about you have been subscribed to, added to friends or asked about something. These buttons allow to subscribe back or add to friends immediately.
The People page has been rewritten and now contains lists of friends, groups of friends and those who added you to friends. Icons next to the name show that the friendship is mutual or that the subscriber is your friend etc. Advanced management tools are shown to those who have more than 12 subscriptions or friends. They allow to find a person by name, select several persons and perform an operation on them: subscribe/unsubscribe, friend/unfriend, change their groups of friends. People are now arranged in the list in the order of closeness to you - those you interact with more often are displayed first. But there is a button to order them alphabetically.
Internal mechanism of subscriptions is rewritten. Two concepts are now separate: "user's subscriptions" - those the user asked for and controls directly, and "machine's subscriptions" - those are part of interactions between nodes and not visible to the user. This separation allows to extend user's abilities: for example, to subscribe to updates of a post - the user will receive notifications when the post was edited. But this feature was not added to the UI yet.
Now you can also unfollow comments to your own post.
- Added REST API documentation in OpenAPI format. It is located at
/moera/api-docs
. At/moera/api-ui.html
you can see it in a more user-friendly form. - Provider can now receive mails about registration of new users.
- Provider can now subscribe all new users to some blog.
- Click on Moera logo in the top-left corner now opens your Newsfeed (thanks
@Orbb1974[Orbb_1974]
for the proposal). - Added new "Tired" reaction.
- Context menu of a post is now located at the bottom of the post also.
Moera node & client 0.14.0-beta2
Beta release
Plugins (add-ons). Plugin is a web application that connects to a Moera server (at server level or at particular node level). It differs from a script in that, in addition to performing regular operations, it can receive notifications from the server about various events (comment added, post updated etc.), can extend server API and have settings.
Server-level plugins require the root secret for authentication, so only server owner may run them. Node-level plugins may be added by any user on their node - they need to generate an authentication token and pass it to the plugin or to the script. There is now an UI on the Settings page for this.
Rearranged Settings. Settings arranged into groups, layed out in convenient order etc. For numeric settings, the allowed range is shown. Added caching of settings on the client and binding some settings to a particular device or device type (desktop/mobile).
Translation to other languages. Added UI localization mechanism and added translations to Russian and Ukrainian. If you wish to take part in other translations or to make corrections, you are welcome at: https://app.tolgee.io/projects/1120 User's gender (if defined) is now taken into account when formatting messages. The default language is figured out automatically from browser settings and may be changed on Settings page or when signing up.
- Fixed bugs (the last ones, I hope) in avatar cropping (thanks to @edjekora for reporting).
- Allowed embedding images from gifer.com and giphy.com.
- Fixed bug when creating link previews in comments to other users' posts.
- When returning from a post to the feed, a small part of the feed is now shown above the post (thanks to @Drakoniha[Дракониха] for the proposal).
- When viewing a gallery, a message is now shown, when moving from the last image in the gallery back to the first one (thanks to @Drakoniha[Дракониха] for the proposal).
- Fixed bug when shortening a post title for displaying in a feed, if the title contains emojis (thanks to @tigra[Tigra] for the reporting).
- ...and a lot of other bugs fixed.
Moera node & client 0.14.0-beta1
Beta release
- Access permissions. Access permissions support has been added everywhere possible. The extent of possibilities can be seen only through API, because UI with all these features would look like a cockpit. Now it is possible to limit access to almost everything, including single reactions. Upper-level users (admin, post's author, comment's author) may override access permissions defined by subordinates and limit their possibilities to limit possibilities 😉
Access categories available for now: everybody, registered users only, only me. Friends and groups of friends will be added soon. Features added to UI:- Changing visibility of a post.
- Changing visibility of comments, including hiding them completely.
- Restricting the category of those who can add comments, or disabling the comments.
- Hiding/unhiding comments one-by-one - can be made by both comment's author and post's author.
- It is possible for post's author to hide all comments automatically and reveal them later one-by-one or all at once.
- Switch all reactions on/off, or only negative ones.
- Changing visibility of the e-mail address in the profile.
- Hiding/showing the lists of subscribers and subscriptions completely or one-by-one - can be made by both blog's owner and the subscriber.
- Improved automatic detection of image formats and rotation - fixed nasty bugs at image loading and when an avatar is cut (thanks to @uinm[Oleksandr Pushkar]).
- Many improvements in creation of link previews.
- Possibility to hide posts from viewing without a client, possibility to deny indexing of posts by search engines (thanks to @zera for the idea).
- Pasting images from the clipboard (thanks to @eliduvid[Eliyahu Duvidzon] for the implementation).
Moera node & client 0.14.0-beta0
Beta release
Link previews:
- There may be previews of several links per post/comment;
- A post/comment may have both link previews and attached images;
- You may choose which links to preview;
- You may edit a link preview text.
Moera node & client 0.13.0
New features
Images in posts and comments. Now you can attach images to posts and comments and even insert them into the text. Number of images per post/comment is not limited. For an inserted image, you can choose its size and alignment, including text wrapping. It is possible to add three types of captions to images: (1) a caption under the image when it is inserted into text; (2) a tooltip shown when the image is hovered by the cursor; (3) a description, that is shown when viewing the enlarged image (see below).
Images may be uploaded from computer/mobile device ("Upload images" button) or copied from the Internet ("Copy image" button).
Both lossy (JPEG, WebP) and lossless (PNG, GIF) image compression formats are supported. When writing a post, uncheck "Compress images" before uploading an image to upload it in high resolution.
Click on an image to open it enlarged. On the same screen you can make it larger/smaller using buttons or gestures on mobile. You can also share the image, get a direct link to it or download it. In contrast to other social networks, direct link to an image in Moera is permanent - it will not stop working after some period of time.
Reactions may be added to individual images. API supports comments to images also, but they have not been added to the client interface to keep it simple.
Use a special button to view all images attached to a post organized in a feed.
Donations. Every user can now add to his/her profile one or more links for collecting donations. Besides the link itself, you can add a description and a QR-code. In this case "Donate" button will be shown in the user's profile, feed header and in the user's details pop-up. Click "Donate", choose a way to donate from the list and follow to payment. User's preferred way of donation may be set in Settings - if it is available, it will be shown first. Thanks Anton Kovalenko for the idea.
New formatting
- Allowed embedding documents from
docs.google.com
. - Allowed to use the following Bootstrap classes in the text:
bg-*
,border-*
,text-*
,fs-*
,float-*
,table-*
. These classes make possible to change text background and color, to set a border, alignment, font size and to decorate tables.
Smaller changes
- Click on avatar in a post, comment or in the top-right corner of the page now opens the user's profile. In notifications such behaviour is disabled by default, but may be enabled in Settings.
- Number of posts written by the user and date/time of the latest post have been added to the user's details pop-up.
- Post author's reaction to comments under the post is now shown separately from reactions of others.
- "Copy text" has been added to posts' and comments' menu. It allows to copy text of the post/comment with formatting (including the inserted images) or without it - you choose.
- Added "Share" button to the profile and to the Timeline - to share a link to the blog.
- Pinned posts in the newsfeed are not deleted when they age anymore. Thanks Tigra for the idea.
- Notifications' appearance improved - notification type is now visible at first glance.
- Draft is now removed automatically after all text and images are deleted from it. Or, in the case of editing of an existing post/comment, - if the text and images are restored to their initial state.
- Improved preview of posts and comments that is shown when a link to them is posted on other sites.
robots.txt
and sitemap (for search engines) is now created for all blogs.- In Settings, a convenient input field is used in all places where one needs to enter a number of bytes (or larger units).
- In Settings, it is now possible to define an offset of time on the client computer from real time. This is needed, if a country changed its timezone or DST rules recently, but older operating system doesn't know about it and user needs to set time on the computer manually. Thanks Galina for reporting.
- Fixed database connection leak that caused resource starvation up to restart of the node.
- Fixed the bug that sometimes caused partial loss of text of the edited comment, when draft was saved for the first time. Thanks Eliyahu Duvidzon for reporting.
- The client migrated to Bootstrap 5.1.