feat: add emoji support

This commit is contained in:
Alexander Daichendt 2022-07-27 12:08:05 +02:00
parent 559bb72b91
commit 424c7b2ff4
6 changed files with 56 additions and 27 deletions

View file

@ -1,5 +1,6 @@
import { defineMDSveXConfig as defineConfig } from 'mdsvex';
import remarkGFM from 'remark-gfm';
import remarkEmoji from 'remark-emoji';
const config = defineConfig({
layout: {
@ -11,7 +12,7 @@ const config = defineConfig({
dashes: 'oldschool',
},
remarkPlugins: [remarkGFM],
remarkPlugins: [remarkGFM, remarkEmoji],
rehypePlugins: [],
});

View file

@ -30,6 +30,7 @@
"postcss-normalize": "^10.0.1",
"prettier": "^2.6.2",
"prettier-plugin-svelte": "^2.7.0",
"remark-emoji": "^3.0.2",
"remark-gfm": "^3.0.1",
"svelte": "^3.44.0",
"svelte-check": "^2.7.1",

View file

@ -16,7 +16,7 @@
// svelte-ignore unused-export-let
export let description;
export let created;
export let updated;
export let updated = '';
// svelte-ignore unused-export-let
export let keywords;
// svelte-ignore unused-export-let

View file

@ -3,17 +3,17 @@ import type { BlogPostFrontmatter, BlogPostMeta } from '../../types';
export async function GET() {
const modules = import.meta.glob('./*.svx');
const posts: BlogPostMeta[] = [];
const resolved = (await Promise.all(Object.values(modules).map((f) => f()))) as {
metadata: BlogPostFrontmatter;
}[];
resolved.forEach((file, index) => {
const path = Object.keys(modules)[index];
const { metadata } = file;
resolved.forEach(({ metadata }, index) => {
const path = Object.keys(modules)[index].replace('.svx', '');
if (!metadata.hidden) posts.push({ ...metadata, href: `blog/${path}` });
if (!metadata.hidden) posts.push({ ...metadata, href: `blog/${path.replace('.svx', '')}` });
});
posts.sort((a, b) => new Date(b.date).valueOf() - new Date(a.date).valueOf());
posts.sort((a, b) => new Date(b.created).valueOf() - new Date(a.created).valueOf());
return {
body: { posts },

View file

@ -20,6 +20,7 @@ hidden: false
}
</script>
Moving away from BigTech is not an easy task. However, in these days, there are plenty polished
alternatives out there. Over the years I tried out many different services and software. I will
present what worked best for me here.
@ -32,32 +33,32 @@ Privacy is not a black-and-white game.
| Name | Description | Cost | Selfhostable |
| --------------------------------------------------------- | -------------------------------------------- | :---------------: | :----------: |
| [Bitwarden](https://bitwarden.com/) | Password manager | free | yes |
| [SimpleLogin](https://simplelogin.io/) | Email aliases | free for students | yes |
| [Mailbox.org](https://mailbox.org/en/) | Email hosting | 1 € / m | no |
| [Element](https://element.io/) | Instant messenging | free | yes |
| [OpenStreetMap](https://www.openstreetmap.org/) | Global map | free | no |
| [Baïkal](https://sabre.io/baikal/) | Lightweight calendar synchronisation | free | yes |
| [Filebrowser](https://github.com/filebrowser/filebrowser) | Lightweight file organisation in the browser | free | yes |
| [xBrowserSync](https://www.xbrowsersync.org/) | Bookmark sync | free | yes |
| [Bitwarden](https://bitwarden.com/) | Password manager | free | :white_check_mark: |
| [SimpleLogin](https://simplelogin.io/) | Email aliases | free for students | :white_check_mark: |
| [Mailbox.org](https://mailbox.org/en/) | Email hosting | 1 € / m | :x: |
| [Element](https://element.io/) | Instant messenging | free | :white_check_mark: |
| [OpenStreetMap](https://www.openstreetmap.org/) | Global map | free | :x: |
| [Baïkal](https://sabre.io/baikal/) | Lightweight calendar synchronisation | free | :white_check_mark: |
| [Filebrowser](https://github.com/filebrowser/filebrowser) | Lightweight file organisation in the browser | free | :white_check_mark: |
| [xBrowserSync](https://www.xbrowsersync.org/) | Bookmark sync | free | :white_check_mark: |
## PC Software
| Name | Description | Cost | Selfhostable |
| --------------------------------------------------------- | -------------------------------------------- | :---------------: | :----------: |
| [Ungoogled Chromium](https://github.com/ungoogled-software/ungoogled-chromium) | Browser | free | NaN |
| [KDE Software Suite](https://kde.org/) | Desktop environment | free | NaN |
| [i3wm](https://i3wm.org/) | Desktop environment | free | NaN |
| [VSCodium](https://vscodium.com/) | No telemetry VSCode | free | NaN |
| [Xournal++](https://xournalpp.github.io/) | PDF annotation and creation | free | NaN |
| [Ungoogled Chromium](https://github.com/ungoogled-software/ungoogled-chromium) | Browser | free | - |
| [KDE Software Suite](https://kde.org/) | Desktop environment | free | - |
| [i3wm](https://i3wm.org/) | Desktop environment | free | - |
| [VSCodium](https://vscodium.com/) | No telemetry VSCode | free | - |
| [Xournal++](https://xournalpp.github.io/) | PDF annotation and creation | free | - |
## Android Apps
| Name | Description | Cost | Selfhostable |
| --------------------------------------------------------- | -------------------------------------------- | :---------------: | :----------: |
| [Infinity](https://f-droid.org/packages/ml.docilealligator.infinityforreddit/) | Reddit client | free | NaN |
| [Aegis](https://f-droid.org/en/packages/com.beemdevelopment.aegis) | 2FA Manager | free | NaN |
| [FindMyDevice](https://f-droid.org/en/packages/de.nulide.findmydevice/) | Remote phone control | free | yes |
| [AdAway](https://f-droid.org/en/packages/org.adaway/) | Adblocking with hosts file | free | NaN |
| [OsmAnd+](https://f-droid.org/en/packages/net.osmand.plus/) | Global map | free | no |
| [StreetComplete](https://f-droid.org/en/packages/de.westnordost.streetcomplete/) | Improve OpenStreetMap | free | NaN |
| [Infinity](https://f-droid.org/packages/ml.docilealligator.infinityforreddit/) | Reddit client | free | - |
| [Aegis](https://f-droid.org/en/packages/com.beemdevelopment.aegis) | 2FA Manager | free | - |
| [FindMyDevice](https://f-droid.org/en/packages/de.nulide.findmydevice/) | Remote phone control | free | :white_check_mark: |
| [AdAway](https://f-droid.org/en/packages/org.adaway/) | Adblocking with hosts file | free | - |
| [OsmAnd+](https://f-droid.org/en/packages/net.osmand.plus/) | Global map | free | :x: |
| [StreetComplete](https://f-droid.org/en/packages/de.westnordost.streetcomplete/) | Improve OpenStreetMap | free | - |

View file

@ -613,6 +613,11 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
emoticon@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.0.1.tgz#2d2bbbf231ce3a5909e185bbb64a9da703a1e749"
integrity sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==
es6-promise@^3.1.2:
version "3.3.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
@ -1215,6 +1220,11 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
longest-streak@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d"
@ -1727,6 +1737,13 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
node-emoji@^1.11.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c"
integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==
dependencies:
lodash "^4.17.21"
node-fetch@^2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
@ -1929,6 +1946,15 @@ regexpp@^3.2.0:
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
remark-emoji@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-3.0.2.tgz#786e88af1ecae682d74d7e1219989f34708205da"
integrity sha512-hEgxEv2sBtvhT3tNG/tQeeFY3EbslftaOoG14dDZndLo25fWJ6Fbg4ukFbIotOWWrfXyASjXjyHT+6n366k3mg==
dependencies:
emoticon "^4.0.0"
node-emoji "^1.11.0"
unist-util-visit "^4.1.0"
remark-gfm@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f"
@ -2288,7 +2314,7 @@ unist-util-visit-parents@^5.0.0:
"@types/unist" "^2.0.0"
unist-util-is "^5.0.0"
unist-util-visit@^4.0.0:
unist-util-visit@^4.0.0, unist-util-visit@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5"
integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==