From 424c7b2ff4740a039a2e64567ed39dfa8c7068c3 Mon Sep 17 00:00:00 2001 From: Alexander Daichendt Date: Wed, 27 Jul 2022 12:08:05 +0200 Subject: [PATCH] feat: add emoji support --- mdsvex.config.js | 3 +- package.json | 1 + src/layouts/blog.svelte | 2 +- src/routes/blog/posts.json.ts | 10 ++--- src/routes/blog/software-recommendations.svx | 39 ++++++++++---------- yarn.lock | 28 +++++++++++++- 6 files changed, 56 insertions(+), 27 deletions(-) diff --git a/mdsvex.config.js b/mdsvex.config.js index f80fbd6..3587dc3 100644 --- a/mdsvex.config.js +++ b/mdsvex.config.js @@ -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: [], }); diff --git a/package.json b/package.json index 020cdf9..15f9fe3 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/layouts/blog.svelte b/src/layouts/blog.svelte index 96db292..25a1640 100644 --- a/src/layouts/blog.svelte +++ b/src/layouts/blog.svelte @@ -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 diff --git a/src/routes/blog/posts.json.ts b/src/routes/blog/posts.json.ts index 581e876..61bbb16 100644 --- a/src/routes/blog/posts.json.ts +++ b/src/routes/blog/posts.json.ts @@ -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 }, diff --git a/src/routes/blog/software-recommendations.svx b/src/routes/blog/software-recommendations.svx index 47ae44f..8eaa023 100644 --- a/src/routes/blog/software-recommendations.svx +++ b/src/routes/blog/software-recommendations.svx @@ -20,6 +20,7 @@ hidden: false } + 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 | - | diff --git a/yarn.lock b/yarn.lock index 2299471..ebbf4e8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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==