108 lines
4.3 KiB
HTML
108 lines
4.3 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="https://www.gnusocial.rocks//assets/css/reset.css">
|
|
<link rel="stylesheet" href="https://www.gnusocial.rocks//assets/css/blog.css">
|
|
<link rel='stylesheet' type='text/css' href="https://www.gnusocial.rocks//assets/fonts/opensans/opensans.css"><title>Milestone: Collections - GNU social V3</title>
|
|
</head><body>
|
|
<header>
|
|
<div class="home-menu menu menu-horizontal menu-fixed">
|
|
<a class="menu-heading" href="https://gnusocial.rocks/">
|
|
<img src="../assets/img/gnu-social-logo-invert.svg" alt="GNU social">
|
|
<b>gnu</b>social
|
|
</a>
|
|
</div>
|
|
<div class="sidebar">
|
|
<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></div>
|
|
<div id="template-wrapper"><div class="template-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 —
|
|
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 -> OrderedCollection
|
|
|-> Notes (known as Feed)
|
|
|-> Actors (known as Circle)
|
|
|-> Other Object (known as Collection of ...)
|
|
|-> Attachments: AttachmentCollection
|
|
|-> 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 class="footer l-box is-center">
|
|
This site's source is
|
|
<a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>.
|
|
</footer></body></html>
|