Compare commits
27 commits
Author | SHA1 | Date | |
---|---|---|---|
9264207406 | |||
4babfe9c46 | |||
fe3f416f54 | |||
69506f7d99 | |||
![]() |
78fd25ac10 | ||
![]() |
7fc8aa7bc2 | ||
f8a702704f | |||
![]() |
da26c38e59 | ||
![]() |
e8e2192e75 | ||
2d6ba0cab5 | |||
1db09a2a41 | |||
7f733512a2 | |||
![]() |
31364c1b63 | ||
e170e22621 | |||
078ca947aa | |||
a57ce2db7b | |||
![]() |
317929504e | ||
![]() |
3ef80d56ef | ||
![]() |
cfb68319fe | ||
![]() |
f3d1ac9fca | ||
5b073ee32a | |||
ebf11b5d57 | |||
2780036983 | |||
f202edd5fd | |||
a876d81f51 | |||
e09e4d5b4d | |||
![]() |
b8144db9ac |
78
README.md
|
@ -1,26 +1,16 @@
|
||||||
<p align="center">
|
# Yolk
|
||||||
<a href="https://elk.zone" target="_blank" rel="noopener noreferrer">
|
|
||||||
<img width="160" height="160" src="./public/logo.svg" alt="Elk logo">
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h1 align="center"/>Yolk</h1>
|
Hi! Yolk is my custom fork of [Elk](https://github.com/elk-zon/elk), a nimble Mastodon client.
|
||||||
<p align="center">
|
|
||||||
Yolk is cusom fork of Elk, a nimble Mastodon client
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<br/>
|
I [decided](https://social.ayco.io/@ayo/114921112446517000) to have a personal fork of Elk because I really like the cross-account functionalities I use it for (e.g., I can open the Explore tab of my fosstodon account, then engage in a post with my self-hosted account, etc)... but I find sometimes I want to change little things which will make the app a bit more opinionated on my tastes (e.g., icons, colors, spacing, etc)... and some behavioral features.
|
||||||
<p align="center">
|
|
||||||
<a href="https://chat.elk.zone"><img src="https://img.shields.io/badge/chat-discord-blue?style=flat&logo=discord" alt="discord chat"></a>
|
|
||||||
<a href="https://volta.net/elk-zone/elk?utm_source=elk_readme"><img src="https://user-images.githubusercontent.com/904724/209143798-32345f6c-3cf8-4e06-9659-f4ace4a6acde.svg" alt="Open board on Volta"></a>
|
|
||||||
</p>
|
|
||||||
<br/>
|
|
||||||
|
|
||||||
<p align="center">
|
I think doing this will make me use it as my main app daily. I have been switching between multiple apps because each one have strengths & weaknesses of their own.
|
||||||
<a href="https://elk.zone/" target="_blank" rel="noopener noreferrer" >
|
|
||||||
<img src="./public/elk-og.png" alt="Elk screenshots" width="600" height="auto">
|
Crucial fixes (if I find them), quality of life improvements, and mastodon API feature parity will still go upstream to the main Elk project.
|
||||||
</a>
|
|
||||||
</p>
|
~ Ayo Ayco
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## ⚠️ Elk is in Alpha
|
## ⚠️ Elk is in Alpha
|
||||||
|
|
||||||
|
@ -49,56 +39,8 @@ One could put Elk behind popular reverse proxies with SSL Handling like Traefik,
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> The provided Dockerfile creates a container which will eventually run Elk as non-root user and create a persistent named Docker volume upon first start (if that volume does not yet exist). This volume is always created with root permission. Failing to change the permissions of ```/elk/data``` inside this volume to UID:GID 911 (as specified for Elk in the Dockerfile) will prevent Elk from storing it's config for user accounts. You either have to fix the permission in the created named volume, or mount a directory with the correct permission to ```/elk/data``` into the container.
|
> The provided Dockerfile creates a container which will eventually run Elk as non-root user and create a persistent named Docker volume upon first start (if that volume does not yet exist). This volume is always created with root permission. Failing to change the permissions of ```/elk/data``` inside this volume to UID:GID 911 (as specified for Elk in the Dockerfile) will prevent Elk from storing it's config for user accounts. You either have to fix the permission in the created named volume, or mount a directory with the correct permission to ```/elk/data``` into the container.
|
||||||
|
|
||||||
### Ecosystem
|
|
||||||
|
|
||||||
These are known deployments using Elk as an alternative Web client for Mastodon servers or as a base for other projects in the fediverse:
|
|
||||||
|
|
||||||
- [elk.fedified.com](https://elk.fedified.com) - Use Elk to log into any compatible instance
|
|
||||||
- [elk.mastodon.com.pl](https://elk.mastodon.com.pl) - Use Elk for the `mastodon.com.pl` Server
|
|
||||||
- [elk.me.uk](https://elk.me.uk) - Use Elk to log into any compatible instance, hosted on Google Cloud Run with no Cloudflare proxy
|
|
||||||
- [elk.h4.io](https://elk.h4.io) - Use Elk for the `h4.io` Server
|
|
||||||
- [elk.universeodon.com](https://elk.universeodon.com) - Use Elk for the Universeodon Server
|
|
||||||
- [elk.vmst.io](https://elk.vmst.io) - Use Elk for the `vmst.io` Server
|
|
||||||
- [elk.hostux.social](https://elk.hostux.social) - Use Elk for the `hostux.social` Server
|
|
||||||
- [elk.cupoftea.social](https://elk.cupoftea.social) - Use Elk for the `cupoftea.social` Server
|
|
||||||
- [elk.aus.social](https://elk.aus.social) - Use Elk for the `aus.social` Server
|
|
||||||
- [elk.mstdn.ca](https://elk.mstdn.ca) - Use Elk for the `mstdn.ca` Server
|
|
||||||
- [elk.mastodonapp.uk](https://elk.mastodonapp.uk) - Use Elk for the `mastodonapp.uk` Server
|
|
||||||
- [elk.bolha.us](https://elk.bolha.us) - Use Elk for the `bolha.us` Server
|
|
||||||
- [crab.bumscode.com](https://crab.bumscode.com) - Use [crab](https://github.com/maybeanerd/crab) - a soft fork of Elk - for the `bumscode.com` Server
|
|
||||||
|
|
||||||
> **Note**: Community deployments are **NOT** maintained by the Elk team. It may not be synced with Elk's source code. Please do your own research about the host servers before using them.
|
> **Note**: Community deployments are **NOT** maintained by the Elk team. It may not be synced with Elk's source code. Please do your own research about the host servers before using them.
|
||||||
|
|
||||||
## 💖 Sponsors
|
|
||||||
|
|
||||||
We are grateful for the generous sponsorship and help of:
|
|
||||||
|
|
||||||
<a href="https://nuxtlabs.com/" target="_blank" rel="noopener noreferrer" >
|
|
||||||
<img src="./images/nuxtlabs.svg" alt="NuxtLabs" height="85">
|
|
||||||
</a>
|
|
||||||
<br><br>
|
|
||||||
<a href="https://stackblitz.com/" target="_blank" rel="noopener noreferrer" >
|
|
||||||
<img src="./images/stackblitz.svg" alt="StackBlitz" height="85">
|
|
||||||
</a>
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
And all the companies and individuals sponsoring Elk Team and the members. If you're enjoying the app, consider sponsoring us:
|
|
||||||
|
|
||||||
- [Elk Team's GitHub Sponsors](https://github.com/sponsors/elk-zone)
|
|
||||||
|
|
||||||
Or you can sponsor our core team members individually:
|
|
||||||
|
|
||||||
- [Anthony Fu](https://github.com/sponsors/antfu)
|
|
||||||
- [Daniel Roe](https://github.com/sponsors/danielroe)
|
|
||||||
- [三咲智子 Kevin Deng](https://github.com/sponsors/sxzz)
|
|
||||||
- [Patak](https://github.com/sponsors/patak-dev)
|
|
||||||
|
|
||||||
We would also appreciate sponsoring other contributors to the Elk project. If someone helps you solve an issue or implement a feature you wanted, supporting them would help make this project and OS more sustainable.
|
|
||||||
|
|
||||||
## 📍 Roadmap
|
|
||||||
|
|
||||||
[Open board on Volta](https://volta.net/elk-zone/elk)
|
|
||||||
|
|
||||||
## 🧑💻 Contributing
|
## 🧑💻 Contributing
|
||||||
|
|
||||||
We're really excited that you're interested in contributing to Elk! Before submitting your contribution, please read through the following guide.
|
We're really excited that you're interested in contributing to Elk! Before submitting your contribution, please read through the following guide.
|
||||||
|
|
|
@ -2,47 +2,13 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<span shrink-0 aspect="1/1" sm:h-8 xl:h-10 class="rtl-flip"><svg
|
<span shrink-0 aspect="1/1" sm:h-8 xl:h-10 class="rtl-flip">
|
||||||
|
<!-- <svg
|
||||||
xmlns="http://www.w3.org/2000/svg" w-full
|
xmlns="http://www.w3.org/2000/svg" w-full
|
||||||
aspect="1/1" sm:h-8 xl:h-10 sm:w-8 xl:w-10 viewBox="0 0 250 250" fill="none"
|
aspect="1/1" sm:h-8 xl:h-10 sm:w-8 xl:w-10 viewBox="0 0 250 250" fill="none"
|
||||||
>
|
> -->
|
||||||
<mask
|
|
||||||
id="a"
|
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"><defs><mask id="ipTEgg0"><g fill="none" stroke="#fff" stroke-width="4"><circle cx="24" cy="24" r="10" fill="#555555" stroke-linecap="round" stroke-linejoin="round" /><path d="M44 24c0 2.633-.508 5.146-1.433 7.448c-.936 2.331-4.129.071-7.346 3.521c-3.216 3.45-.71 6.267-3.204 7.36A19.9 19.9 0 0 1 24 44C12.954 44 4 35.046 4 24S12.954 4 24 4s20 8.954 20 20Z" /><path stroke-linecap="round" d="M20 25s.21 1.21 1 2s2 1 2 1" /></g></mask></defs><path fill="#ff8d00" d="M0 0h48v48H0z" mask="url(#ipTEgg0)" /></svg>
|
||||||
width="240"
|
|
||||||
height="234"
|
|
||||||
x="4"
|
|
||||||
y="1"
|
|
||||||
maskUnits="userSpaceOnUse"
|
|
||||||
style="mask-type:alpha"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
id="path19"
|
|
||||||
fill="#D9D9D9"
|
|
||||||
d="M244 123c0 64.617-38.383 112-103 112-64.617 0-103-30.883-103-95.5C38 111.194-8.729 36.236 8 16 29.46-9.959 88.689 6 125 6c64.617 0 119 52.383 119 117Z"
|
|
||||||
/>
|
|
||||||
</mask>
|
|
||||||
<g
|
|
||||||
id="g28"
|
|
||||||
mask="url(#a)"
|
|
||||||
transform="matrix(0.90923731,0,0,1.0049564,13.520015,-3.1040835)"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
id="path22"
|
|
||||||
class="body"
|
|
||||||
d="m 116.94,88.1 c -13.344,1.552 -20.436,-2.019 -24.706,10.71 0,0 14.336,21.655 52.54,21.112 -2.135,8.848 -1.144,15.368 -1.144,23.207 0,26.079 -20.589,48.821 -65.961,48.821 -23.03,0 -51.015,4.191 -72.367,15.911 -15.175,8.305 -27.048,20.336 -32.302,37.023 l 5.956,8.461 11.4,0.155 v 47.889 l -13.91,21.966 3.998,63.645 H -6.364 L -5.22,335.773 C 1.338,331.892 16.36,321.802 29.171,306.279 46.557,285.4 59.902,255.052 44.193,217.486 l 11.744,-5.045 c 12.887,30.814 8.388,57.514 -2.898,79.013 21.58,-0.698 40.11,-2.095 55.819,-4.734 l -3.584,-43.698 12.659,-1.087 L 129.98,387 h 13.116 l 2.212,-94.459 c 10.447,-4.502 34.239,-21.034 45.372,-78.47 1.372,-6.986 2.135,-12.885 2.516,-17.93 1.754,-12.806 2.745,-27.243 3.051,-43.698 l -18.683,-5.976 h 57.42 l 5.567,-12.807 c -5.414,0.233 -11.896,-2.639 -11.896,-2.639 l 1.297,-6.209 H 242 L 176.801,90.428 c -7.244,2.794 -14.87,6.442 -20.208,10.866 -4.27,-3.105 -19.063,-12.807 -39.653,-13.195 z"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
id="path24"
|
|
||||||
class="wood"
|
|
||||||
d="M 6.217,24.493 18.494,21 c 5.948,21.577 13.345,33.375 22.648,39.352 8.388,5.099 19.75,5.239 31.799,4.579 C 69.433,63.767 66.154,62.137 63.104,59.886 56.317,54.841 50.522,46.458 46.175,31.246 l 12.201,-3.649 c 3.279,11.488 7.092,18.085 12.201,21.888 5.11,3.726 11.286,4.657 18.606,5.433 13.726,1.553 30.884,2.174 52.312,12.264 2.898,1.086 5.872,2.483 8.769,4.036 -0.381,-0.776 -0.762,-1.553 -1.296,-2.406 -3.66,-5.822 -10.828,-11.953 -24.097,-16.92 l 4.27,-12.109 c 21.581,7.917 30.121,19.171 33.553,28.097 3.965,10.168 1.525,18.124 1.525,18.124 -3.05,1.009 -6.1,2.406 -9.608,3.492 -6.634,-4.579 -12.887,-8.033 -18.835,-10.75 C 113.814,70.442 92.31,76.108 73.246,77.893 58.91,79.213 45.794,78.591 34.432,71.295 23.222,64.155 13.385,50.495 6.217,24.493 Z"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
id="path26"
|
|
||||||
class="wood"
|
|
||||||
d="M 90.098,45.294 C 87.582,39.55 86.057,32.487 86.743,23.794 l 12.659,0.932 c -0.763,10.555 2.897,17.696 7.015,22.353 -5.338,-0.931 -10.447,-1.04 -16.319,-1.785 z m 80.069,-1.32 8.312,-9.702 c 21.58,19.094 8.159,46.415 8.159,46.415 l -11.819,-1.32 c -0.382,-6.24 -1.144,-17.836 -6.635,-24.371 3.584,1.84 6.635,3.865 9.99,6.908 0,-5.666 -1.754,-12.341 -8.007,-17.93 z"
|
|
||||||
/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -29,8 +29,9 @@ router.afterEach(() => {
|
||||||
@click.prevent="onClickLogo"
|
@click.prevent="onClickLogo"
|
||||||
>
|
>
|
||||||
<NavLogo shrink-0 aspect="1/1" sm:h-8 xl:h-10 class="rtl-flip" />
|
<NavLogo shrink-0 aspect="1/1" sm:h-8 xl:h-10 class="rtl-flip" />
|
||||||
<div v-show="isHydrated" hidden xl:block text-secondary>
|
<div v-show="isHydrated" hidden xl:block>
|
||||||
{{ $t('app_name') }} <sup text-sm italic mt-1>{{ env === 'release' ? 'alpha' : env }}</sup>
|
<span pr-1>{{ $t('app_name') }}</span>
|
||||||
|
<sup text-sm italic mt-1>{{ env === 'release' ? 'alpha' : env }}</sup>
|
||||||
</div>
|
</div>
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
<div hidden xl:flex items-center me-6 mt-2 gap-1>
|
<div hidden xl:flex items-center me-6 mt-2 gap-1>
|
||||||
|
|
|
@ -104,11 +104,12 @@ export function parseMastodonHTML(
|
||||||
.replace(/</g, '<')
|
.replace(/</g, '<')
|
||||||
.replace(/>/g, '>')
|
.replace(/>/g, '>')
|
||||||
.replace(/`/g, '`')
|
.replace(/`/g, '`')
|
||||||
|
.replace(/\*/g, '*')
|
||||||
const classes = lang ? ` class="language-${lang}"` : ''
|
const classes = lang ? ` class="language-${lang}"` : ''
|
||||||
return `><pre><code${classes}>${code}</code></pre>`
|
return `><pre><code${classes}>${code}</code></pre>`
|
||||||
})
|
})
|
||||||
.replace(/`([^`\n]*)`/g, (_1, raw) => {
|
.replace(/`([^`\n]*)`/g, (_1, raw) => {
|
||||||
return raw ? `<code>${htmlToText(raw).replace(/</g, '<').replace(/>/g, '>')}</code>` : ''
|
return raw ? `<code>${htmlToText(raw).replace(/</g, '<').replace(/>/g, '>').replace(/\*/g, '*')}</code>` : ''
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import type { mastodon } from 'masto'
|
import type { mastodon } from 'masto'
|
||||||
|
|
||||||
export const APP_NAME = 'Elk'
|
export const APP_NAME = 'Yolk'
|
||||||
|
|
||||||
export const DEFAULT_POST_CHARS_LIMIT = 500
|
export const DEFAULT_POST_CHARS_LIMIT = 500
|
||||||
export const DEFAULT_FONT_SIZE = '15px'
|
export const DEFAULT_FONT_SIZE = '15px'
|
||||||
|
|
|
@ -10,6 +10,6 @@ catch (err) {
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<MainContent text-base grid gap-3 m3>
|
<MainContent text-base grid gap-3 m3>
|
||||||
<img rounded-3 :src="instance.thumbnail.url">
|
<img v-if="instance !== undefined" rounded-3 :src="instance.thumbnail.url">
|
||||||
</MainContent>
|
</MainContent>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -38,7 +38,7 @@ export default defineNuxtPlugin(({ $scrollToTop }) => {
|
||||||
}
|
}
|
||||||
whenever(logicAnd(isAuthenticated, notUsingInput, keys.c), defaultPublishDialog)
|
whenever(logicAnd(isAuthenticated, notUsingInput, keys.c), defaultPublishDialog)
|
||||||
|
|
||||||
const instanceDomain = currentInstance.value ? getInstanceDomain(currentInstance.value) : 'm.webtoo.ls'
|
const instanceDomain = currentInstance.value ? getInstanceDomain(currentInstance.value) : 'social.ayco.io'
|
||||||
whenever(logicAnd(notUsingInput, useMagicSequence(['g', 'h'])), () => navigateTo('/home'))
|
whenever(logicAnd(notUsingInput, useMagicSequence(['g', 'h'])), () => navigateTo('/home'))
|
||||||
whenever(logicAnd(isAuthenticated, notUsingInput, useMagicSequence(['g', 'n'])), () => navigateTo('/notifications'))
|
whenever(logicAnd(isAuthenticated, notUsingInput, useMagicSequence(['g', 'n'])), () => navigateTo('/notifications'))
|
||||||
// TODO: always overridden by 'c' (compose) shortcut
|
// TODO: always overridden by 'c' (compose) shortcut
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
services:
|
services:
|
||||||
elk:
|
redis:
|
||||||
|
image: redis:latest
|
||||||
|
yolk:
|
||||||
|
image: ayoayco/yolk:latest
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
volumes:
|
|
||||||
# make sure this directory has the same ownership as the elk user from the Dockerfile
|
|
||||||
# otherwise Elk will not be able to store configs for accounts
|
|
||||||
# e.q. mkdir ./elk-storage; sudo chown 911:911 ./elk-storage
|
|
||||||
- './elk-storage:/elk/data'
|
|
||||||
ports:
|
ports:
|
||||||
- 5314:5314
|
- 5314:5314
|
||||||
|
|
|
@ -13,6 +13,6 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@nuxt-themes/docus": "^1.15.1",
|
"@nuxt-themes/docus": "^1.15.1",
|
||||||
"nuxt": "^3.17.7"
|
"nuxt": "^3.18.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "منصة تواصل ماستودون رشيقة",
|
"app_desc_short": "منصة تواصل ماستودون رشيقة",
|
||||||
"app_logo": "Elk شعار",
|
"app_logo": "Elk شعار",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "وصف",
|
"edit_title": "وصف",
|
||||||
"remove_label": "قم بإزالة المرفق"
|
"remove_label": "قم بإزالة المرفق"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Un client web àgil Mastodon",
|
"app_desc_short": "Un client web àgil Mastodon",
|
||||||
"app_logo": "Logotip d'Elk",
|
"app_logo": "Logotip d'Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Descripció",
|
"edit_title": "Descripció",
|
||||||
"remove_label": "Elimina el fitxer adjunt"
|
"remove_label": "Elimina el fitxer adjunt"
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "ڕاژەخوازێکی وێبی ماستۆدۆن",
|
"app_desc_short": "ڕاژەخوازێکی وێبی ماستۆدۆن",
|
||||||
"app_logo": "Elk لۆگۆی",
|
"app_logo": "Elk لۆگۆی",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "وەسف",
|
"edit_title": "وەسف",
|
||||||
"remove_label": "لابردنی لکێندراو"
|
"remove_label": "لابردنی لکێندراو"
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Elk - hbitý webklient pro Mastodon.",
|
"app_desc_short": "Elk - hbitý webklient pro Mastodon.",
|
||||||
"app_logo": "logo Elk",
|
"app_logo": "logo Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"command": {
|
"command": {
|
||||||
"activate": "Aktivovat",
|
"activate": "Aktivovat",
|
||||||
"complete": "Dokončit",
|
"complete": "Dokončit",
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Cleient gwe ystwyth ar gyfer Mastodon",
|
"app_desc_short": "Cleient gwe ystwyth ar gyfer Mastodon",
|
||||||
"app_logo": "Logo Elk",
|
"app_logo": "Logo Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Disgrifiad",
|
"edit_title": "Disgrifiad",
|
||||||
"remove_label": "Tunnu atodiad"
|
"remove_label": "Tunnu atodiad"
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Ein flinker Mastodon Web-Client",
|
"app_desc_short": "Ein flinker Mastodon Web-Client",
|
||||||
"app_logo": "Elk Logo",
|
"app_logo": "Elk Logo",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Beschreibung",
|
"edit_title": "Beschreibung",
|
||||||
"remove_label": "Anhang entfernen"
|
"remove_label": "Anhang entfernen"
|
||||||
|
|
|
@ -86,7 +86,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Ένας ελαφρώς προσαρμοσμένος πελάτης για το Mastodon",
|
"app_desc_short": "Ένας ελαφρώς προσαρμοσμένος πελάτης για το Mastodon",
|
||||||
"app_logo": "Λογότυπο Elk",
|
"app_logo": "Λογότυπο Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Περιγραφή",
|
"edit_title": "Περιγραφή",
|
||||||
"remove_label": "Αφαίρεση επισύναψης"
|
"remove_label": "Αφαίρεση επισύναψης"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "A nimble Mastodon web client",
|
"app_desc_short": "A nimble Mastodon web client",
|
||||||
"app_logo": "Elk Logo",
|
"app_logo": "Elk Logo",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Description",
|
"edit_title": "Description",
|
||||||
"remove_label": "Remove attachment"
|
"remove_label": "Remove attachment"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Un cliente web ágil para Mastodon",
|
"app_desc_short": "Un cliente web ágil para Mastodon",
|
||||||
"app_logo": "Logotipo de Elk",
|
"app_logo": "Logotipo de Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Descripción",
|
"edit_title": "Descripción",
|
||||||
"remove_label": "Eliminar fichero adjunto"
|
"remove_label": "Eliminar fichero adjunto"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Mastodon web-bezero arin bat",
|
"app_desc_short": "Mastodon web-bezero arin bat",
|
||||||
"app_logo": "Elk-en logoa",
|
"app_logo": "Elk-en logoa",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Deskribapena",
|
"edit_title": "Deskribapena",
|
||||||
"remove_label": "Kendu erantsitakoak"
|
"remove_label": "Kendu erantsitakoak"
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "یک کارخواه وب چابک برای ماستودون",
|
"app_desc_short": "یک کارخواه وب چابک برای ماستودون",
|
||||||
"app_logo": "لوگوی نرمافزار",
|
"app_logo": "لوگوی نرمافزار",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "توضیحات",
|
"edit_title": "توضیحات",
|
||||||
"remove_label": "حذف پیوست"
|
"remove_label": "حذف پیوست"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Ketterä verkkosovellus Mastodonille",
|
"app_desc_short": "Ketterä verkkosovellus Mastodonille",
|
||||||
"app_logo": "Elk-logo",
|
"app_logo": "Elk-logo",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Kuvaus",
|
"edit_title": "Kuvaus",
|
||||||
"remove_label": "Poista liite"
|
"remove_label": "Poista liite"
|
||||||
|
|
|
@ -80,7 +80,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Un client Mastodon fait avec 🧡",
|
"app_desc_short": "Un client Mastodon fait avec 🧡",
|
||||||
"app_logo": "Logo Elk",
|
"app_logo": "Logo Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Description",
|
"edit_title": "Description",
|
||||||
"remove_label": "Retirer le fichier attaché"
|
"remove_label": "Retirer le fichier attaché"
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Un cliente web áxil para Mastodon",
|
"app_desc_short": "Un cliente web áxil para Mastodon",
|
||||||
"app_logo": "Logo de Elk",
|
"app_logo": "Logo de Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Descrición",
|
"edit_title": "Descrición",
|
||||||
"remove_label": "Quitar o anexo"
|
"remove_label": "Quitar o anexo"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Egy fürge Mastodon kliens",
|
"app_desc_short": "Egy fürge Mastodon kliens",
|
||||||
"app_logo": "Elk Logó",
|
"app_logo": "Elk Logó",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Leírás",
|
"edit_title": "Leírás",
|
||||||
"remove_label": "Melléklet eltávolítása"
|
"remove_label": "Melléklet eltávolítása"
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Klien web Mastodon yang gesit",
|
"app_desc_short": "Klien web Mastodon yang gesit",
|
||||||
"app_logo": "Logo Elk",
|
"app_logo": "Logo Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Deskripsi",
|
"edit_title": "Deskripsi",
|
||||||
"remove_label": "Hapus lampiran"
|
"remove_label": "Hapus lampiran"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Un client web agile per Mastodon",
|
"app_desc_short": "Un client web agile per Mastodon",
|
||||||
"app_logo": "Logo Elk",
|
"app_logo": "Logo Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Descrizione",
|
"edit_title": "Descrizione",
|
||||||
"remove_label": "Rimuovi allegato"
|
"remove_label": "Rimuovi allegato"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "軽快なMastodonウェブクライアント",
|
"app_desc_short": "軽快なMastodonウェブクライアント",
|
||||||
"app_logo": "Elkのロゴ",
|
"app_logo": "Elkのロゴ",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "説明文",
|
"edit_title": "説明文",
|
||||||
"remove_label": "添付を削除"
|
"remove_label": "添付を削除"
|
||||||
|
|
|
@ -69,7 +69,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "민첩한 마스토돈 웹 클라이언트",
|
"app_desc_short": "민첩한 마스토돈 웹 클라이언트",
|
||||||
"app_logo": "Elk 로고",
|
"app_logo": "Elk 로고",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "설명",
|
"edit_title": "설명",
|
||||||
"remove_label": "첨부파일 삭제"
|
"remove_label": "첨부파일 삭제"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Een vlotte Mastodon web client",
|
"app_desc_short": "Een vlotte Mastodon web client",
|
||||||
"app_logo": "Elk Logo",
|
"app_logo": "Elk Logo",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Omschrijving",
|
"edit_title": "Omschrijving",
|
||||||
"remove_label": "Verwijder bijlage"
|
"remove_label": "Verwijder bijlage"
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Aplikacja webowa dla Mastodon",
|
"app_desc_short": "Aplikacja webowa dla Mastodon",
|
||||||
"app_logo": "Elk Logo",
|
"app_logo": "Elk Logo",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Opis",
|
"edit_title": "Opis",
|
||||||
"remove_label": "Usuń załącznik"
|
"remove_label": "Usuń załącznik"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Uma ágil aplicação web para o Mastodon",
|
"app_desc_short": "Uma ágil aplicação web para o Mastodon",
|
||||||
"app_logo": "Logo do Elk",
|
"app_logo": "Logo do Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Descrição",
|
"edit_title": "Descrição",
|
||||||
"remove_label": "Remover anexo"
|
"remove_label": "Remover anexo"
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Открытый веб-клиент для Mastodon",
|
"app_desc_short": "Открытый веб-клиент для Mastodon",
|
||||||
"app_logo": "Логотип Elk",
|
"app_logo": "Логотип Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Описание",
|
"edit_title": "Описание",
|
||||||
"remove_label": "Удалить файл"
|
"remove_label": "Удалить файл"
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "เว็บหน้าบ้านมาสโตดอนที่ปราดเปรียว",
|
"app_desc_short": "เว็บหน้าบ้านมาสโตดอนที่ปราดเปรียว",
|
||||||
"app_logo": "โลโก้ Elk",
|
"app_logo": "โลโก้ Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "อธิบาย",
|
"edit_title": "อธิบาย",
|
||||||
"remove_label": "เอาสิ่งแนบออก"
|
"remove_label": "เอาสิ่งแนบออก"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Isang mabilis na web client ng Mastodon",
|
"app_desc_short": "Isang mabilis na web client ng Mastodon",
|
||||||
"app_logo": "Logo ng Elk",
|
"app_logo": "Logo ng Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Paglalarawan",
|
"edit_title": "Paglalarawan",
|
||||||
"remove_label": "Tanggalin ang attachment"
|
"remove_label": "Tanggalin ang attachment"
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Hızlı bir Mastodon web istemcisi",
|
"app_desc_short": "Hızlı bir Mastodon web istemcisi",
|
||||||
"app_logo": "Elk Logosu",
|
"app_logo": "Elk Logosu",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Açıklama",
|
"edit_title": "Açıklama",
|
||||||
"remove_label": "Eki kaldır"
|
"remove_label": "Eki kaldır"
|
||||||
|
|
|
@ -87,7 +87,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Спритний вебклієнт для Mastodon",
|
"app_desc_short": "Спритний вебклієнт для Mastodon",
|
||||||
"app_logo": "Лоґо Elk",
|
"app_logo": "Лоґо Elk",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Опис",
|
"edit_title": "Опис",
|
||||||
"remove_label": "Вилучити вкладення"
|
"remove_label": "Вилучити вкладення"
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
"app_desc_short": "Một ứng dụng web Mastodon nhanh nhẹn",
|
"app_desc_short": "Một ứng dụng web Mastodon nhanh nhẹn",
|
||||||
"app_logo": "Elk Logo",
|
"app_logo": "Elk Logo",
|
||||||
"app_name": "Elk",
|
"app_name": "Yolk",
|
||||||
"attachment": {
|
"attachment": {
|
||||||
"edit_title": "Mô tả",
|
"edit_title": "Mô tả",
|
||||||
"remove_label": "Xóa file đính kèm"
|
"remove_label": "Xóa file đính kèm"
|
||||||
|
|
3
modules/pwa/runtime/types.d.ts
vendored
|
@ -1,5 +1,4 @@
|
||||||
import type { Ref } from 'vue'
|
import type { Ref, UnwrapNestedRefs } from 'vue'
|
||||||
import type { UnwrapNestedRefs } from 'vue'
|
|
||||||
|
|
||||||
export interface PwaInjection {
|
export interface PwaInjection {
|
||||||
isInstalled: boolean
|
isInstalled: boolean
|
||||||
|
|
|
@ -1,8 +1,20 @@
|
||||||
import { Store } from 'tauri-plugin-store-api'
|
import { Store } from 'tauri-plugin-store-api'
|
||||||
import { createStorage } from 'unstorage'
|
import { createStorage } from 'unstorage'
|
||||||
|
import redisDriver from 'unstorage/drivers/redis'
|
||||||
|
|
||||||
const store = new Store('.servers.dat')
|
const store = new Store('.servers.dat')
|
||||||
const storage = createStorage()
|
|
||||||
|
/**
|
||||||
|
* TODO: Use redis as storage
|
||||||
|
* - docs: https://unstorage.unjs.io/drivers/redis
|
||||||
|
* - then we can probably remove need for `/elk/data` (see docker-compose)
|
||||||
|
*/
|
||||||
|
const storage = createStorage({
|
||||||
|
driver: redisDriver({
|
||||||
|
base: 'unstorage:elk:',
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
|
||||||
storage.mount('servers', {
|
storage.mount('servers', {
|
||||||
getKeys() {
|
getKeys() {
|
||||||
return store.keys()
|
return store.keys()
|
||||||
|
|
|
@ -173,7 +173,7 @@ export default defineNuxtConfig({
|
||||||
// our default translation server #76
|
// our default translation server #76
|
||||||
translateApi: '',
|
translateApi: '',
|
||||||
// Use the instance where Elk has its Mastodon account as the default
|
// Use the instance where Elk has its Mastodon account as the default
|
||||||
defaultServer: 'm.webtoo.ls',
|
defaultServer: 'social.ayco.io',
|
||||||
singleInstance: false,
|
singleInstance: false,
|
||||||
},
|
},
|
||||||
storage: {
|
storage: {
|
||||||
|
|
19
package.json
|
@ -68,7 +68,7 @@
|
||||||
"@vueuse/motion": "2.2.6",
|
"@vueuse/motion": "2.2.6",
|
||||||
"@vueuse/nuxt": "^13.2.0",
|
"@vueuse/nuxt": "^13.2.0",
|
||||||
"blurhash": "^2.0.5",
|
"blurhash": "^2.0.5",
|
||||||
"browser-fs-access": "^0.35.0",
|
"browser-fs-access": "^0.38.0",
|
||||||
"cheerio": "^1.0.0",
|
"cheerio": "^1.0.0",
|
||||||
"chroma-js": "^3.0.0",
|
"chroma-js": "^3.0.0",
|
||||||
"emoji-mart": "^5.5.2",
|
"emoji-mart": "^5.5.2",
|
||||||
|
@ -82,6 +82,7 @@
|
||||||
"happy-dom": "^16.0.0",
|
"happy-dom": "^16.0.0",
|
||||||
"idb-keyval": "^6.2.1",
|
"idb-keyval": "^6.2.1",
|
||||||
"ignore-dependency-scripts": "^1.0.1",
|
"ignore-dependency-scripts": "^1.0.1",
|
||||||
|
"ioredis": "^5.7.0",
|
||||||
"iso-639-1": "^3.0.0",
|
"iso-639-1": "^3.0.0",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"lru-cache": "^11.0.0",
|
"lru-cache": "^11.0.0",
|
||||||
|
@ -117,7 +118,7 @@
|
||||||
"ws": "^8.15.1"
|
"ws": "^8.15.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@antfu/eslint-config": "^4.13.1",
|
"@antfu/eslint-config": "^5.1.0",
|
||||||
"@antfu/ni": "^24.4.0",
|
"@antfu/ni": "^24.4.0",
|
||||||
"@types/chroma-js": "^3.1.1",
|
"@types/chroma-js": "^3.1.1",
|
||||||
"@types/file-saver": "^2.0.7",
|
"@types/file-saver": "^2.0.7",
|
||||||
|
@ -127,20 +128,20 @@
|
||||||
"@types/wicg-file-system-access": "^2023.10.6",
|
"@types/wicg-file-system-access": "^2023.10.6",
|
||||||
"@types/ws": "^8.18.1",
|
"@types/ws": "^8.18.1",
|
||||||
"@unlazy/nuxt": "^0.12.4",
|
"@unlazy/nuxt": "^0.12.4",
|
||||||
"@unocss/eslint-config": "^66.3.3",
|
"@unocss/eslint-config": "^66.4.1",
|
||||||
"@vue/test-utils": "2.4.6",
|
"@vue/test-utils": "2.4.6",
|
||||||
"bumpp": "^10.2.0",
|
"bumpp": "^10.2.2",
|
||||||
"consola": "^3.4.2",
|
"consola": "^3.4.2",
|
||||||
"eslint": "^9.27.0",
|
"eslint": "^9.32.0",
|
||||||
"eslint-plugin-format": "^1.0.1",
|
"eslint-plugin-format": "^1.0.1",
|
||||||
"flat": "^6.0.1",
|
"flat": "^6.0.1",
|
||||||
"fs-extra": "^11.3.0",
|
"fs-extra": "^11.3.0",
|
||||||
"lint-staged": "^15.5.2",
|
"lint-staged": "^15.5.2",
|
||||||
"nuxt": "^3.17.7",
|
"nuxt": "^3.18.1",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.6.2",
|
||||||
"sharp": "^0.34.3",
|
"sharp": "^0.34.3",
|
||||||
"sharp-ico": "^0.1.5",
|
"sharp-ico": "^0.1.5",
|
||||||
"simple-git-hooks": "^2.13.0",
|
"simple-git-hooks": "^2.13.1",
|
||||||
"tsx": "^4.20.3",
|
"tsx": "^4.20.3",
|
||||||
"typescript": "^5.4.4",
|
"typescript": "^5.4.4",
|
||||||
"vitest": "3.2.4",
|
"vitest": "3.2.4",
|
||||||
|
@ -152,7 +153,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"nuxt-component-meta": "0.12.1",
|
"nuxt-component-meta": "0.13.0",
|
||||||
"unstorage": "^1.16.1",
|
"unstorage": "^1.16.1",
|
||||||
"vitest": "3.2.4",
|
"vitest": "3.2.4",
|
||||||
"vue": "^3.5.4"
|
"vue": "^3.5.4"
|
||||||
|
|
3571
pnpm-lock.yaml
Before Width: | Height: | Size: 993 B After Width: | Height: | Size: 4.2 KiB |
|
@ -1,42 +1 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<svg xmlns="http://www.w3.org/2000/svg" width="192" height="192" viewBox="0 0 48 48"><defs><mask id="ipTEgg0"><g fill="none" stroke="#fff" stroke-width="4"><circle cx="24" cy="24" r="10" fill="#555555" stroke-linecap="round" stroke-linejoin="round"/><path d="M44 24c0 2.633-.508 5.146-1.433 7.448c-.936 2.331-4.129.071-7.346 3.521c-3.216 3.45-.71 6.267-3.204 7.36A19.9 19.9 0 0 1 24 44C12.954 44 4 35.046 4 24S12.954 4 24 4s20 8.954 20 20Z"/><path stroke-linecap="round" d="M20 25s.21 1.21 1 2s2 1 2 1"/></g></mask></defs><path fill="#ff8d00" d="M0 0h48v48H0z" mask="url(#ipTEgg0)"/></svg>
|
||||||
<svg
|
|
||||||
width="250"
|
|
||||||
height="250"
|
|
||||||
fill="none"
|
|
||||||
version="1.1"
|
|
||||||
id="svg30"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs34" />
|
|
||||||
<mask
|
|
||||||
id="a"
|
|
||||||
width="240"
|
|
||||||
height="234"
|
|
||||||
x="4"
|
|
||||||
y="1"
|
|
||||||
maskUnits="userSpaceOnUse"
|
|
||||||
style="mask-type:alpha">
|
|
||||||
<path
|
|
||||||
fill="white"
|
|
||||||
d="M244 123c0 64.617-38.383 112-103 112-64.617 0-103-30.883-103-95.5C38 111.194-8.729 36.236 8 16 29.46-9.959 88.689 6 125 6c64.617 0 119 52.383 119 117Z"
|
|
||||||
id="path19" />
|
|
||||||
</mask>
|
|
||||||
<g
|
|
||||||
mask="url(#a)"
|
|
||||||
id="g28"
|
|
||||||
transform="matrix(0.90923731,0,0,1.0049564,13.520015,-3.1040835)">
|
|
||||||
<path
|
|
||||||
fill="#91BA4D"
|
|
||||||
d="m 116.94,88.1 c -13.344,1.552 -20.436,-2.019 -24.706,10.71 0,0 14.336,21.655 52.54,21.112 -2.135,8.848 -1.144,15.368 -1.144,23.207 0,26.079 -20.589,48.821 -65.961,48.821 -23.03,0 -51.015,4.191 -72.367,15.911 -15.175,8.305 -27.048,20.336 -32.302,37.023 l 5.956,8.461 11.4,0.155 v 47.889 l -13.91,21.966 3.998,63.645 H -6.364 L -5.22,335.773 C 1.338,331.892 16.36,321.802 29.171,306.279 46.557,285.4 59.902,255.052 44.193,217.486 l 11.744,-5.045 c 12.887,30.814 8.388,57.514 -2.898,79.013 21.58,-0.698 40.11,-2.095 55.819,-4.734 l -3.584,-43.698 12.659,-1.087 L 129.98,387 h 13.116 l 2.212,-94.459 c 10.447,-4.502 34.239,-21.034 45.372,-78.47 1.372,-6.986 2.135,-12.885 2.516,-17.93 1.754,-12.806 2.745,-27.243 3.051,-43.698 l -18.683,-5.976 h 57.42 l 5.567,-12.807 c -5.414,0.233 -11.896,-2.639 -11.896,-2.639 l 1.297,-6.209 H 242 L 176.801,90.428 c -7.244,2.794 -14.87,6.442 -20.208,10.866 -4.27,-3.105 -19.063,-12.807 -39.653,-13.195 z"
|
|
||||||
id="path22" />
|
|
||||||
<path
|
|
||||||
fill="#20461A"
|
|
||||||
d="M 6.217,24.493 18.494,21 c 5.948,21.577 13.345,33.375 22.648,39.352 8.388,5.099 19.75,5.239 31.799,4.579 C 69.433,63.767 66.154,62.137 63.104,59.886 56.317,54.841 50.522,46.458 46.175,31.246 l 12.201,-3.649 c 3.279,11.488 7.092,18.085 12.201,21.888 5.11,3.726 11.286,4.657 18.606,5.433 13.726,1.553 30.884,2.174 52.312,12.264 2.898,1.086 5.872,2.483 8.769,4.036 -0.381,-0.776 -0.762,-1.553 -1.296,-2.406 -3.66,-5.822 -10.828,-11.953 -24.097,-16.92 l 4.27,-12.109 c 21.581,7.917 30.121,19.171 33.553,28.097 3.965,10.168 1.525,18.124 1.525,18.124 -3.05,1.009 -6.1,2.406 -9.608,3.492 -6.634,-4.579 -12.887,-8.033 -18.835,-10.75 C 113.814,70.442 92.31,76.108 73.246,77.893 58.91,79.213 45.794,78.591 34.432,71.295 23.222,64.155 13.385,50.495 6.217,24.493 Z"
|
|
||||||
id="path24" />
|
|
||||||
<path
|
|
||||||
fill="#20461A"
|
|
||||||
d="M 90.098,45.294 C 87.582,39.55 86.057,32.487 86.743,23.794 l 12.659,0.932 c -0.763,10.555 2.897,17.696 7.015,22.353 -5.338,-0.931 -10.447,-1.04 -16.319,-1.785 z m 80.069,-1.32 8.312,-9.702 c 21.58,19.094 8.159,46.415 8.159,46.415 l -11.819,-1.32 c -0.382,-6.24 -1.144,-17.836 -6.635,-24.371 3.584,1.84 6.635,3.865 9.99,6.908 0,-5.666 -1.754,-12.341 -8.007,-17.93 z"
|
|
||||||
id="path26" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 589 B |
Before Width: | Height: | Size: 965 B After Width: | Height: | Size: 4.2 KiB |
|
@ -1,42 +1 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<svg xmlns="http://www.w3.org/2000/svg" width="192" height="192" viewBox="0 0 48 48"><defs><mask id="ipTEgg0"><g fill="none" stroke="#fff" stroke-width="4"><circle cx="24" cy="24" r="10" fill="#555555" stroke-linecap="round" stroke-linejoin="round"/><path d="M44 24c0 2.633-.508 5.146-1.433 7.448c-.936 2.331-4.129.071-7.346 3.521c-3.216 3.45-.71 6.267-3.204 7.36A19.9 19.9 0 0 1 24 44C12.954 44 4 35.046 4 24S12.954 4 24 4s20 8.954 20 20Z"/><path stroke-linecap="round" d="M20 25s.21 1.21 1 2s2 1 2 1"/></g></mask></defs><path fill="#ff8d00" d="M0 0h48v48H0z" mask="url(#ipTEgg0)"/></svg>
|
||||||
<svg
|
|
||||||
width="250"
|
|
||||||
height="250"
|
|
||||||
fill="none"
|
|
||||||
version="1.1"
|
|
||||||
id="svg30"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs34" />
|
|
||||||
<mask
|
|
||||||
id="a"
|
|
||||||
width="240"
|
|
||||||
height="234"
|
|
||||||
x="4"
|
|
||||||
y="1"
|
|
||||||
maskUnits="userSpaceOnUse"
|
|
||||||
style="mask-type:alpha">
|
|
||||||
<path
|
|
||||||
fill="white"
|
|
||||||
d="M244 123c0 64.617-38.383 112-103 112-64.617 0-103-30.883-103-95.5C38 111.194-8.729 36.236 8 16 29.46-9.959 88.689 6 125 6c64.617 0 119 52.383 119 117Z"
|
|
||||||
id="path19" />
|
|
||||||
</mask>
|
|
||||||
<g
|
|
||||||
mask="url(#a)"
|
|
||||||
id="g28"
|
|
||||||
transform="matrix(0.90923731,0,0,1.0049564,13.520015,-3.1040835)">
|
|
||||||
<path
|
|
||||||
fill="#5AB1CC"
|
|
||||||
d="m 116.94,88.1 c -13.344,1.552 -20.436,-2.019 -24.706,10.71 0,0 14.336,21.655 52.54,21.112 -2.135,8.848 -1.144,15.368 -1.144,23.207 0,26.079 -20.589,48.821 -65.961,48.821 -23.03,0 -51.015,4.191 -72.367,15.911 -15.175,8.305 -27.048,20.336 -32.302,37.023 l 5.956,8.461 11.4,0.155 v 47.889 l -13.91,21.966 3.998,63.645 H -6.364 L -5.22,335.773 C 1.338,331.892 16.36,321.802 29.171,306.279 46.557,285.4 59.902,255.052 44.193,217.486 l 11.744,-5.045 c 12.887,30.814 8.388,57.514 -2.898,79.013 21.58,-0.698 40.11,-2.095 55.819,-4.734 l -3.584,-43.698 12.659,-1.087 L 129.98,387 h 13.116 l 2.212,-94.459 c 10.447,-4.502 34.239,-21.034 45.372,-78.47 1.372,-6.986 2.135,-12.885 2.516,-17.93 1.754,-12.806 2.745,-27.243 3.051,-43.698 l -18.683,-5.976 h 57.42 l 5.567,-12.807 c -5.414,0.233 -11.896,-2.639 -11.896,-2.639 l 1.297,-6.209 H 242 L 176.801,90.428 c -7.244,2.794 -14.87,6.442 -20.208,10.866 -4.27,-3.105 -19.063,-12.807 -39.653,-13.195 z"
|
|
||||||
id="path22" />
|
|
||||||
<path
|
|
||||||
fill="#1E4E5E"
|
|
||||||
d="M 6.217,24.493 18.494,21 c 5.948,21.577 13.345,33.375 22.648,39.352 8.388,5.099 19.75,5.239 31.799,4.579 C 69.433,63.767 66.154,62.137 63.104,59.886 56.317,54.841 50.522,46.458 46.175,31.246 l 12.201,-3.649 c 3.279,11.488 7.092,18.085 12.201,21.888 5.11,3.726 11.286,4.657 18.606,5.433 13.726,1.553 30.884,2.174 52.312,12.264 2.898,1.086 5.872,2.483 8.769,4.036 -0.381,-0.776 -0.762,-1.553 -1.296,-2.406 -3.66,-5.822 -10.828,-11.953 -24.097,-16.92 l 4.27,-12.109 c 21.581,7.917 30.121,19.171 33.553,28.097 3.965,10.168 1.525,18.124 1.525,18.124 -3.05,1.009 -6.1,2.406 -9.608,3.492 -6.634,-4.579 -12.887,-8.033 -18.835,-10.75 C 113.814,70.442 92.31,76.108 73.246,77.893 58.91,79.213 45.794,78.591 34.432,71.295 23.222,64.155 13.385,50.495 6.217,24.493 Z"
|
|
||||||
id="path24" />
|
|
||||||
<path
|
|
||||||
fill="#1E4E5E"
|
|
||||||
d="M 90.098,45.294 C 87.582,39.55 86.057,32.487 86.743,23.794 l 12.659,0.932 c -0.763,10.555 2.897,17.696 7.015,22.353 -5.338,-0.931 -10.447,-1.04 -16.319,-1.785 z m 80.069,-1.32 8.312,-9.702 c 21.58,19.094 8.159,46.415 8.159,46.415 l -11.819,-1.32 c -0.382,-6.24 -1.144,-17.836 -6.635,-24.371 3.584,1.84 6.635,3.865 9.99,6.908 0,-5.666 -1.754,-12.341 -8.007,-17.93 z"
|
|
||||||
id="path26" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 589 B |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 4.2 KiB |
|
@ -1,42 +1 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<svg xmlns="http://www.w3.org/2000/svg" width="192" height="192" viewBox="0 0 48 48"><defs><mask id="ipTEgg0"><g fill="none" stroke="#fff" stroke-width="4"><circle cx="24" cy="24" r="10" fill="#555555" stroke-linecap="round" stroke-linejoin="round"/><path d="M44 24c0 2.633-.508 5.146-1.433 7.448c-.936 2.331-4.129.071-7.346 3.521c-3.216 3.45-.71 6.267-3.204 7.36A19.9 19.9 0 0 1 24 44C12.954 44 4 35.046 4 24S12.954 4 24 4s20 8.954 20 20Z"/><path stroke-linecap="round" d="M20 25s.21 1.21 1 2s2 1 2 1"/></g></mask></defs><path fill="#ff8d00" d="M0 0h48v48H0z" mask="url(#ipTEgg0)"/></svg>
|
||||||
<svg
|
|
||||||
width="250"
|
|
||||||
height="250"
|
|
||||||
fill="none"
|
|
||||||
version="1.1"
|
|
||||||
id="svg30"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs34" />
|
|
||||||
<mask
|
|
||||||
id="a"
|
|
||||||
width="240"
|
|
||||||
height="234"
|
|
||||||
x="4"
|
|
||||||
y="1"
|
|
||||||
maskUnits="userSpaceOnUse"
|
|
||||||
style="mask-type:alpha">
|
|
||||||
<path
|
|
||||||
fill="white"
|
|
||||||
d="M244 123c0 64.617-38.383 112-103 112-64.617 0-103-30.883-103-95.5C38 111.194-8.729 36.236 8 16 29.46-9.959 88.689 6 125 6c64.617 0 119 52.383 119 117Z"
|
|
||||||
id="path19" />
|
|
||||||
</mask>
|
|
||||||
<g
|
|
||||||
mask="url(#a)"
|
|
||||||
id="g28"
|
|
||||||
transform="matrix(0.90923731,0,0,1.0049564,13.520015,-3.1040835)">
|
|
||||||
<path
|
|
||||||
fill="#ea9e44"
|
|
||||||
d="m 116.94,88.1 c -13.344,1.552 -20.436,-2.019 -24.706,10.71 0,0 14.336,21.655 52.54,21.112 -2.135,8.848 -1.144,15.368 -1.144,23.207 0,26.079 -20.589,48.821 -65.961,48.821 -23.03,0 -51.015,4.191 -72.367,15.911 -15.175,8.305 -27.048,20.336 -32.302,37.023 l 5.956,8.461 11.4,0.155 v 47.889 l -13.91,21.966 3.998,63.645 H -6.364 L -5.22,335.773 C 1.338,331.892 16.36,321.802 29.171,306.279 46.557,285.4 59.902,255.052 44.193,217.486 l 11.744,-5.045 c 12.887,30.814 8.388,57.514 -2.898,79.013 21.58,-0.698 40.11,-2.095 55.819,-4.734 l -3.584,-43.698 12.659,-1.087 L 129.98,387 h 13.116 l 2.212,-94.459 c 10.447,-4.502 34.239,-21.034 45.372,-78.47 1.372,-6.986 2.135,-12.885 2.516,-17.93 1.754,-12.806 2.745,-27.243 3.051,-43.698 l -18.683,-5.976 h 57.42 l 5.567,-12.807 c -5.414,0.233 -11.896,-2.639 -11.896,-2.639 l 1.297,-6.209 H 242 L 176.801,90.428 c -7.244,2.794 -14.87,6.442 -20.208,10.866 -4.27,-3.105 -19.063,-12.807 -39.653,-13.195 z"
|
|
||||||
id="path22" />
|
|
||||||
<path
|
|
||||||
fill="#c16929"
|
|
||||||
d="M 6.217,24.493 18.494,21 c 5.948,21.577 13.345,33.375 22.648,39.352 8.388,5.099 19.75,5.239 31.799,4.579 C 69.433,63.767 66.154,62.137 63.104,59.886 56.317,54.841 50.522,46.458 46.175,31.246 l 12.201,-3.649 c 3.279,11.488 7.092,18.085 12.201,21.888 5.11,3.726 11.286,4.657 18.606,5.433 13.726,1.553 30.884,2.174 52.312,12.264 2.898,1.086 5.872,2.483 8.769,4.036 -0.381,-0.776 -0.762,-1.553 -1.296,-2.406 -3.66,-5.822 -10.828,-11.953 -24.097,-16.92 l 4.27,-12.109 c 21.581,7.917 30.121,19.171 33.553,28.097 3.965,10.168 1.525,18.124 1.525,18.124 -3.05,1.009 -6.1,2.406 -9.608,3.492 -6.634,-4.579 -12.887,-8.033 -18.835,-10.75 C 113.814,70.442 92.31,76.108 73.246,77.893 58.91,79.213 45.794,78.591 34.432,71.295 23.222,64.155 13.385,50.495 6.217,24.493 Z"
|
|
||||||
id="path24" />
|
|
||||||
<path
|
|
||||||
fill="#c16929"
|
|
||||||
d="M 90.098,45.294 C 87.582,39.55 86.057,32.487 86.743,23.794 l 12.659,0.932 c -0.763,10.555 2.897,17.696 7.015,22.353 -5.338,-0.931 -10.447,-1.04 -16.319,-1.785 z m 80.069,-1.32 8.312,-9.702 c 21.58,19.094 8.159,46.415 8.159,46.415 l -11.819,-1.32 c -0.382,-6.24 -1.144,-17.836 -6.635,-24.371 3.584,1.84 6.635,3.865 9.99,6.908 0,-5.666 -1.754,-12.341 -8.007,-17.93 z"
|
|
||||||
id="path26" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 589 B |
|
@ -60,7 +60,7 @@ async function fetchAppInfo(origin: string, server: string) {
|
||||||
},
|
},
|
||||||
body: {
|
body: {
|
||||||
client_name: APP_NAME + (env !== 'release' ? ` (${env})` : ''),
|
client_name: APP_NAME + (env !== 'release' ? ` (${env})` : ''),
|
||||||
website: 'https://elk.zone',
|
website: origin,
|
||||||
redirect_uris: getRedirectURI(origin, server),
|
redirect_uris: getRedirectURI(origin, server),
|
||||||
scopes: 'read write follow push',
|
scopes: 'read write follow push',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,5 +1,12 @@
|
||||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||||
|
|
||||||
|
exports[`content-rich > asterisk paris in code block 1`] = `"<p><pre class="code-block">1 * 2 * 3</pre></p>"`;
|
||||||
|
|
||||||
|
exports[`content-rich > asterisk paris in inline code 1`] = `
|
||||||
|
"<p><code>1 * 2 * 3</code></p>
|
||||||
|
"
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`content-rich > block with backticks 1`] = `"<p><pre class="code-block">[(\`number string) (\`tag string)]</pre></p>"`;
|
exports[`content-rich > block with backticks 1`] = `"<p><pre class="code-block">[(\`number string) (\`tag string)]</pre></p>"`;
|
||||||
|
|
||||||
exports[`content-rich > block with injected html, with a known language 1`] = `
|
exports[`content-rich > block with injected html, with a known language 1`] = `
|
||||||
|
|
|
@ -186,6 +186,16 @@ describe('content-rich', () => {
|
||||||
`)
|
`)
|
||||||
expect(formatted).toMatchSnapshot()
|
expect(formatted).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it ('asterisk paris in inline code', async () => {
|
||||||
|
const { formatted } = await render('<p>`1 * 2 * 3`</p>')
|
||||||
|
expect(formatted).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
|
||||||
|
it ('asterisk paris in code block', async () => {
|
||||||
|
const { formatted } = await render('<p>```<br />1 * 2 * 3<br />```</p>')
|
||||||
|
expect(formatted).toMatchSnapshot()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('editor', () => {
|
describe('editor', () => {
|
||||||
|
|