diff --git a/source/_data/miscellaneous.json b/source/_data/miscellaneous.json
new file mode 100644
index 0000000..3e20557
--- /dev/null
+++ b/source/_data/miscellaneous.json
@@ -0,0 +1,174 @@
+{
+ "apps":
+ [
+ {
+ "title": "Aardwolf",
+ "source": "github.com/Aardwolf-Social/aardwolf",
+ "protocols": "ActivityPub",
+ "site": "aardwolf.social",
+ "logo": "/img/misc/aardwolf.png",
+ "servers": "",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["SN-ma"]
+ },
+ {
+ "title": "Funkwhale",
+ "source": "code.eliotberriot.com/funkwhale/funkwhale",
+ "protocols": "ActivityPub",
+ "site": "join.funkwhale.audio",
+ "logo": "/img/misc/funkwhale.svg",
+ "servers": "the-federation.info/funkwhale",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["Media"]
+ },
+ {
+ "title": "Plume",
+ "source": "github.com/Plume-org/Plume",
+ "protocols": "ActivityPub",
+ "site": "",
+ "logo": "/img/misc/plume.svg",
+ "servers": "the-federation.info/plume",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["Blog-Pub"]
+ },
+ {
+ "title": "Write Freely",
+ "source": "github.com/writeas/writefreely",
+ "protocols": "ActivityPub",
+ "site": "writefreely.org",
+ "logo": "/img/misc/writefreely.svg",
+ "servers": "the-federation.info/writefreely",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["Blog-Pub"]
+ },
+ {
+ "title": "Read.as",
+ "source": "github.com/writeas/Read.as",
+ "protocols": "ActivityPub",
+ "site": "read.as",
+ "logo": "",
+ "servers": "the-federation.info/read.as",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["Blog-Pub"]
+ },
+ {
+ "title": "Kroeg",
+ "source": "git.puckipedia.com/kroeg",
+ "protocols": "ActivityPub",
+ "site": "",
+ "logo": "",
+ "servers": "fediverse.network/kroeg",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["SN-mi"]
+ },
+ {
+ "title": "microblog.pub",
+ "source": "github.com/tsileo/microblog.pub",
+ "protocols": "ActivityPub",
+ "site": "",
+ "logo": "",
+ "servers": "fediverse.network/microblogpub",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["SN-mi"]
+ },
+ {
+ "title": "Rustodon",
+ "source": "github.com/rustodon/rustodon",
+ "protocols": "ActivityPub",
+ "site": "",
+ "logo": "",
+ "servers": "fediverse.network/rustodon",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["SN-mi"]
+ },
+ {
+ "title": "dokieli",
+ "source": "github.com/linkeddata/dokieli",
+ "protocols": "ActivityPub",
+ "site": "dokie.li",
+ "logo": "",
+ "servers": "",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["Blog-Pub"]
+ },
+ {
+ "title": "Prismo",
+ "source": "gitlab.com/mbajur/prismo",
+ "protocols": "ActivityPub",
+ "site": "",
+ "logo": "",
+ "servers": "",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["Links"]
+ },
+ {
+ "title": "Nextcloud",
+ "source": "github.com/nextcloud/activity",
+ "protocols": "ActivityPub",
+ "site": "nextcloud.com",
+ "logo": "",
+ "servers": "",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["Files-Cal"]
+ },
+ {
+ "title": "ownCloud",
+ "source": "github.com/owncloud/activity",
+ "protocols": "ActivityPub",
+ "site": "owncloud.org",
+ "logo": "",
+ "servers": "",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["Files-Cal"]
+ },
+ {
+ "title": "reel2bits",
+ "source": "github.com/rhaamo/reel2bits",
+ "protocols": "ActivityPub",
+ "site": "",
+ "logo": "",
+ "servers": "fediverse.network/reel2bits",
+ "apClass": true,
+ "zotClass": false,
+ "diasporaClass": false,
+ "OStatusClass": false,
+ "categories": ["Media"]
+ }
+ ]
+}
diff --git a/source/en/miscellaneous/index.md b/source/en/miscellaneous/index.md
new file mode 100644
index 0000000..2004359
--- /dev/null
+++ b/source/en/miscellaneous/index.md
@@ -0,0 +1,7 @@
+
+---
+layout: "miscellaneous"
+title: ""
+banner: "/img/misc-bg.png"
+percent: "45% 60%"
+---
diff --git a/source/img/misc-bg.png b/source/img/misc-bg.png
new file mode 100644
index 0000000..2bc6536
Binary files /dev/null and b/source/img/misc-bg.png differ
diff --git a/source/img/misc/aardwolf.png b/source/img/misc/aardwolf.png
new file mode 100644
index 0000000..caebb45
Binary files /dev/null and b/source/img/misc/aardwolf.png differ
diff --git a/source/img/misc/funkwhale.svg b/source/img/misc/funkwhale.svg
new file mode 100644
index 0000000..a2de65e
--- /dev/null
+++ b/source/img/misc/funkwhale.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/img/misc/plume.svg b/source/img/misc/plume.svg
new file mode 100644
index 0000000..0183059
--- /dev/null
+++ b/source/img/misc/plume.svg
@@ -0,0 +1 @@
+
diff --git a/source/img/misc/postActiv.svg b/source/img/misc/postActiv.svg
new file mode 100644
index 0000000..fd95f58
--- /dev/null
+++ b/source/img/misc/postActiv.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/img/misc/pumpio.svg b/source/img/misc/pumpio.svg
new file mode 100644
index 0000000..7576433
--- /dev/null
+++ b/source/img/misc/pumpio.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/img/misc/writefreely.svg b/source/img/misc/writefreely.svg
new file mode 100644
index 0000000..ac786e4
--- /dev/null
+++ b/source/img/misc/writefreely.svg
@@ -0,0 +1 @@
+
diff --git a/themes/starter/layout/_partial/svgfont.ejs b/themes/starter/layout/_partial/svgfont.ejs
index e8ad725..73a82de 100644
--- a/themes/starter/layout/_partial/svgfont.ejs
+++ b/themes/starter/layout/_partial/svgfont.ejs
@@ -23,6 +23,10 @@
+
+
+
+
diff --git a/themes/starter/layout/layout.ejs b/themes/starter/layout/layout.ejs
index e846e37..424a41f 100644
--- a/themes/starter/layout/layout.ejs
+++ b/themes/starter/layout/layout.ejs
@@ -2,12 +2,16 @@
<%
let contType = '';
let ball = false;
+ let misc;
if (is_root()) {
contType = 'main__container';
}
if (page.layout == 'crystalball') {
ball = true;
}
+ if (page.layout == 'miscellaneous') {
+ misc = "miscellaneous";
+ }
%>
@@ -21,7 +25,7 @@
<%- partial('_partial/navbar', null, {cache: !config.relative_link}) %>
<%- partial('_partial/sidebar') %>
-
+
<%- body %>
diff --git a/themes/starter/layout/miscellaneous.ejs b/themes/starter/layout/miscellaneous.ejs
new file mode 100644
index 0000000..c9d310d
--- /dev/null
+++ b/themes/starter/layout/miscellaneous.ejs
@@ -0,0 +1,58 @@
+---
+layout: layout
+---
+
+<%
+ const apps = site.data.miscellaneous.apps;
+%>
+
+<%- partial('_partial/heroheader') %>
+
+
+ EXPLORE FEDIVERSE SOFTWARE
+
+ ActivityPub
+ Zot
+ diaspora
+ OStatus
+
+
+ Social network (macro)
+ Social network (micro)
+ Blog & Publishing
+ Media sharing (audio, images)
+ Link sharing
+ Events & meetups
+ File hosting & Calendar
+ Developer Tools
+ Plugins
+
+
+ <% for (item in apps) { %>
+
+ <% let type = apps[item].categories %>
+
+
+
+ <% if (apps[item].logo) { %>
<% } %>
+
<%= apps[item].title %>
+
+
+ <% if (apps[item].site) { %>
+
Website
+
<%= apps[item].site %>
+
+ <% } %>
+
Source code
+
repository
+ <% if (apps[item].servers) { %>
+
Servers
+
list
+ <% } %>
+
Protocols
+
<%= apps[item].protocols %>
+
+
+ <% } %>
+
+
diff --git a/themes/starter/source/assets/scss/main.scss b/themes/starter/source/assets/scss/main.scss
index 96f7b8d..a6bf744 100644
--- a/themes/starter/source/assets/scss/main.scss
+++ b/themes/starter/source/assets/scss/main.scss
@@ -15,4 +15,5 @@
@import "modules/buttons";
@import "modules/network";
@import "modules/chronicles";
+@import "modules/misc";
@import "modules/crystalball";
diff --git a/themes/starter/source/assets/scss/modules/_misc.scss b/themes/starter/source/assets/scss/modules/_misc.scss
new file mode 100644
index 0000000..a7b5f2b
--- /dev/null
+++ b/themes/starter/source/assets/scss/modules/_misc.scss
@@ -0,0 +1,172 @@
+
+.miscellaneous .hero-header {
+ height: 420px;
+ box-shadow: 1px 1px 4px 2px $black;
+}
+
+.misc {
+ background: $asphalt;
+ color: $white;
+}
+
+.misc a {
+ border: 0;
+}
+
+.misc svg {
+ width: 13px;
+ height: 13px;
+ color: $black;
+ vertical-align: middle;
+}
+
+.misc h2 {
+ text-align: center;
+ margin-bottom: 1em;
+}
+
+.contents.misc p {
+ margin: .2em 0;
+}
+
+.misc h2,
+.misc p {
+ color: $golden;
+}
+
+.misc input {
+ vertical-align: sub;
+ margin: 0 1.2em 0 .4em;
+}
+
+.misc p:nth-of-type(n+5):nth-of-type(-n+13) {
+ color: $white;
+}
+
+.misc__grid {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ margin: 1.2em 0;
+}
+
+.misc__grid .card {
+ background-color: $white;
+ color: $black;
+ border-radius: 8px;
+ flex: 30% 0 0;
+ margin-bottom: 2em;
+}
+
+.card p {
+ padding-left: .5em;
+ margin-bottom: .5em;
+ color: $black;
+}
+
+.card__title {
+ margin-top: 1.2em;
+ height: 45px;
+}
+
+.card__title p {
+ color: $black;
+}
+
+.misc .title {
+ float: right;
+ width: 65%;
+ right: 0;
+ background: $golden;
+ padding: .1em 1em .1em .2em;
+ text-align: right;
+}
+
+.card__body {
+ padding: 1em 2em 2em;
+}
+
+.card__subtitle {
+ border-bottom: 1px solid $golden;
+}
+
+.card__title > img {
+ display: inline;
+ vertical-align: middle;
+ margin-left: 2em;
+ width: 45px;
+}
+
+.option {
+ display: inline-block;
+}
+
+.option + #sortAP:checked ~ .misc__grid .card:not(.ap) {
+ display: none;
+}
+
+.option + #sortZot:checked ~ .misc__grid .card:not(.zot) {
+ display: none;
+}
+
+.option + #sortDiaspora:checked ~ .misc__grid .card:not(.dia) {
+ display: none;
+}
+
+.option + #sortOstatus:checked ~ .misc__grid .card:not(.os) {
+ display: none;
+}
+
+.option + #snMacro:checked ~ .misc__grid .card:not(.SN-ma) {
+ display: none;
+}
+
+.option + #snMicro:checked ~ .misc__grid .card:not(.SN-mi) {
+ display: none;
+}
+
+.option + #blogPub:checked ~ .misc__grid .card:not(.Blog-Pub) {
+ display: none;
+}
+
+.option + #media:checked ~ .misc__grid .card:not(.Media) {
+ display: none;
+}
+
+.option + #links:checked ~ .misc__grid .card:not(.Links) {
+ display: none;
+}
+
+.option + #evMeet:checked ~ .misc__grid .card:not(.Ev-Meet) {
+ display: none;
+}
+
+.option + #files:checked ~ .misc__grid .card:not(.Files-Cal) {
+ display: none;
+}
+
+.option + #dev:checked ~ .misc__grid .card:not(.Devtools) {
+ display: none;
+}
+
+.option + #plugins:checked ~ .misc__grid .card:not(.Plugins) {
+ display: none;
+}
+
+@media screen and (max-width: $mq-medium) {
+ .misc__grid .card {
+ flex: 45% 0 0;
+ }
+}
+
+@media screen and (max-width: $mq-small) {
+ .misc__grid .card {
+ flex: 49% 0 0;
+ }
+}
+
+@media screen and (max-width: $mq-xsmall) {
+ .misc__grid .card {
+ flex: 100% 0 0;
+ }
+}
diff --git a/themes/starter/source/assets/scss/partials/_colors.scss b/themes/starter/source/assets/scss/partials/_colors.scss
index 8276f6e..5210836 100644
--- a/themes/starter/source/assets/scss/partials/_colors.scss
+++ b/themes/starter/source/assets/scss/partials/_colors.scss
@@ -1,10 +1,11 @@
$white: #ffffff;
-$golden: #daba76;
+$golden: #fecb52;
$coral: #e93a32;
$black: #0e0a0c;
+$asphalt: #171014;
$grey: #b9b9b9;
$diaspora: #000000;
diff --git a/themes/starter/source/assets/scss/partials/_layout.scss b/themes/starter/source/assets/scss/partials/_layout.scss
index 550b257..f76ca00 100644
--- a/themes/starter/source/assets/scss/partials/_layout.scss
+++ b/themes/starter/source/assets/scss/partials/_layout.scss
@@ -95,6 +95,7 @@ h3 {
ul > li {
list-style-type: none;
+ padding: .2em 0;
}
ol {