gnusocial.rocks/v3/milestone-collections.html

133 lines
4.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.86, maximum-scale=5.0, minimum-scale=0.86">
<link rel="shortcut icon" href="../favicon.ico">
<link rel="stylesheet" href="../assets/css/reset.css">
<link rel="stylesheet" href="../assets/css/blog.css">
<link rel="stylesheet" href="../assets/fonts/opensans/opensans.css">
<title>Milestone: Collections - GNU social V3</title>
</head><body>
<header>
<div class="home-menu menu menu-horizontal menu-fixed">
<div class="home-menu menu menu-horizontal menu-fixed">
<a class="header-main" href="/"><img src="../assets/img/gnu-social-logo-invert.svg" alt="GNU social"><b>gnu</b>social</a>
<ul class="menu-list">
<li class="menu-item menu-selected"><a href="index.html" class="menu-link">Blog Index</a></li>
<li class="menu-item"><a href="https://code.gnusocial.rocks/" class="menu-link">Repository</a></li>
<li class="menu-item"><a href="https://coverage.gnusocial.rocks/" class="menu-link">Code Coverage</a></li>
<li class="menu-item"><a href="https://docs.gnusocial.rocks/" class="menu-link">Documentation</a></li>
<li class="menu-item"><a href="https://agile.gnusocial.rocks/" class="menu-link">Wiki</a></li>
<li class="menu-item"><a href="https://kanban.undefinedhackers.net/?controller=BoardViewController&action=readonly&token=d2293e55cabae7cceff9fb496c651328195357d392b9e61a9f229ed6d463" class="menu-link">Roadmap</a></li>
</ul>
</div>
</header>
<div class="content-wrapper">
<div class="content">
</div>
<div id="entry-wrapper"><div class="entry-unit">
<!-- entry begin -->
<h3><a class="ablack" href="milestone-collections.html">
Milestone: Collections
</a></h3>
<!-- bashblog_timestamp: #202201181356.12# -->
<div class="subtitle">January 18, 2022 &mdash;
GNU social development team
</div>
<!-- text begin -->
<p>We have generalized collections around our search engine. For that introducing
the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Collection">Collection component</a>.</p>
<p>This structure has the following implication:</p>
<pre><code>Collection -&gt; OrderedCollection
|-&gt; Notes (known as Feed)
|-&gt; Actors (known as Circle)
|-&gt; Other Object (known as Collection of ...)
|-&gt; Attachments: AttachmentCollection
|-&gt; Tags: TagCollection
</code></pre>
<p>And it allow us to centralise the scope system in the core, ensuring that no
actor will have access to notes or other objects that shouldn't be able to see.</p>
<p>Finally, with this, a plugin such as <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/NoteTypeFeedFilter">Note Type Feed Filter</a> can be useful in
every note collection (feed).</p>
<p>It also allows plugins such as ActivityPub to <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub/Util/OrderedCollectionController.php">translate every collection
automatically</a>.</p>
<p>We also introduced the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Circle">Circle component</a>, which has a UI similar to the
<a href="https://www.gnusocial.rocks/v3/milestone-albums.html">Attachments Collections</a>,
and enables circle mentions with <code>@#circle_name</code>.</p>
<h2>Notes Filter and Sorting Options</h2>
<p><img src="assets/filters/feed.png" alt="" title="" /></p>
<h2>Actors Filter and Sorting Options</h2>
<p><img src="assets/filters/circle.png" alt="" title="" /></p>
<h2>The Search Component</h2>
<h3>Results</h3>
<p><img src="assets/search/results.png" alt="" title="" /></p>
<h3>Note Options</h3>
<p><img src="assets/search/note_options.png" alt="" title="" /></p>
<h3>Actor Options</h3>
<p><img src="assets/search/actor_options.png" alt="" title="" /></p>
<h2>ActivityPub Examples</h2>
<p><img src="assets/activitypub/collection/circle.jpg" alt="" title="" />
<img src="assets/activitypub/collection/favourites.jpg" alt="" title="" />
<img src="assets/activitypub/collection/outbox.jpg" alt="" title="" /></p>
<!-- text end -->
<!-- entry end -->
</div>
</div></div>
<footer>
This site's source is <a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>
</footer>
</body></html>