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 { defineMDSveXConfig as defineConfig } from 'mdsvex';
import remarkGFM from 'remark-gfm'; import remarkGFM from 'remark-gfm';
import remarkEmoji from 'remark-emoji';
const config = defineConfig({ const config = defineConfig({
layout: { layout: {
@ -11,7 +12,7 @@ const config = defineConfig({
dashes: 'oldschool', dashes: 'oldschool',
}, },
remarkPlugins: [remarkGFM], remarkPlugins: [remarkGFM, remarkEmoji],
rehypePlugins: [], rehypePlugins: [],
}); });

View file

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

View file

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

View file

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

View file

@ -20,6 +20,7 @@ hidden: false
} }
</script> </script>
Moving away from BigTech is not an easy task. However, in these days, there are plenty polished 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 alternatives out there. Over the years I tried out many different services and software. I will
present what worked best for me here. present what worked best for me here.
@ -32,32 +33,32 @@ Privacy is not a black-and-white game.
| Name | Description | Cost | Selfhostable | | Name | Description | Cost | Selfhostable |
| --------------------------------------------------------- | -------------------------------------------- | :---------------: | :----------: | | --------------------------------------------------------- | -------------------------------------------- | :---------------: | :----------: |
| [Bitwarden](https://bitwarden.com/) | Password manager | free | yes | | [Bitwarden](https://bitwarden.com/) | Password manager | free | :white_check_mark: |
| [SimpleLogin](https://simplelogin.io/) | Email aliases | free for students | yes | | [SimpleLogin](https://simplelogin.io/) | Email aliases | free for students | :white_check_mark: |
| [Mailbox.org](https://mailbox.org/en/) | Email hosting | 1 € / m | no | | [Mailbox.org](https://mailbox.org/en/) | Email hosting | 1 € / m | :x: |
| [Element](https://element.io/) | Instant messenging | free | yes | | [Element](https://element.io/) | Instant messenging | free | :white_check_mark: |
| [OpenStreetMap](https://www.openstreetmap.org/) | Global map | free | no | | [OpenStreetMap](https://www.openstreetmap.org/) | Global map | free | :x: |
| [Baïkal](https://sabre.io/baikal/) | Lightweight calendar synchronisation | free | yes | | [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 | yes | | [Filebrowser](https://github.com/filebrowser/filebrowser) | Lightweight file organisation in the browser | free | :white_check_mark: |
| [xBrowserSync](https://www.xbrowsersync.org/) | Bookmark sync | free | yes | | [xBrowserSync](https://www.xbrowsersync.org/) | Bookmark sync | free | :white_check_mark: |
## PC Software ## PC Software
| Name | Description | Cost | Selfhostable | | Name | Description | Cost | Selfhostable |
| --------------------------------------------------------- | -------------------------------------------- | :---------------: | :----------: | | --------------------------------------------------------- | -------------------------------------------- | :---------------: | :----------: |
| [Ungoogled Chromium](https://github.com/ungoogled-software/ungoogled-chromium) | Browser | free | NaN | | [Ungoogled Chromium](https://github.com/ungoogled-software/ungoogled-chromium) | Browser | free | - |
| [KDE Software Suite](https://kde.org/) | Desktop environment | free | NaN | | [KDE Software Suite](https://kde.org/) | Desktop environment | free | - |
| [i3wm](https://i3wm.org/) | Desktop environment | free | NaN | | [i3wm](https://i3wm.org/) | Desktop environment | free | - |
| [VSCodium](https://vscodium.com/) | No telemetry VSCode | free | NaN | | [VSCodium](https://vscodium.com/) | No telemetry VSCode | free | - |
| [Xournal++](https://xournalpp.github.io/) | PDF annotation and creation | free | NaN | | [Xournal++](https://xournalpp.github.io/) | PDF annotation and creation | free | - |
## Android Apps ## Android Apps
| Name | Description | Cost | Selfhostable | | Name | Description | Cost | Selfhostable |
| --------------------------------------------------------- | -------------------------------------------- | :---------------: | :----------: | | --------------------------------------------------------- | -------------------------------------------- | :---------------: | :----------: |
| [Infinity](https://f-droid.org/packages/ml.docilealligator.infinityforreddit/) | Reddit client | 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 | NaN | | [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 | yes | | [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 | NaN | | [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 | no | | [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 | NaN | | [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" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 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: es6-promise@^3.1.2:
version "3.3.1" version "3.3.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" 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" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 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: longest-streak@^3.0.0:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" 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" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 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: node-fetch@^2.6.7:
version "2.6.7" version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" 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" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== 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: remark-gfm@^3.0.1:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" 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" "@types/unist" "^2.0.0"
unist-util-is "^5.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" version "4.1.0"
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5"
integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==