[BLOG][Update] Local Groups

This commit is contained in:
Diogo Peralta Cordeiro 2022-01-18 13:14:26 +00:00
父節點 b2bb52879b
當前提交 7459875db7
簽署人: diogo
GPG Key ID: 18D2D35001FBFAB0
共有 25 個文件被更改,包括 127 次插入86 次删除

二進制
v3/assets/groups/profile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  大小: 155 KiB

查看文件

@ -2,10 +2,30 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel><title>GNU social V3</title><link>https://gnusocial.rocks/v3/index.html</link>
<description>Development blog where we announce our progress.</description><language>en</language>
<lastBuildDate>Tue, 18 Jan 2022 12:44:15 +0000</lastBuildDate>
<pubDate>Tue, 18 Jan 2022 12:44:15 +0000</pubDate>
<lastBuildDate>Tue, 18 Jan 2022 13:13:44 +0000</lastBuildDate>
<pubDate>Tue, 18 Jan 2022 13:13:44 +0000</pubDate>
<atom:link href="https://gnusocial.rocks/v3/feed.rss" rel="self" type="application/rss+xml" />
<item><title>
Updates: Local Groups
</title><description><![CDATA[
<p><img src="assets/groups/profile.png" alt="" title="" /></p>
<p>We haven't implemented federation of Groups yet, but group tags and <a href="https://socialhub.activitypub.rocks/t/decentralised-group/2200/17?u=diogo">discussion
on how unbounded groups can be federated via ActivityPub</a> has already started.</p>
<p>Concerning federation of traditional groups, we will port our logic from v2 and
translate following the same rules as AndStatus <a href="https://github.com/andstatus/andstatus/issues/248#issuecomment-558703558">because they work</a>, as yvolk beautifully stated :)</p>
<p>Finally, also note that the group actors now have "self-tags", as the other actors, which was a milestone.</p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/updates-local-groups.html</link>
<guid>https://gnusocial.rocks/v3/./updates-local-groups.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Tue, 18 Jan 2022 13:13:38 +0000</pubDate></item>
<item><title>
Milestone: Pinned Notes
</title><description><![CDATA[
You can now pin notes in your profile! Given you have suficient permissions to do so (e.g. you created the note), an additional action is represented, allowing you to highlight your favourite notes.</p>
@ -18,6 +38,7 @@ You can now pin notes in your profile! Given you have suficient permissions to d
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-pinned-notes.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-pinned-notes.html</guid>
@ -40,6 +61,7 @@ Milestone: Notes with LaTeX
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-notes-with-latex.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-notes-with-latex.html</guid>
@ -63,6 +85,7 @@ Milestone: Notes with Markdown
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-notes-with-markdown.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-notes-with-markdown.html</guid>
@ -99,6 +122,7 @@ Monetization in the fediverse.</p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-web-monetization.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-web-monetization.html</guid>
@ -121,6 +145,7 @@ to stop receiving notifications derived from that, it is now possible:
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-mute-notifications-from-a-conversation.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-mute-notifications-from-a-conversation.html</guid>
@ -161,6 +186,7 @@ specialisation of a collection.</p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-albums.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-albums.html</guid>
@ -227,6 +253,7 @@ automatically</a>.</p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-collections.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-collections.html</guid>
@ -260,6 +287,7 @@ plugin? How is it better than v2's?</p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-activitypub.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-activitypub.html</guid>
@ -372,93 +400,10 @@ tag.</p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-tags.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-tags.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Thu, 09 Dec 2021 15:21:18 +0000</pubDate></item>
<item><title>
Milestone: Actor colour theme plugin
</title><description><![CDATA[
<p>Actors are now able to set their own colours, through a brand new plugin: "Oomox".
Those accustomed to customising their own desktop should know where the name comes from ;)</p>
<h2>Here's how it works!</h2>
<p>The Oomox plugin main class catches the "PopulateProfileSettingsTabs" event upon visiting user panel.</p>
<pre><code>public function onPopulateProfileSettingsTabs(Request $request, array &amp;$tabs): bool
{
$tabs[] = [
'title' =&gt; 'Light theme colours',
'desc' =&gt; 'Change the theme colours.',
'controller' =&gt; C\Oomox::oomoxSettingsLight($request),
];
$tabs[] = [
'title' =&gt; 'Dark theme colours',
'desc' =&gt; 'Change the theme colours.',
'controller' =&gt; C\Oomox::oomoxSettingsDark($request),
];
return Event::next;
}
</code></pre>
<p>As made evident by the code, two new tabs are added to profile settings, light and dark theme colours.
Since the page styling follows the system theme, actors may want to style each theme differently, therefore they are treated separately.</p>
<p>The actor's defined colours are then saved in the respective entity and cached.
Finally, the colour preferences are used to render the corresponding CSS file which defines the various colour variables used:</p>
<pre><code>public function oomoxCSS(): Response
{
$user = Common::ensureLoggedIn();
$oomox_table = PluginOomox::getEntity($user);
if (is_null($oomox_table)) {
throw new ClientException(_m('No custom colours defined', 404));
}
$content = Formatting::twigRenderFile('/oomox/root_override.css.twig', ['oomox' =&gt; $oomox_table]);
return new Response($content, status: 200, headers: ['content-type' =&gt; 'text/css']);
}
</code></pre>
<p>Please note, upon rendering for the first time, page render may be blocked until the resulting file is served. Nonetheless, subsequent page renders
won't experience the issue again. That is, if the file is cached by the browser.</p>
<h2>How it looks</h2>
<p>Tabs added using the "PopulateProfileSettingsTabs" event:
<img src="assets/actor_colour_theme_plugin/settings_change_theme_colours.png" alt="User panel Oomox sections" title="" /></p>
<p>Changing the dark theme colours!
<img src="assets/actor_colour_theme_plugin/settings_change_theme_colours3.png" alt="Dark theme colours selection" title="" /></p>
<p>The result of given changes, please note it's no longer a 'dark' theme.
Given a valid colour, it's the actor's responsibility whether or not the colours make sense. So, go wild!
<img src="assets/actor_colour_theme_plugin/settings_change_theme_colours4.png" alt="The resulting colours in action!" title="" /></p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-actor-colour-theme-plugin.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-actor-colour-theme-plugin.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Thu, 09 Dec 2021 14:58:35 +0000</pubDate></item>
</channel></rss>

查看文件

@ -45,6 +45,7 @@ Our objective is to further differentiate GNU social from the alternative softwa
<h3>Blog</h3>
<h4 class='allposts_header'>January 2022</h4>
<ul>
<li><a href="./updates-local-groups.html">Updates: Local Groups</a> &mdash; January 18, 2022</li>
<li><a href="./milestone-pinned-notes.html">Milestone: Pinned Notes</a> &mdash; January 18, 2022</li>
<li><a href="./milestone-notes-with-latex.html">Milestone: Notes with LaTeX</a> &mdash; January 18, 2022</li>
<li><a href="./milestone-notes-with-markdown.html">Milestone: Notes with Markdown</a> &mdash; January 18, 2022</li>

查看文件

@ -66,6 +66,7 @@ plugin? How is it better than v2's?</p>
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -91,6 +91,7 @@ GNU social development team
<!-- text end -->

查看文件

@ -117,6 +117,7 @@ Given a valid colour, it's the actor's responsibility whether or not the colours
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -73,6 +73,7 @@ specialisation of a collection.</p>
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -99,6 +99,7 @@ automatically</a>.</p>
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -117,6 +117,7 @@ is properly tested, we have the
<!-- text end -->

查看文件

@ -55,6 +55,7 @@ to stop receiving notifications derived from that, it is now possible:
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -97,6 +97,7 @@ for actual internationalization of the free network.</p>
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -55,6 +55,7 @@ GNU social development team
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -56,6 +56,7 @@ GNU social development team
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -51,6 +51,7 @@ You can now pin notes in your profile! Given you have suficient permissions to d
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -121,6 +121,7 @@ The key ones are:</p>
<!-- text end -->

查看文件

@ -145,6 +145,7 @@ tag.</p>
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -69,6 +69,7 @@ Monetization in the fediverse.</p>
<!-- text end -->
<!-- entry end -->
</div>

查看文件

@ -153,6 +153,7 @@ GNU social development team
<!-- text end -->

查看文件

@ -89,6 +89,7 @@ attempts to generate a page preview from open graph and oembed. I.e., acts when
<!-- text end -->

查看文件

@ -122,6 +122,7 @@ any remote URL being shared in a note.</li>
<!-- text end -->

查看文件

@ -154,6 +154,7 @@ markup, we hope to achieve an accessible, fast and polished structure by which a
<!-- text end -->

查看文件

@ -65,6 +65,7 @@ GNU social development team
<!-- text end -->

查看文件

@ -0,0 +1,63 @@
<!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>Updates: Local Groups - 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="updates-local-groups.html">
Updates: Local Groups
</a></h3>
<!-- bashblog_timestamp: #202201181313.38# -->
<div class="subtitle">January 18, 2022 &mdash;
GNU social development team
</div>
<!-- text begin -->
<p><img src="assets/groups/profile.png" alt="" title="" /></p>
<p>We haven't implemented federation of Groups yet, but group tags and <a href="https://socialhub.activitypub.rocks/t/decentralised-group/2200/17?u=diogo">discussion
on how unbounded groups can be federated via ActivityPub</a> has already started.</p>
<p>Concerning federation of traditional groups, we will port our logic from v2 and
translate following the same rules as AndStatus <a href="https://github.com/andstatus/andstatus/issues/248#issuecomment-558703558">because they work</a>, as yvolk beautifully stated :)</p>
<p>Finally, also note that the group actors now have "self-tags", as the other actors, which was a milestone.</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>

查看文件

@ -0,0 +1,12 @@
Updates: Local Groups
![](assets/groups/profile.png)
We haven't implemented federation of Groups yet, but group tags and [discussion
on how unbounded groups can be federated via ActivityPub](https://socialhub.activitypub.rocks/t/decentralised-group/2200/17?u=diogo) has already started.
Concerning federation of traditional groups, we will port our logic from v2 and
translate following the same rules as AndStatus [because they work](https://github.com/andstatus/andstatus/issues/248#issuecomment-558703558), as yvolk beautifully stated :)
Finally, also note that the group actors now have "self-tags", as the other actors, which was a milestone.

查看文件

@ -97,6 +97,7 @@ forget to subscribe!</p>
<!-- text end -->