[V3][Blog] Add initial content
This commit is contained in:
parent
58cda45781
commit
5d4dae70da
48
v3/all_tags.html
Normal file
48
v3/all_tags.html
Normal file
@ -0,0 +1,48 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/pure-min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/grids-responsive-min.css">
|
||||
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
|
||||
<link rel="stylesheet" href="/assets/css/style.css">
|
||||
<link rel="stylesheet" href="/v3/blog.css">
|
||||
<title>All tags - GNU social V3</title>
|
||||
</head><body>
|
||||
<header class="header">
|
||||
<div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
|
||||
<a class="pure-menu-heading" href="/">GNU social</a>
|
||||
<ul class="pure-menu-list">
|
||||
<li class="pure-menu-item pure-menu-selected"><a href="index.html" class="pure-menu-link">Version 3</a></li>
|
||||
<li class="pure-menu-item"><a href="https://code.gnusocial.rocks/" class="pure-menu-link">Repository</a></li>
|
||||
<li class="pure-menu-item"><a href="https://coverage.gnusocial.rocks/" class="pure-menu-link">Code Coverage</a></li>
|
||||
<li class="pure-menu-item"><a href="https://docs.gnusocial.rocks/" class="pure-menu-link">Documentation</a></li>
|
||||
<li class="pure-menu-item"><a href="https://agile.gnusocial.rocks/" class="pure-menu-link">Wiki</a></li>
|
||||
<li class="pure-menu-item"><a href="https://kanban.undefinedhackers.net/?controller=BoardViewController&action=readonly&token=d2293e55cabae7cceff9fb496c651328195357d392b9e61a9f229ed6d463" class="pure-menu-link">Roadmap</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
<div id="divbodyholder">
|
||||
<div class="headerholder"><div class="header">
|
||||
<div id="title">
|
||||
<h1 class="nomargin"><a class="ablack" href="https://gnusocial.rocks/v3/index.html">GNU social V3</a></h1>
|
||||
<div id="description">Development blog where we announce our progress.</div>
|
||||
</div></div></div>
|
||||
<div id="divbody"><div class="content">
|
||||
<h3>All tags</h3>
|
||||
<ul>
|
||||
</ul>
|
||||
<div id="all_posts"><a href="index.html">Blog</a> — <a href="feed.rss">Subscribe</a></div>
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
<footer class="l-box is-center">
|
||||
This site's source is <a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>.
|
||||
</footer>
|
||||
</div>
|
||||
</body></html>
|
189
v3/feed.rss
Normal file
189
v3/feed.rss
Normal file
@ -0,0 +1,189 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<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, 17 Aug 2021 00:59:41 +0100</lastBuildDate>
|
||||
<pubDate>Tue, 17 Aug 2021 00:59:41 +0100</pubDate>
|
||||
<atom:link href="https://gnusocial.rocks/v3/feed.rss" rel="self" type="application/rss+xml" />
|
||||
<item><title>
|
||||
Updates: Implement StoreRemoteMedia for v3 and port Embed
|
||||
</title><description><![CDATA[
|
||||
|
||||
<p>GNU social comes with two plugins that add important media functionality.</p>
|
||||
|
||||
<p>Not talking neither about ImageEncoder nor VideoEncoder this time, but rather
|
||||
about StoreRemoteMedia and Embed.</p>
|
||||
|
||||
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/StoreRemoteMedia">StoreRemoteMedia</a>
|
||||
fetches remote files when they are Linked in a note. I.e., when the major mimetype isn't <code>text</code>.
|
||||
It usually fetches and attempts to generate a thumb, if there are no encoders, it drops.</p>
|
||||
|
||||
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/Embed">Embed</a>
|
||||
attempts to generate a page preview from opengraph and oembed. I.e., acts when the major mimetype is <code>text</code>.</p>
|
||||
|
||||
<p>We've changed so much with GNU social v3 that, regarding SRM there was
|
||||
no possible port, just a full rewrite. The code of both plugins became
|
||||
much easier of understanding and compact, while promoting the same
|
||||
functionality with more stability.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/updates-implement-storeremotemedia-for-v3-and-port-embed.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./updates-implement-storeremotemedia-for-v3-and-port-embed.html</guid>
|
||||
<dc:creator>GNU social development team</dc:creator>
|
||||
<pubDate>Fri, 13 Aug 2021 13:37:42 +0100</pubDate></item>
|
||||
<item><title>
|
||||
Updates: Improve the Attachments system
|
||||
</title><description><![CDATA[
|
||||
|
||||
<p>With the milestone "Port Media system from v2" we had ported the existing
|
||||
attachment system. The fact is that this system wasn't good enough.</p>
|
||||
|
||||
<p>It's always important to start with the original code as that allows us
|
||||
to review past decisions and understand all the corner cases.</p>
|
||||
|
||||
<p>Sadly, what motivated us to re-design the attachment system was the
|
||||
non-considered corner cases.</p>
|
||||
|
||||
<p>Key commits:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/32ad5dbd74ebb369c4b3ed688e1fb78464fabe49">32ad5dbd74 - [ENTITY] Split Attachment in various new entities</a></li>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/c381e58d3307e7dd07abeb9cf5b3998e34f5bd48">c381e58d33 - [ENTITY] Refactor RemoteURL entities to Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>The reasoning leading to these entities and structure is detailed in our
|
||||
<a href="http://agile.gnusocial.rocks/doku.php?id=attachment">wiki</a>.</p>
|
||||
|
||||
<p>Some relevant observations:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>Link</code> is now part of GNU social Data Representation terms. It represents
|
||||
any remote URL being shared in a note.</li>
|
||||
<li>There's only one fixed directory for GSFiles.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/updates-improve-the-attachments-system.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./updates-improve-the-attachments-system.html</guid>
|
||||
<dc:creator>GNU social development team</dc:creator>
|
||||
<pubDate>Thu, 05 Aug 2021 13:37:42 +0100</pubDate></item>
|
||||
<item><title>
|
||||
Updates: Finish the Avatar component
|
||||
</title><description><![CDATA[
|
||||
|
||||
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Avatar">Avatar Component source</a>.</p>
|
||||
|
||||
<p>Its controller handles upload, update and removal.</p>
|
||||
|
||||
<p>Important change from v2: Avatars are now regular attachments.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/updates-finish-the-avatar-component.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./updates-finish-the-avatar-component.html</guid>
|
||||
<dc:creator>GNU social development team</dc:creator>
|
||||
<pubDate>Wed, 04 Aug 2021 13:42:37 +0100</pubDate></item>
|
||||
<item><title>
|
||||
Milestone: Documentation and Tests Infrastructure
|
||||
</title><description><![CDATA[
|
||||
|
||||
<p><strong><a href="https://agile.gnusocial.rocks/doku.php?id=milestones:initial_test_documentation_infrastructure">WIKI Milestone entry</a></strong></p>
|
||||
|
||||
<p>GNU social now has its documentation available in
|
||||
<a href="https://docs.gnusocial.rocks/">https://docs.gnusocial.rocks/</a>. It features four
|
||||
different books. It is automatically generated from the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/docs">source</a> using <a href="https://rust-lang.github.io/mdBook/">mdBook</a>.</p>
|
||||
|
||||
<p>Only the development book is in an elaborated state, the other books are
|
||||
holding for more ready code.</p>
|
||||
|
||||
<p>Two of them are updates from existing documentation:</p>
|
||||
|
||||
<ul>
|
||||
<li>The <a href="https://docs.gnusocial.rocks/user">User</a> one is adapted
|
||||
from the existing GNU social documentation for users that was provided in v2.</li>
|
||||
<li>The <a href="https://docs.gnusocial.rocks/administrator">Administrator</a> one is adapted
|
||||
from the "Unofficial GNU social docs" by Thomask who <a href="https://notabug.org/diogo/gnu-social/issues/246">asked us to make it official</a>.</li>
|
||||
</ul>
|
||||
|
||||
<p>And two of them are new:</p>
|
||||
|
||||
<ul>
|
||||
<li>The <a href="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 <a href="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>
|
||||
</ul>
|
||||
|
||||
<p>Together with the documentation we've introduced a
|
||||
<a href="https://agile.gnusocial.rocks/">wiki</a>. Its purpose is to walk-through decisions,
|
||||
convention, terminology. It's where we document the reasoning the dev team went
|
||||
through before implementing more sophisticated functionalities.</p>
|
||||
|
||||
<p>Finally, when the documentation doesn't explain, and to ensure the whole code
|
||||
is properly tested, we have the
|
||||
<a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/tests">tests</a>. And the coverage is available <a href="https://coverage.gnusocial.rocks/">here</a>.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/milestone-documentation-and-tests-infrastructure.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./milestone-documentation-and-tests-infrastructure.html</guid>
|
||||
<dc:creator>GNU social development team</dc:creator>
|
||||
<pubDate>Wed, 04 Aug 2021 13:37:42 +0100</pubDate></item>
|
||||
<item><title>
|
||||
Milestone: Port Media handling from v2
|
||||
</title><description><![CDATA[
|
||||
|
||||
<p><strong><a href="https://agile.gnusocial.rocks/doku.php?id=milestones:attachment_media_embed_handling">WIKI Milestone entry</a></strong></p>
|
||||
|
||||
<p>File Storage in GNU social is used for avatars, for notes containing
|
||||
attachments, and for notes containing links (in which case is an Embed preview).
|
||||
Notes can be created by local users or fetched from remote actors. Filehash is
|
||||
used to reduce file duplication.</p>
|
||||
|
||||
<p>When a user shares a Link that uses OpenGraph tags or has an OEmbed provider,
|
||||
the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/Embed">Embed plugin</a> generates a preview for it that may contain a thumbnail.</p>
|
||||
|
||||
<p>When a user shares a Link to an image, the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/StoreRemoteMedia">StoreRemoteMedia plugin</a> can fetch the
|
||||
file and make it available as an attachment, and will generate a thumbnail.</p>
|
||||
|
||||
<p>When an image, video, or other file type is uploaded or retrieved, an Attachment
|
||||
entity is created. When a thumbnail is requested, one is generated.</p>
|
||||
|
||||
<p>There are three relevant plugins for attachment handling:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ImageEncoder">ImageEncoder</a>: Allows to compress, validate, rescale, and sanitize images using VIPS.</li>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/VideoEncoder">VideoEncoder</a>: Allows to compress, validate, rescale, and sanitize videos using FFMpeg.</li>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/FileQuota">FileQuota</a>: Ensures a user stays under the file quota.</li>
|
||||
</ul>
|
||||
|
||||
<h2>How is the code organised?</h2>
|
||||
|
||||
<p>There are various entities related to attachment, and thumbnail handling.
|
||||
The main ones are:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Entity/Attachment.php">Attachment</a></li>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Entity/AttachmentThumbnail.php">AttachmentThumbnail</a></li>
|
||||
</ul>
|
||||
|
||||
<p>The plugins are able to act by means of the Events system, as elaborated in the
|
||||
<a href="https://docs.gnusocial.rocks/developer/attachments.html">documentation</a>.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/milestone-port-media-handling-from-v2.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./milestone-port-media-handling-from-v2.html</guid>
|
||||
<dc:creator>GNU social development team</dc:creator>
|
||||
<pubDate>Mon, 03 May 2021 13:37:42 +0100</pubDate></item>
|
||||
</channel></rss>
|
87
v3/index.html
Normal file
87
v3/index.html
Normal file
@ -0,0 +1,87 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/pure-min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/grids-responsive-min.css">
|
||||
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
|
||||
<link rel="stylesheet" href="/assets/css/style.css">
|
||||
<link rel="stylesheet" href="/v3/blog.css">
|
||||
<title>Blog - GNU social V3</title>
|
||||
</head><body>
|
||||
<header class="header">
|
||||
<div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
|
||||
<a class="pure-menu-heading" href="/">GNU social</a>
|
||||
<ul class="pure-menu-list">
|
||||
<li class="pure-menu-item pure-menu-selected"><a href="index.html" class="pure-menu-link">Version 3</a></li>
|
||||
<li class="pure-menu-item"><a href="https://code.gnusocial.rocks/" class="pure-menu-link">Repository</a></li>
|
||||
<li class="pure-menu-item"><a href="https://coverage.gnusocial.rocks/" class="pure-menu-link">Code Coverage</a></li>
|
||||
<li class="pure-menu-item"><a href="https://docs.gnusocial.rocks/" class="pure-menu-link">Documentation</a></li>
|
||||
<li class="pure-menu-item"><a href="https://agile.gnusocial.rocks/" class="pure-menu-link">Wiki</a></li>
|
||||
<li class="pure-menu-item"><a href="https://kanban.undefinedhackers.net/?controller=BoardViewController&action=readonly&token=d2293e55cabae7cceff9fb496c651328195357d392b9e61a9f229ed6d463" class="pure-menu-link">Roadmap</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
<h2 class="content-head is-center">Version 3</h2>
|
||||
<h3>Abstract</h3>
|
||||
GNU social is the eldest free social networking platform for public and private communications used in federated social networks. It's versatile, extensible and privacy focused. We've been modernizing the existing codebase, ensuring inter-operationality as defined by the IndieWeb and we're developing a modern frontend. This makes GNU social accessible: easy to install and use, and follows AnyBrowser and A11Y guidelines.
|
||||
|
||||
Our objective is to further differentiate GNU social from the alternative software available, either FOSS or Proprietary/Centralized while setting an example of how a secure, performant and plug-and-play software should be in modern day's web.
|
||||
|
||||
<p>We are being supported by <a href="https://nlnet.nl/project/GNUSocial/">NLnet</a>.</p>
|
||||
<div id="divbodyholder">
|
||||
<div class="headerholder"><div class="header">
|
||||
<div id="title">
|
||||
<h1 class="nomargin"><a class="ablack" href="https://gnusocial.rocks/v3/index.html">GNU social V3</a></h1>
|
||||
<div id="description">Development blog where we announce our progress.</div>
|
||||
</div></div></div>
|
||||
<div id="divbody"><div class="content">
|
||||
<h3>Blog</h3>
|
||||
<h4 class='allposts_header'>August 2021</h4>
|
||||
<ul>
|
||||
<li><a href="./updates-implement-storeremotemedia-for-v3-and-port-embed.html">Updates: Implement StoreRemoteMedia for v3 and port Embed</a> — August 13, 2021</li>
|
||||
<li><a href="./updates-improve-the-attachments-system.html">Updates: Improve the Attachments system</a> — August 05, 2021</li>
|
||||
<li><a href="./updates-finish-the-avatar-component.html">Updates: Finish the Avatar component</a> — August 04, 2021</li>
|
||||
<li><a href="./milestone-documentation-and-tests-infrastructure.html">Milestone: Documentation and Tests Infrastructure</a> — August 04, 2021</li>
|
||||
</ul>
|
||||
<h4 class='allposts_header'>May 2021</h4>
|
||||
<ul>
|
||||
<li><a href="./milestone-port-media-handling-from-v2.html">Milestone: Port Media handling from v2</a> — May 03, 2021</li>
|
||||
</ul>
|
||||
<div id="all_posts"><a href="all_tags.html">All tags</a> — <a href="feed.rss">Subscribe</a></div>
|
||||
</div>
|
||||
<h3>Milestones</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.gnusocial.rocks/v3/tests-and-documentation-infrastructure.html"><s>Initial test and documentation infrastructure</s></a></li>
|
||||
<li>Expand our support for tags, be it in posts and in actors (people, groups, etc) (WIP)</li>
|
||||
<li>Port over the v2 federation stack to v3 (WIP)</li>
|
||||
<li>New functionality:
|
||||
<ul>
|
||||
<li>Implement Companies/Celebrities actor type as Service</li>
|
||||
<li>Pinned Activities (plugin)</li>
|
||||
<li>More sorting options</li>
|
||||
<li>Publication language with defaults per group and easy switch on posting</li>
|
||||
<li>Album of Images and Videos</li>
|
||||
<li>Markdown</li>
|
||||
<li>Server-side rendered-to-svg LaTeX</li>
|
||||
<li>Posts with titles</li>
|
||||
</ul>
|
||||
<li><a href="https://www.gnusocial.rocks/v3/media-attachments-and-thumbnails.html"><s>Media handling, such as thumbnails, compression, and quota and
|
||||
permission checking</s></a></li>
|
||||
<li>External APIs.</li>
|
||||
<li>New Groups specification</li>
|
||||
<li>Better timelines</li>
|
||||
</ul>
|
||||
|
||||
</div></div>
|
||||
</div>
|
||||
<footer class="l-box is-center">
|
||||
This site's source is <a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>.
|
||||
</footer>
|
||||
</div>
|
||||
</body></html>
|
16
v3/main.css
Normal file
16
v3/main.css
Normal file
@ -0,0 +1,16 @@
|
||||
body{font-family:Georgia,"Times New Roman",Times,serif;margin:0;padding:0;background-color:#F3F3F3;}
|
||||
#divbodyholder{padding:5px;background-color:#DDD;width:100%;max-width:874px;margin:24px auto;}
|
||||
#divbody{border:solid 1px #ccc;background-color:#fff;padding:0px 48px 24px 48px;top:0;}
|
||||
.headerholder{background-color:#f9f9f9;border-top:solid 1px #ccc;border-left:solid 1px #ccc;border-right:solid 1px #ccc;}
|
||||
.header{width:100%;max-width:800px;margin:0px auto;padding-top:24px;padding-bottom:8px;}
|
||||
.content{margin-bottom:5%;}
|
||||
.nomargin{margin:0;}
|
||||
.description{margin-top:10px;border-top:solid 1px #666;padding:10px 0;}
|
||||
h3{font-size:20pt;width:100%;font-weight:bold;margin-top:32px;margin-bottom:0;}
|
||||
.clear{clear:both;}
|
||||
#footer{padding-top:10px;border-top:solid 1px #666;color:#333333;text-align:center;font-size:small;font-family:"Courier New","Courier",monospace;}
|
||||
a{text-decoration:none;color:#003366 !important;}
|
||||
a:visited{text-decoration:none;color:#336699 !important;}
|
||||
blockquote{background-color:#f9f9f9;border-left:solid 4px #e9e9e9;margin-left:12px;padding:12px 12px 12px 24px;}
|
||||
blockquote img{margin:12px 0px;}
|
||||
blockquote iframe{margin:12px 0px;}
|
93
v3/milestone-documentation-and-tests-infrastructure.html
Normal file
93
v3/milestone-documentation-and-tests-infrastructure.html
Normal file
@ -0,0 +1,93 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/pure-min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/grids-responsive-min.css">
|
||||
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
|
||||
<link rel="stylesheet" href="/assets/css/style.css">
|
||||
<link rel="stylesheet" href="/v3/blog.css">
|
||||
<title>Milestone: Documentation and Tests Infrastructure - GNU social V3</title>
|
||||
</head><body>
|
||||
<header class="header">
|
||||
<div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
|
||||
<a class="pure-menu-heading" href="/">GNU social</a>
|
||||
<ul class="pure-menu-list">
|
||||
<li class="pure-menu-item pure-menu-selected"><a href="index.html" class="pure-menu-link">Version 3</a></li>
|
||||
<li class="pure-menu-item"><a href="https://code.gnusocial.rocks/" class="pure-menu-link">Repository</a></li>
|
||||
<li class="pure-menu-item"><a href="https://coverage.gnusocial.rocks/" class="pure-menu-link">Code Coverage</a></li>
|
||||
<li class="pure-menu-item"><a href="https://docs.gnusocial.rocks/" class="pure-menu-link">Documentation</a></li>
|
||||
<li class="pure-menu-item"><a href="https://agile.gnusocial.rocks/" class="pure-menu-link">Wiki</a></li>
|
||||
<li class="pure-menu-item"><a href="https://kanban.undefinedhackers.net/?controller=BoardViewController&action=readonly&token=d2293e55cabae7cceff9fb496c651328195357d392b9e61a9f229ed6d463" class="pure-menu-link">Roadmap</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
<div id="divbodyholder">
|
||||
<div class="headerholder"><div class="header">
|
||||
<div id="title">
|
||||
<h1 class="nomargin"><a class="ablack" href="https://gnusocial.rocks/v3/index.html">GNU social V3</a></h1>
|
||||
<div id="description">Development blog where we announce our progress.</div>
|
||||
</div></div></div>
|
||||
<div id="divbody"><div class="content">
|
||||
<!-- entry begin -->
|
||||
<h3><a class="ablack" href="milestone-documentation-and-tests-infrastructure.html">
|
||||
Milestone: Documentation and Tests Infrastructure
|
||||
</a></h3>
|
||||
<!-- bashblog_timestamp: #202108041337.42# -->
|
||||
<div class="subtitle">August 04, 2021 —
|
||||
GNU social development team
|
||||
</div>
|
||||
<!-- text begin -->
|
||||
|
||||
<p><strong><a href="https://agile.gnusocial.rocks/doku.php?id=milestones:initial_test_documentation_infrastructure">WIKI Milestone entry</a></strong></p>
|
||||
|
||||
<p>GNU social now has its documentation available in
|
||||
<a href="https://docs.gnusocial.rocks/">https://docs.gnusocial.rocks/</a>. It features four
|
||||
different books. It is automatically generated from the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/docs">source</a> using <a href="https://rust-lang.github.io/mdBook/">mdBook</a>.</p>
|
||||
|
||||
<p>Only the development book is in an elaborated state, the other books are
|
||||
holding for more ready code.</p>
|
||||
|
||||
<p>Two of them are updates from existing documentation:</p>
|
||||
|
||||
<ul>
|
||||
<li>The <a href="https://docs.gnusocial.rocks/user">User</a> one is adapted
|
||||
from the existing GNU social documentation for users that was provided in v2.</li>
|
||||
<li>The <a href="https://docs.gnusocial.rocks/administrator">Administrator</a> one is adapted
|
||||
from the "Unofficial GNU social docs" by Thomask who <a href="https://notabug.org/diogo/gnu-social/issues/246">asked us to make it official</a>.</li>
|
||||
</ul>
|
||||
|
||||
<p>And two of them are new:</p>
|
||||
|
||||
<ul>
|
||||
<li>The <a href="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 <a href="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>
|
||||
</ul>
|
||||
|
||||
<p>Together with the documentation we've introduced a
|
||||
<a href="https://agile.gnusocial.rocks/">wiki</a>. Its purpose is to walk-through decisions,
|
||||
convention, terminology. It's where we document the reasoning the dev team went
|
||||
through before implementing more sophisticated functionalities.</p>
|
||||
|
||||
<p>Finally, when the documentation doesn't explain, and to ensure the whole code
|
||||
is properly tested, we have the
|
||||
<a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/tests">tests</a>. And the coverage is available <a href="https://coverage.gnusocial.rocks/">here</a>.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
<footer class="l-box is-center">
|
||||
This site's source is <a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>.
|
||||
</footer>
|
||||
</div>
|
||||
</body></html>
|
31
v3/milestone-documentation-and-tests-infrastructure.md
Normal file
31
v3/milestone-documentation-and-tests-infrastructure.md
Normal file
@ -0,0 +1,31 @@
|
||||
Milestone: Documentation and Tests Infrastructure
|
||||
|
||||
**[WIKI Milestone entry](https://agile.gnusocial.rocks/doku.php?id=milestones:initial_test_documentation_infrastructure)**
|
||||
|
||||
GNU social now has its documentation available in
|
||||
[https://docs.gnusocial.rocks/](https://docs.gnusocial.rocks/). It features four
|
||||
different books. It is automatically generated from the [source](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/docs) using [mdBook](https://rust-lang.github.io/mdBook/).
|
||||
|
||||
Only the development book is in an elaborated state, the other books are
|
||||
holding for more ready code.
|
||||
|
||||
Two of them are updates from existing documentation:
|
||||
|
||||
* The [User](https://docs.gnusocial.rocks/user) one is adapted
|
||||
from the existing GNU social documentation for users that was provided in v2.
|
||||
* The [Administrator](https://docs.gnusocial.rocks/administrator) one is adapted
|
||||
from the "Unofficial GNU social docs" by Thomask who [asked us to make it official](https://notabug.org/diogo/gnu-social/issues/246).
|
||||
|
||||
And two of them are new:
|
||||
|
||||
* The [Developer](https://docs.gnusocial.rocks/developer) is both intended to guide third-party plugin developers and to make it easier of contributing to the code.
|
||||
* The [Designer](https://docs.gnusocial.rocks/designer) 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.
|
||||
|
||||
Together with the documentation we've introduced a
|
||||
[wiki](https://agile.gnusocial.rocks/). Its purpose is to walk-through decisions,
|
||||
convention, terminology. It's where we document the reasoning the dev team went
|
||||
through before implementing more sophisticated functionalities.
|
||||
|
||||
Finally, when the documentation doesn't explain, and to ensure the whole code
|
||||
is properly tested, we have the
|
||||
[tests](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/tests). And the coverage is available [here](https://coverage.gnusocial.rocks/).
|
97
v3/milestone-port-media-handling-from-v2.html
Normal file
97
v3/milestone-port-media-handling-from-v2.html
Normal file
@ -0,0 +1,97 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/pure-min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/grids-responsive-min.css">
|
||||
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
|
||||
<link rel="stylesheet" href="/assets/css/style.css">
|
||||
<link rel="stylesheet" href="/v3/blog.css">
|
||||
<title>Milestone: Port Media handling from v2 - GNU social V3</title>
|
||||
</head><body>
|
||||
<header class="header">
|
||||
<div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
|
||||
<a class="pure-menu-heading" href="/">GNU social</a>
|
||||
<ul class="pure-menu-list">
|
||||
<li class="pure-menu-item pure-menu-selected"><a href="index.html" class="pure-menu-link">Version 3</a></li>
|
||||
<li class="pure-menu-item"><a href="https://code.gnusocial.rocks/" class="pure-menu-link">Repository</a></li>
|
||||
<li class="pure-menu-item"><a href="https://coverage.gnusocial.rocks/" class="pure-menu-link">Code Coverage</a></li>
|
||||
<li class="pure-menu-item"><a href="https://docs.gnusocial.rocks/" class="pure-menu-link">Documentation</a></li>
|
||||
<li class="pure-menu-item"><a href="https://agile.gnusocial.rocks/" class="pure-menu-link">Wiki</a></li>
|
||||
<li class="pure-menu-item"><a href="https://kanban.undefinedhackers.net/?controller=BoardViewController&action=readonly&token=d2293e55cabae7cceff9fb496c651328195357d392b9e61a9f229ed6d463" class="pure-menu-link">Roadmap</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
<div id="divbodyholder">
|
||||
<div class="headerholder"><div class="header">
|
||||
<div id="title">
|
||||
<h1 class="nomargin"><a class="ablack" href="https://gnusocial.rocks/v3/index.html">GNU social V3</a></h1>
|
||||
<div id="description">Development blog where we announce our progress.</div>
|
||||
</div></div></div>
|
||||
<div id="divbody"><div class="content">
|
||||
<!-- entry begin -->
|
||||
<h3><a class="ablack" href="milestone-port-media-handling-from-v2.html">
|
||||
Milestone: Port Media handling from v2
|
||||
</a></h3>
|
||||
<!-- bashblog_timestamp: #202105031337.42# -->
|
||||
<div class="subtitle">May 03, 2021 —
|
||||
GNU social development team
|
||||
</div>
|
||||
<!-- text begin -->
|
||||
|
||||
<p><strong><a href="https://agile.gnusocial.rocks/doku.php?id=milestones:attachment_media_embed_handling">WIKI Milestone entry</a></strong></p>
|
||||
|
||||
<p>File Storage in GNU social is used for avatars, for notes containing
|
||||
attachments, and for notes containing links (in which case is an Embed preview).
|
||||
Notes can be created by local users or fetched from remote actors. Filehash is
|
||||
used to reduce file duplication.</p>
|
||||
|
||||
<p>When a user shares a Link that uses OpenGraph tags or has an OEmbed provider,
|
||||
the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/Embed">Embed plugin</a> generates a preview for it that may contain a thumbnail.</p>
|
||||
|
||||
<p>When a user shares a Link to an image, the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/StoreRemoteMedia">StoreRemoteMedia plugin</a> can fetch the
|
||||
file and make it available as an attachment, and will generate a thumbnail.</p>
|
||||
|
||||
<p>When an image, video, or other file type is uploaded or retrieved, an Attachment
|
||||
entity is created. When a thumbnail is requested, one is generated.</p>
|
||||
|
||||
<p>There are three relevant plugins for attachment handling:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ImageEncoder">ImageEncoder</a>: Allows to compress, validate, rescale, and sanitize images using VIPS.</li>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/VideoEncoder">VideoEncoder</a>: Allows to compress, validate, rescale, and sanitize videos using FFMpeg.</li>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/FileQuota">FileQuota</a>: Ensures a user stays under the file quota.</li>
|
||||
</ul>
|
||||
|
||||
<h2>How is the code organised?</h2>
|
||||
|
||||
<p>There are various entities related to attachment, and thumbnail handling.
|
||||
The main ones are:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Entity/Attachment.php">Attachment</a></li>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Entity/AttachmentThumbnail.php">AttachmentThumbnail</a></li>
|
||||
</ul>
|
||||
|
||||
<p>The plugins are able to act by means of the Events system, as elaborated in the
|
||||
<a href="https://docs.gnusocial.rocks/developer/attachments.html">documentation</a>.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
<footer class="l-box is-center">
|
||||
This site's source is <a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>.
|
||||
</footer>
|
||||
</div>
|
||||
</body></html>
|
34
v3/milestone-port-media-handling-from-v2.md
Normal file
34
v3/milestone-port-media-handling-from-v2.md
Normal file
@ -0,0 +1,34 @@
|
||||
Milestone: Port Media handling from v2
|
||||
|
||||
**[WIKI Milestone entry](https://agile.gnusocial.rocks/doku.php?id=milestones:attachment_media_embed_handling)**
|
||||
|
||||
File Storage in GNU social is used for avatars, for notes containing
|
||||
attachments, and for notes containing links (in which case is an Embed preview).
|
||||
Notes can be created by local users or fetched from remote actors. Filehash is
|
||||
used to reduce file duplication.
|
||||
|
||||
When a user shares a Link that uses OpenGraph tags or has an OEmbed provider,
|
||||
the [Embed plugin](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/Embed) generates a preview for it that may contain a thumbnail.
|
||||
|
||||
When a user shares a Link to an image, the [StoreRemoteMedia plugin](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/StoreRemoteMedia) can fetch the
|
||||
file and make it available as an attachment, and will generate a thumbnail.
|
||||
|
||||
When an image, video, or other file type is uploaded or retrieved, an Attachment
|
||||
entity is created. When a thumbnail is requested, one is generated.
|
||||
|
||||
There are three relevant plugins for attachment handling:
|
||||
|
||||
* [ImageEncoder](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ImageEncoder): Allows to compress, validate, rescale, and sanitize images using VIPS.
|
||||
* [VideoEncoder](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/VideoEncoder): Allows to compress, validate, rescale, and sanitize videos using FFMpeg.
|
||||
* [FileQuota](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/FileQuota): Ensures a user stays under the file quota.
|
||||
|
||||
## How is the code organised?
|
||||
|
||||
There are various entities related to attachment, and thumbnail handling.
|
||||
The main ones are:
|
||||
|
||||
* [Attachment](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Entity/Attachment.php)
|
||||
* [AttachmentThumbnail](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Entity/AttachmentThumbnail.php)
|
||||
|
||||
The plugins are able to act by means of the Events system, as elaborated in the
|
||||
[documentation](https://docs.gnusocial.rocks/developer/attachments.html).
|
65
v3/updates-finish-the-avatar-component.html
Normal file
65
v3/updates-finish-the-avatar-component.html
Normal file
@ -0,0 +1,65 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/pure-min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/grids-responsive-min.css">
|
||||
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
|
||||
<link rel="stylesheet" href="/assets/css/style.css">
|
||||
<link rel="stylesheet" href="/v3/blog.css">
|
||||
<title>Updates: Finish the Avatar component - GNU social V3</title>
|
||||
</head><body>
|
||||
<header class="header">
|
||||
<div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
|
||||
<a class="pure-menu-heading" href="/">GNU social</a>
|
||||
<ul class="pure-menu-list">
|
||||
<li class="pure-menu-item pure-menu-selected"><a href="index.html" class="pure-menu-link">Version 3</a></li>
|
||||
<li class="pure-menu-item"><a href="https://code.gnusocial.rocks/" class="pure-menu-link">Repository</a></li>
|
||||
<li class="pure-menu-item"><a href="https://coverage.gnusocial.rocks/" class="pure-menu-link">Code Coverage</a></li>
|
||||
<li class="pure-menu-item"><a href="https://docs.gnusocial.rocks/" class="pure-menu-link">Documentation</a></li>
|
||||
<li class="pure-menu-item"><a href="https://agile.gnusocial.rocks/" class="pure-menu-link">Wiki</a></li>
|
||||
<li class="pure-menu-item"><a href="https://kanban.undefinedhackers.net/?controller=BoardViewController&action=readonly&token=d2293e55cabae7cceff9fb496c651328195357d392b9e61a9f229ed6d463" class="pure-menu-link">Roadmap</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
<div id="divbodyholder">
|
||||
<div class="headerholder"><div class="header">
|
||||
<div id="title">
|
||||
<h1 class="nomargin"><a class="ablack" href="https://gnusocial.rocks/v3/index.html">GNU social V3</a></h1>
|
||||
<div id="description">Development blog where we announce our progress.</div>
|
||||
</div></div></div>
|
||||
<div id="divbody"><div class="content">
|
||||
<!-- entry begin -->
|
||||
<h3><a class="ablack" href="updates-finish-the-avatar-component.html">
|
||||
Updates: Finish the Avatar component
|
||||
</a></h3>
|
||||
<!-- bashblog_timestamp: #202108041342.37# -->
|
||||
<div class="subtitle">August 04, 2021 —
|
||||
GNU social development team
|
||||
</div>
|
||||
<!-- text begin -->
|
||||
|
||||
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Avatar">Avatar Component source</a>.</p>
|
||||
|
||||
<p>Its controller handles upload, update and removal.</p>
|
||||
|
||||
<p>Important change from v2: Avatars are now regular attachments.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
<footer class="l-box is-center">
|
||||
This site's source is <a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>.
|
||||
</footer>
|
||||
</div>
|
||||
</body></html>
|
7
v3/updates-finish-the-avatar-component.md
Normal file
7
v3/updates-finish-the-avatar-component.md
Normal file
@ -0,0 +1,7 @@
|
||||
Updates: Finish the Avatar component
|
||||
|
||||
[Avatar Component source](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Avatar).
|
||||
|
||||
Its controller handles upload, update and removal.
|
||||
|
||||
Important change from v2: Avatars are now regular attachments.
|
@ -0,0 +1,76 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/pure-min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/grids-responsive-min.css">
|
||||
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
|
||||
<link rel="stylesheet" href="/assets/css/style.css">
|
||||
<link rel="stylesheet" href="/v3/blog.css">
|
||||
<title>Updates: Implement StoreRemoteMedia for v3 and port Embed - GNU social V3</title>
|
||||
</head><body>
|
||||
<header class="header">
|
||||
<div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
|
||||
<a class="pure-menu-heading" href="/">GNU social</a>
|
||||
<ul class="pure-menu-list">
|
||||
<li class="pure-menu-item pure-menu-selected"><a href="index.html" class="pure-menu-link">Version 3</a></li>
|
||||
<li class="pure-menu-item"><a href="https://code.gnusocial.rocks/" class="pure-menu-link">Repository</a></li>
|
||||
<li class="pure-menu-item"><a href="https://coverage.gnusocial.rocks/" class="pure-menu-link">Code Coverage</a></li>
|
||||
<li class="pure-menu-item"><a href="https://docs.gnusocial.rocks/" class="pure-menu-link">Documentation</a></li>
|
||||
<li class="pure-menu-item"><a href="https://agile.gnusocial.rocks/" class="pure-menu-link">Wiki</a></li>
|
||||
<li class="pure-menu-item"><a href="https://kanban.undefinedhackers.net/?controller=BoardViewController&action=readonly&token=d2293e55cabae7cceff9fb496c651328195357d392b9e61a9f229ed6d463" class="pure-menu-link">Roadmap</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
<div id="divbodyholder">
|
||||
<div class="headerholder"><div class="header">
|
||||
<div id="title">
|
||||
<h1 class="nomargin"><a class="ablack" href="https://gnusocial.rocks/v3/index.html">GNU social V3</a></h1>
|
||||
<div id="description">Development blog where we announce our progress.</div>
|
||||
</div></div></div>
|
||||
<div id="divbody"><div class="content">
|
||||
<!-- entry begin -->
|
||||
<h3><a class="ablack" href="updates-implement-storeremotemedia-for-v3-and-port-embed.html">
|
||||
Updates: Implement StoreRemoteMedia for v3 and port Embed
|
||||
</a></h3>
|
||||
<!-- bashblog_timestamp: #202108131337.42# -->
|
||||
<div class="subtitle">August 13, 2021 —
|
||||
GNU social development team
|
||||
</div>
|
||||
<!-- text begin -->
|
||||
|
||||
<p>GNU social comes with two plugins that add important media functionality.</p>
|
||||
|
||||
<p>Not talking neither about ImageEncoder nor VideoEncoder this time, but rather
|
||||
about StoreRemoteMedia and Embed.</p>
|
||||
|
||||
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/StoreRemoteMedia">StoreRemoteMedia</a>
|
||||
fetches remote files when they are Linked in a note. I.e., when the major mimetype isn't <code>text</code>.
|
||||
It usually fetches and attempts to generate a thumb, if there are no encoders, it drops.</p>
|
||||
|
||||
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/Embed">Embed</a>
|
||||
attempts to generate a page preview from opengraph and oembed. I.e., acts when the major mimetype is <code>text</code>.</p>
|
||||
|
||||
<p>We've changed so much with GNU social v3 that, regarding SRM there was
|
||||
no possible port, just a full rewrite. The code of both plugins became
|
||||
much easier of understanding and compact, while promoting the same
|
||||
functionality with more stability.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
<footer class="l-box is-center">
|
||||
This site's source is <a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>.
|
||||
</footer>
|
||||
</div>
|
||||
</body></html>
|
@ -0,0 +1,18 @@
|
||||
Updates: Implement StoreRemoteMedia for v3 and port Embed
|
||||
|
||||
GNU social comes with two plugins that add important media functionality.
|
||||
|
||||
Not talking neither about ImageEncoder nor VideoEncoder this time, but rather
|
||||
about StoreRemoteMedia and Embed.
|
||||
|
||||
[StoreRemoteMedia](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/StoreRemoteMedia)
|
||||
fetches remote files when they are Linked in a note. I.e., when the major mimetype isn't `text`.
|
||||
It usually fetches and attempts to generate a thumb, if there are no encoders, it drops.
|
||||
|
||||
[Embed](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/Embed)
|
||||
attempts to generate a page preview from opengraph and oembed. I.e., acts when the major mimetype is `text`.
|
||||
|
||||
We've changed so much with GNU social v3 that, regarding SRM there was
|
||||
no possible port, just a full rewrite. The code of both plugins became
|
||||
much easier of understanding and compact, while promoting the same
|
||||
functionality with more stability.
|
85
v3/updates-improve-the-attachments-system.html
Normal file
85
v3/updates-improve-the-attachments-system.html
Normal file
@ -0,0 +1,85 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/pure-min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.5/build/grids-responsive-min.css">
|
||||
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
|
||||
<link rel="stylesheet" href="/assets/css/style.css">
|
||||
<link rel="stylesheet" href="/v3/blog.css">
|
||||
<title>Updates: Improve the Attachments system - GNU social V3</title>
|
||||
</head><body>
|
||||
<header class="header">
|
||||
<div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
|
||||
<a class="pure-menu-heading" href="/">GNU social</a>
|
||||
<ul class="pure-menu-list">
|
||||
<li class="pure-menu-item pure-menu-selected"><a href="index.html" class="pure-menu-link">Version 3</a></li>
|
||||
<li class="pure-menu-item"><a href="https://code.gnusocial.rocks/" class="pure-menu-link">Repository</a></li>
|
||||
<li class="pure-menu-item"><a href="https://coverage.gnusocial.rocks/" class="pure-menu-link">Code Coverage</a></li>
|
||||
<li class="pure-menu-item"><a href="https://docs.gnusocial.rocks/" class="pure-menu-link">Documentation</a></li>
|
||||
<li class="pure-menu-item"><a href="https://agile.gnusocial.rocks/" class="pure-menu-link">Wiki</a></li>
|
||||
<li class="pure-menu-item"><a href="https://kanban.undefinedhackers.net/?controller=BoardViewController&action=readonly&token=d2293e55cabae7cceff9fb496c651328195357d392b9e61a9f229ed6d463" class="pure-menu-link">Roadmap</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
<div id="divbodyholder">
|
||||
<div class="headerholder"><div class="header">
|
||||
<div id="title">
|
||||
<h1 class="nomargin"><a class="ablack" href="https://gnusocial.rocks/v3/index.html">GNU social V3</a></h1>
|
||||
<div id="description">Development blog where we announce our progress.</div>
|
||||
</div></div></div>
|
||||
<div id="divbody"><div class="content">
|
||||
<!-- entry begin -->
|
||||
<h3><a class="ablack" href="updates-improve-the-attachments-system.html">
|
||||
Updates: Improve the Attachments system
|
||||
</a></h3>
|
||||
<!-- bashblog_timestamp: #202108051337.42# -->
|
||||
<div class="subtitle">August 05, 2021 —
|
||||
GNU social development team
|
||||
</div>
|
||||
<!-- text begin -->
|
||||
|
||||
<p>With the milestone "Port Media system from v2" we had ported the existing
|
||||
attachment system. The fact is that this system wasn't good enough.</p>
|
||||
|
||||
<p>It's always important to start with the original code as that allows us
|
||||
to review past decisions and understand all the corner cases.</p>
|
||||
|
||||
<p>Sadly, what motivated us to re-design the attachment system was the
|
||||
non-considered corner cases.</p>
|
||||
|
||||
<p>Key commits:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/32ad5dbd74ebb369c4b3ed688e1fb78464fabe49">32ad5dbd74 - [ENTITY] Split Attachment in various new entities</a></li>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/c381e58d3307e7dd07abeb9cf5b3998e34f5bd48">c381e58d33 - [ENTITY] Refactor RemoteURL entities to Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>The reasoning leading to these entities and structure is detailed in our
|
||||
<a href="http://agile.gnusocial.rocks/doku.php?id=attachment">wiki</a>.</p>
|
||||
|
||||
<p>Some relevant observations:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>Link</code> is now part of GNU social Data Representation terms. It represents
|
||||
any remote URL being shared in a note.</li>
|
||||
<li>There's only one fixed directory for GSFiles.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
<footer class="l-box is-center">
|
||||
This site's source is <a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>.
|
||||
</footer>
|
||||
</div>
|
||||
</body></html>
|
24
v3/updates-improve-the-attachments-system.md
Normal file
24
v3/updates-improve-the-attachments-system.md
Normal file
@ -0,0 +1,24 @@
|
||||
Updates: Improve the Attachments system
|
||||
|
||||
With the milestone "Port Media system from v2" we had ported the existing
|
||||
attachment system. The fact is that this system wasn't good enough.
|
||||
|
||||
It's always important to start with the original code as that allows us
|
||||
to review past decisions and understand all the corner cases.
|
||||
|
||||
Sadly, what motivated us to re-design the attachment system was the
|
||||
non-considered corner cases.
|
||||
|
||||
Key commits:
|
||||
|
||||
* [32ad5dbd74 - [ENTITY] Split Attachment in various new entities](https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/32ad5dbd74ebb369c4b3ed688e1fb78464fabe49)
|
||||
* [c381e58d33 - [ENTITY] Refactor RemoteURL entities to Link](https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/c381e58d3307e7dd07abeb9cf5b3998e34f5bd48)
|
||||
|
||||
The reasoning leading to these entities and structure is detailed in our
|
||||
[wiki](http://agile.gnusocial.rocks/doku.php?id=attachment).
|
||||
|
||||
Some relevant observations:
|
||||
|
||||
- `Link` is now part of GNU social Data Representation terms. It represents
|
||||
any remote URL being shared in a note.
|
||||
- There's only one fixed directory for GSFiles.
|
Loading…
Reference in New Issue
Block a user