feat: add emoji support
This commit is contained in:
parent
559bb72b91
commit
424c7b2ff4
6 changed files with 56 additions and 27 deletions
|
|
@ -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: [],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 },
|
||||||
|
|
|
||||||
|
|
@ -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 | - |
|
||||||
|
|
|
||||||
28
yarn.lock
28
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"
|
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==
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue