<p>Is it feasible for !gnusocial ? Or would it cause problems?</p>
</blockquote>
<p>The answer is <strong>yes</strong> and will be released with v3. With the addition of
<ahref="(https://gnusocial.rocks/v3/milestone-notes-and-actors-with-languages.html">Languages in notes and actors</a>) there was little excuse not to be feasible.</p>
<p>Whenever you post a note containing tags, you can choose whether to
make those tags canonical. This means that, for instance, the tags
<code>#run</code> and <code>#running</code> become the 'same', meaning that when you click on
the link for the <code>#run</code> tag, you'll also see notes tagged #running. You
can opt out of the behaviour by unchecking the "Make note tags
canonical". An identical process occurs for people tags.</p>
<p>Internally, this transformation is accomplished by splitting the tag
into words and <ahref="https://en.wikipedia.org/wiki/Stemming">stemming</a> each word.</p>
<h3>Related Tags</h3>
<p>In a tag feed, you can see tags that are often used together with the
one you're seeing. This can be useful, for instance, for finding other
content you'd be interested in.</p>
<h1>Improved Tag feeds</h1>
<p>When you click on a tag, be it a note tag or a person tag, you'll see
a feed of notes/people with that tag. You can also edit the feeds you
see in your left panel, so you can follow a given tag.</p>
<h1>Mute Self Tags and Note Tags</h1>
<p>If you don't like seeing a given tag in your feeds, for whatever
reason, you can choose to mute it. You can mute a note tag or a person
tag, in which case you wouldn't see any notes from people with that
<p>The primary use of GNU social is to access the <ahref="https://blog.diogo.site/what-is-the-fediverse">free network</a>, be it ActivityWeb (ActivityPub) or Fediverse (OStatus).</p>
<p>Contrary to the original plan, we have merged <ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/nightly/modules/TheFreeNetwork">The Free Network Module</a>, <ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/nightly/plugins/WebFinger">WebFinger</a> and <ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/nightly/plugins/LRDD">LRDD</a> into a single component named <ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/FreeNetwork">FreeNetwork</a>. Likewise, ActivityPub and ActivityStreams 2.0 was kept the same plugin instead of separated.</p>
<h2>Understanding the organisation chosen</h2>
<p>The FreeNetwork component adds WebFinger (RFC7033) lookup and implements Link-based Resource Descriptor Discovery (LRDD) based on RFC6415, Web Host Metadata. It takes and produces both Extensible Resource Descriptor (XRD) and JSON (JavaSript Object Notation). Furthermore, and different from v2, every federation protocol will use the same distribution queue maintained by this component instead of holding its own.</p>
<p>We originally intended to have data modelling plugins that would extend the GS's "language". We then understood that it added more complexity than we wanted without any considerable advantage because we cannot dissociate data reception handling of the protocol itself.</p>
<h2>Situation Report</h2>
<p><ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub">ActivityPub</a> already translates between activity and entity and allows plugins to extend it (thus serving a similar purpose to data modelling and representation plugins).</p>
<p>GNU social v3 now supports <ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Util/Formatting.php#L292">mentions</a>, which is a process that starts in the <ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Posting/Posting.php#L197">Posting component</a>. The processing of local mentions naturally finds its entire handling here.</p>
<p>For remote ActivityPub mentions, <ahref="(https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub/Entity/ActivitypubActor.php#L179">ActivityPub handles it aided by the FreeNetwork component</a>).</p>
<h2>Next steps</h2>
<p>We still have to port OStatus (and ActivityStreams 1.0) and implement the distribution by FreeNetwork, although the base work is done. Regarding ActivityPub, although some of it already works, expanding the existing plugins to supplement ActivityPub, and full validation isn't ready yet. We will most likely finish the implementation of the whole federation stack in the next week.</p>
<iframewidth="560"height="315"sandbox="allow-same-origin allow-scripts allow-popups"title="GNU social v3 Accessibility: Orca reading the Public feed"src="https://tube.tchncs.de/videos/embed/9a16e84c-4150-4849-ac63-019c9a3782d9"frameborder="0"allowfullscreen></iframe>
fetches remote files when they are <code>Linked</code> to in a note. I.e., when the major mime type isn't <code>text</code>. It triggers thumbnail generation.</p>
<p>We've changed so much with GNU social v3 that, regarding SRM there was no possible port, just a complete rewrite. Both plugins became smaller and easier to understand while promoting the same functionality with more stability.</p>
<li><ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/32ad5dbd74ebb369c4b3ed688e1fb78464fabe49">32ad5dbd74 - [ENTITY] Split Attachment in various new entities</a></li>
<li><ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/c381e58d3307e7dd07abeb9cf5b3998e34f5bd48">c381e58d33 - [ENTITY] Refactor RemoteURL entities to Link</a></li>
different books. These are automatically generated from the <ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/docs">source</a> using <ahref="https://rust-lang.github.io/mdBook/">mdBook</a>.</p>
<li>The <ahref="https://docs.gnusocial.rocks/developer">Developer</a> is both intended to guide third-party plugin developers and to make it easier of contributing to the code.</li>
<li>The <ahref="https://docs.gnusocial.rocks/designer">Designer</a> is the most recent of the four and came from a necessity of keeping some standardization between templates and ensuring the same principles are kept in mind when designing new themes.</li>
<ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/tests">tests</a>. And the coverage is available <ahref="https://coverage.gnusocial.rocks/">here</a>. At the time of writing the coverage has 98.76% code lines tested.</p>