From 74148d71b0f9d9451a778a7f95347cb2d403c1fc Mon Sep 17 00:00:00 2001
From: Clark Cui <46164858+clark-cui@users.noreply.github.com>
Date: Wed, 11 Jan 2023 00:01:24 +0800
Subject: [PATCH 001/257] fix: disable back button when no back path (#936)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: 三咲智子 Kevin Deng
---
components/nav/NavTitle.vue | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/components/nav/NavTitle.vue b/components/nav/NavTitle.vue
index d9bb616d..d001411b 100644
--- a/components/nav/NavTitle.vue
+++ b/components/nav/NavTitle.vue
@@ -1,5 +1,10 @@
@@ -18,7 +23,7 @@ const { env } = useBuildInfo()
{{ $t('app_name') }} {{ env === 'release' ? 'alpha' : env }}
-
+
Date: Tue, 10 Jan 2023 21:57:12 +0200
Subject: [PATCH 002/257] fix: properly close media dialog on Esc key (#946)
---
components/modal/ModalContainer.vue | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/components/modal/ModalContainer.vue b/components/modal/ModalContainer.vue
index 25ba1d62..4680a28e 100644
--- a/components/modal/ModalContainer.vue
+++ b/components/modal/ModalContainer.vue
@@ -71,9 +71,10 @@ const handleFavouritedBoostedByClose = () => {
/>
From 1b9fb990328b27cedffe5be8bb3721e9042248a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joaqu=C3=ADn=20S=C3=A1nchez?=
Date: Tue, 10 Jan 2023 21:35:34 +0100
Subject: [PATCH 003/257] feat: add web manifest dark theme variants (#947)
---
composables/setups.ts | 3 ++-
modules/pwa/i18n.ts | 25 +++++++++++++++++++++++++
modules/pwa/index.ts | 19 ++++++++++++-------
3 files changed, 39 insertions(+), 8 deletions(-)
diff --git a/composables/setups.ts b/composables/setups.ts
index 4d422e0e..90b12a22 100644
--- a/composables/setups.ts
+++ b/composables/setups.ts
@@ -3,6 +3,7 @@ import type { LocaleObject } from '#i18n'
export function setupPageHeader() {
const { locale, locales, t } = useI18n()
+ const colorMode = useColorMode()
const buildInfo = useBuildInfo()
const localeMap = (locales.value as LocaleObject[]).reduce((acc, l) => {
@@ -26,7 +27,7 @@ export function setupPageHeader() {
? () => [{
key: 'webmanifest',
rel: 'manifest',
- href: `/manifest-${locale.value}.webmanifest`,
+ href: `/manifest-${locale.value}${colorMode.value === 'dark' ? '-dark' : ''}.webmanifest`,
}]
: [],
})
diff --git a/modules/pwa/i18n.ts b/modules/pwa/i18n.ts
index a74ad495..18d9941e 100644
--- a/modules/pwa/i18n.ts
+++ b/modules/pwa/i18n.ts
@@ -74,6 +74,31 @@ export const createI18n = async (): Promise => {
},
],
}
+ acc[`${lang}-dark`] = {
+ scope: '/',
+ id: '/',
+ start_url: '/',
+ display: 'standalone',
+ lang,
+ name,
+ short_name,
+ description,
+ dir,
+ background_color: '#111111',
+ theme_color: '#111111',
+ icons: [
+ {
+ src: 'pwa-192x192.png',
+ sizes: '192x192',
+ type: 'image/png',
+ },
+ {
+ src: 'pwa-512x512.png',
+ sizes: '512x512',
+ type: 'image/png',
+ },
+ ],
+ }
return acc
}, {} as LocalizedWebManifest)
diff --git a/modules/pwa/index.ts b/modules/pwa/index.ts
index 1cd02d4a..7b8e6ead 100644
--- a/modules/pwa/index.ts
+++ b/modules/pwa/index.ts
@@ -41,10 +41,10 @@ export default defineNuxtModule({
throw new Error('Remove vite-plugin-pwa plugin from Vite Plugins entry in Nuxt config file!')
webmanifests = await createI18n()
- const generateManifest = (locale: string) => {
- const manifest = webmanifests![locale]
+ const generateManifest = (entry: string) => {
+ const manifest = webmanifests![entry]
if (!manifest)
- throw new Error(`No webmanifest found for locale ${locale}`)
+ throw new Error(`No webmanifest found for locale/theme ${entry}`)
return JSON.stringify(manifest)
}
viteInlineConfig.plugins.push({
@@ -54,12 +54,12 @@ export default defineNuxtModule({
if (options.disable || !bundle)
return
- Object.keys(webmanifests!).map(l => [l, `manifest-${l}.webmanifest`]).forEach(([l, fileName]) => {
+ Object.keys(webmanifests!).map(wm => [wm, `manifest-${wm}.webmanifest`]).forEach(([wm, fileName]) => {
bundle[fileName] = {
isAsset: true,
type: 'asset',
name: undefined,
- source: generateManifest(l),
+ source: generateManifest(wm),
fileName,
}
})
@@ -107,9 +107,9 @@ export default defineNuxtModule({
viteServer.middlewares.stack.push({ route: webManifest, handle: emptyHandle })
if (webmanifests) {
- Object.keys(webmanifests).forEach((locale) => {
+ Object.keys(webmanifests).forEach((wm) => {
viteServer.middlewares.stack.push({
- route: `${nuxt.options.app.baseURL}manifest-${locale}.webmanifest`,
+ route: `${nuxt.options.app.baseURL}manifest-${wm}.webmanifest`,
handle: emptyHandle,
})
})
@@ -138,6 +138,11 @@ export default defineNuxtModule({
'Content-Type': 'application/manifest+json',
},
}
+ nitroConfig.routeRules![`/manifest-${locale.code}-dark.webmanifest`] = {
+ headers: {
+ 'Content-Type': 'application/manifest+json',
+ },
+ }
}
})
nuxt.hook('nitro:init', (nitro) => {
From 62b60208955e2ac917652e80a0b097bdf539d8f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joaqu=C3=ADn=20S=C3=A1nchez?=
Date: Tue, 10 Jan 2023 22:09:12 +0100
Subject: [PATCH 004/257] fix: add workbox-build dev dependency (#949)
---
package.json | 1 +
pnpm-lock.yaml | 51 +++++++++++++++++++++++++-------------------------
2 files changed, 27 insertions(+), 25 deletions(-)
diff --git a/package.json b/package.json
index 7acf7432..57e02cc5 100644
--- a/package.json
+++ b/package.json
@@ -112,6 +112,7 @@
"vite-plugin-pwa": "^0.14.1",
"vitest": "^0.27.0",
"vue-tsc": "^1.0.24",
+ "workbox-build": "^6.5.4",
"workbox-window": "^6.5.4"
},
"pnpm": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b2b70178..c4ce641c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -120,6 +120,7 @@ importers:
vue-advanced-cropper: ^2.8.6
vue-tsc: ^1.0.24
vue-virtual-scroller: 2.0.0-beta.7
+ workbox-build: ^6.5.4
workbox-window: ^6.5.4
dependencies:
'@fnando/sparkline': 0.3.10
@@ -153,8 +154,8 @@ importers:
shiki: 0.12.1
shiki-es: 0.1.2
slimeform: 0.8.0
- tauri-plugin-log-api: github.com/tauri-apps/tauri-plugin-log/954a857daa45598ffc5e8637fccdba300f9ef757
- tauri-plugin-store-api: github.com/tauri-apps/tauri-plugin-store/89100ece4ebe010091e90d1873eaeafbbf5eb60a
+ tauri-plugin-log-api: github.com/tauri-apps/tauri-plugin-log/c19b5d1d58275329882dd931ea66960e00febdb2
+ tauri-plugin-store-api: github.com/tauri-apps/tauri-plugin-store/2404bc57014d323361ac6bc4505fb9e3db2d0aab
tiny-decode: 0.1.3
tippy.js: 6.3.7
ufo: 1.0.1
@@ -204,9 +205,10 @@ importers:
typescript: 4.9.4
unplugin-auto-import: 0.12.1_@vueuse+core@9.10.0
vite-plugin-inspect: 0.7.14
- vite-plugin-pwa: 0.14.1_workbox-window@6.5.4
+ vite-plugin-pwa: 0.14.1
vitest: 0.27.0_jsdom@21.0.0
vue-tsc: 1.0.24_typescript@4.9.4
+ workbox-build: 6.5.4
workbox-window: 6.5.4
docs:
@@ -1753,8 +1755,8 @@ packages:
vue-i18n:
optional: true
dependencies:
- '@intlify/message-compiler': 9.3.0-beta.13
- '@intlify/shared': 9.3.0-beta.13
+ '@intlify/message-compiler': 9.3.0-beta.14
+ '@intlify/shared': 9.3.0-beta.14
jsonc-eslint-parser: 1.4.1
source-map: 0.6.1
vue-i18n: 9.3.0-beta.13-972e836
@@ -1778,14 +1780,6 @@ packages:
'@intlify/shared': 9.3.0-beta.13-972e836
dev: true
- /@intlify/message-compiler/9.3.0-beta.13:
- resolution: {integrity: sha512-6vVGAOqzSurfp8leQ+9ySBTxCTTJyucMBVVXxW1/ENWGxZg1SDdIIZG3FcZo+kZEfbm46AWVByCL8FdcHS2QGw==}
- engines: {node: '>= 14'}
- dependencies:
- '@intlify/shared': 9.3.0-beta.13
- source-map: 0.6.1
- dev: true
-
/@intlify/message-compiler/9.3.0-beta.13-972e836:
resolution: {integrity: sha512-vE6NppMXHsY1hJV5bDzkL+lzk+uiZCcapU2xBVPmXLTol/bDubFeO4o9LlzpYz/GGg3wC9uyEu/Y98bwkL8hUQ==}
engines: {node: '>= 14'}
@@ -1794,18 +1788,26 @@ packages:
source-map: 0.6.1
dev: true
+ /@intlify/message-compiler/9.3.0-beta.14:
+ resolution: {integrity: sha512-PlZ3pl+YYuql54Nq+26wv6ohIa8Ig6ALrvQI+f2zZKUtkupb49M4wyVN3bDQbFlgYVE7/u3n19BJSY8lEuX5Eg==}
+ engines: {node: '>= 14'}
+ dependencies:
+ '@intlify/shared': 9.3.0-beta.14
+ source-map: 0.6.1
+ dev: true
+
/@intlify/shared/9.3.0-beta.10:
resolution: {integrity: sha512-h93uAanbAt/XgjDHclrVB7xix6r7Uz11wx0iGNOCdHP7aA2LCJjUT3uNbekJjjbo+Fl5jzTSJZdm2SexzoqhRA==}
engines: {node: '>= 14'}
dev: true
- /@intlify/shared/9.3.0-beta.13:
- resolution: {integrity: sha512-94pkO11UTh/7b1B9RGe6iEFG6e89I+qDN8MjA3rhc4dnMt7rGzg7/xhxMmavzGTieYQRfv86jv+EOUmP4cc5Wg==}
+ /@intlify/shared/9.3.0-beta.13-972e836:
+ resolution: {integrity: sha512-BmquYVeubM/iBmYoMPUlpiJSuruevIqHmUzHz4V0v+4fMDo47DPbcFsEF9zdpeJ8YVW1MPA1sOQr6ZrfOA2g1w==}
engines: {node: '>= 14'}
dev: true
- /@intlify/shared/9.3.0-beta.13-972e836:
- resolution: {integrity: sha512-BmquYVeubM/iBmYoMPUlpiJSuruevIqHmUzHz4V0v+4fMDo47DPbcFsEF9zdpeJ8YVW1MPA1sOQr6ZrfOA2g1w==}
+ /@intlify/shared/9.3.0-beta.14:
+ resolution: {integrity: sha512-mJ/rFan+4uVsBAQSCAJnpQaPvSjQ49mJMNmGelTUbTDAmgf0oexYxwqtKOlFFyY3hmQ8lUDYaGQKuYrFgRuHnA==}
engines: {node: '>= 14'}
dev: true
@@ -1825,7 +1827,7 @@ packages:
optional: true
dependencies:
'@intlify/bundle-utils': 3.4.0_qjugkpmxfnp3l7d6jb7y3o5rvi
- '@intlify/shared': 9.3.0-beta.13
+ '@intlify/shared': 9.3.0-beta.14
'@rollup/pluginutils': 4.2.1
'@vue/compiler-sfc': 3.2.45
debug: 4.3.4
@@ -11946,11 +11948,10 @@ packages:
- supports-color
dev: true
- /vite-plugin-pwa/0.14.1_workbox-window@6.5.4:
+ /vite-plugin-pwa/0.14.1:
resolution: {integrity: sha512-5zx7yhQ8RTLwV71+GA9YsQQ63ALKG8XXIMqRJDdZkR8ZYftFcRgnzM7wOWmQZ/DATspyhPih5wCdcZnAIsM+mA==}
peerDependencies:
vite: ^3.1.0 || ^4.0.0
- workbox-window: ^6.5.4
dependencies:
'@rollup/plugin-replace': 5.0.2_rollup@3.9.1
debug: 4.3.4
@@ -12211,7 +12212,7 @@ packages:
vue-router:
optional: true
dependencies:
- '@intlify/shared': 9.3.0-beta.13
+ '@intlify/shared': 9.3.0-beta.14
'@intlify/vue-i18n-bridge': 0.8.0_qjugkpmxfnp3l7d6jb7y3o5rvi
'@intlify/vue-router-bridge': 0.8.0
ufo: 1.0.1
@@ -12720,16 +12721,16 @@ packages:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
dev: true
- github.com/tauri-apps/tauri-plugin-log/954a857daa45598ffc5e8637fccdba300f9ef757:
- resolution: {tarball: https://codeload.github.com/tauri-apps/tauri-plugin-log/tar.gz/954a857daa45598ffc5e8637fccdba300f9ef757}
+ github.com/tauri-apps/tauri-plugin-log/c19b5d1d58275329882dd931ea66960e00febdb2:
+ resolution: {tarball: https://codeload.github.com/tauri-apps/tauri-plugin-log/tar.gz/c19b5d1d58275329882dd931ea66960e00febdb2}
name: tauri-plugin-log-api
version: 0.0.0
dependencies:
'@tauri-apps/api': 1.2.0
dev: false
- github.com/tauri-apps/tauri-plugin-store/89100ece4ebe010091e90d1873eaeafbbf5eb60a:
- resolution: {tarball: https://codeload.github.com/tauri-apps/tauri-plugin-store/tar.gz/89100ece4ebe010091e90d1873eaeafbbf5eb60a}
+ github.com/tauri-apps/tauri-plugin-store/2404bc57014d323361ac6bc4505fb9e3db2d0aab:
+ resolution: {tarball: https://codeload.github.com/tauri-apps/tauri-plugin-store/tar.gz/2404bc57014d323361ac6bc4505fb9e3db2d0aab}
name: tauri-plugin-store-api
version: 0.0.0
dependencies:
From 7c651d450d85ef8cebb94488ed3ad643d4ca2ee6 Mon Sep 17 00:00:00 2001
From: Piotrek Tomczewski
Date: Tue, 10 Jan 2023 22:16:56 +0100
Subject: [PATCH 005/257] feat(tiptap): add undo and redo (#944)
---
composables/tiptap.ts | 4 ++++
package.json | 1 +
pnpm-lock.yaml | 42 ++++++++++++++++--------------------------
3 files changed, 21 insertions(+), 26 deletions(-)
diff --git a/composables/tiptap.ts b/composables/tiptap.ts
index 24219ce7..d623315a 100644
--- a/composables/tiptap.ts
+++ b/composables/tiptap.ts
@@ -8,6 +8,7 @@ import HardBreak from '@tiptap/extension-hard-break'
import Bold from '@tiptap/extension-bold'
import Italic from '@tiptap/extension-italic'
import Code from '@tiptap/extension-code'
+import History from '@tiptap/extension-history'
import { Plugin } from 'prosemirror-state'
import type { Ref } from 'vue'
@@ -61,6 +62,9 @@ export function useTiptap(options: UseTiptapOptions) {
placeholder: () => placeholder.value!,
}),
CodeBlockShiki,
+ History.configure({
+ depth: 10,
+ }),
Extension.create({
name: 'api',
addKeyboardShortcuts() {
diff --git a/package.json b/package.json
index 57e02cc5..7882e7fa 100644
--- a/package.json
+++ b/package.json
@@ -31,6 +31,7 @@
"@iconify/utils": "^2.0.11",
"@tiptap/extension-character-count": "2.0.0-beta.204",
"@tiptap/extension-code-block": "2.0.0-beta.204",
+ "@tiptap/extension-history": "2.0.0-beta.204",
"@tiptap/extension-mention": "2.0.0-beta.204",
"@tiptap/extension-paragraph": "2.0.0-beta.204",
"@tiptap/extension-placeholder": "2.0.0-beta.204",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c4ce641c..32087343 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -53,6 +53,7 @@ importers:
'@pinia/nuxt': ^0.4.6
'@tiptap/extension-character-count': 2.0.0-beta.204
'@tiptap/extension-code-block': 2.0.0-beta.204
+ '@tiptap/extension-history': 2.0.0-beta.204
'@tiptap/extension-mention': 2.0.0-beta.204
'@tiptap/extension-paragraph': 2.0.0-beta.204
'@tiptap/extension-placeholder': 2.0.0-beta.204
@@ -128,6 +129,7 @@ importers:
'@iconify/utils': 2.0.11
'@tiptap/extension-character-count': 2.0.0-beta.204
'@tiptap/extension-code-block': 2.0.0-beta.204
+ '@tiptap/extension-history': 2.0.0-beta.204
'@tiptap/extension-mention': 2.0.0-beta.204_ggkstofzpnfxkp3gzsos4mewvi
'@tiptap/extension-paragraph': 2.0.0-beta.204
'@tiptap/extension-placeholder': 2.0.0-beta.204
@@ -205,7 +207,7 @@ importers:
typescript: 4.9.4
unplugin-auto-import: 0.12.1_@vueuse+core@9.10.0
vite-plugin-inspect: 0.7.14
- vite-plugin-pwa: 0.14.1
+ vite-plugin-pwa: 0.14.1_tz3vz2xt4jvid2diblkpydcyn4
vitest: 0.27.0_jsdom@21.0.0
vue-tsc: 1.0.24_typescript@4.9.4
workbox-build: 6.5.4
@@ -2649,20 +2651,6 @@ packages:
rollup: 2.79.1
dev: true
- /@rollup/plugin-replace/5.0.1_rollup@3.9.1:
- resolution: {integrity: sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- dependencies:
- '@rollup/pluginutils': 5.0.2_rollup@3.9.1
- magic-string: 0.26.7
- rollup: 3.9.1
- dev: true
-
/@rollup/plugin-replace/5.0.2_rollup@2.79.1:
resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==}
engines: {node: '>=14.0.0'}
@@ -2917,6 +2905,14 @@ packages:
'@tiptap/core': 2.0.0-beta.204
dev: false
+ /@tiptap/extension-history/2.0.0-beta.204:
+ resolution: {integrity: sha512-Dk64Nu2bnPutLV0Fd2H1c5ffGE+bQ2eVyWUrAGodAhZJINouN8EF7T0pZLSo0YaIlLMWsl23fImGtBEyVYQUKw==}
+ peerDependencies:
+ '@tiptap/core': ^2.0.0-beta.193
+ dependencies:
+ prosemirror-history: 1.3.0
+ dev: false
+
/@tiptap/extension-history/2.0.0-beta.204_bv566pzu4gfcw3675d5jwhi56i:
resolution: {integrity: sha512-Dk64Nu2bnPutLV0Fd2H1c5ffGE+bQ2eVyWUrAGodAhZJINouN8EF7T0pZLSo0YaIlLMWsl23fImGtBEyVYQUKw==}
peerDependencies:
@@ -3661,7 +3657,7 @@ packages:
'@vue/compiler-sfc': 3.2.45
'@vue/reactivity': 3.2.45
'@vue/shared': 3.2.45
- minimatch: 5.1.1
+ minimatch: 5.1.2
vue-template-compiler: 2.7.14
dev: true
@@ -8539,13 +8535,6 @@ packages:
brace-expansion: 1.1.11
dev: true
- /minimatch/5.1.1:
- resolution: {integrity: sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==}
- engines: {node: '>=10'}
- dependencies:
- brace-expansion: 2.0.1
- dev: true
-
/minimatch/5.1.2:
resolution: {integrity: sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==}
engines: {node: '>=10'}
@@ -11314,7 +11303,7 @@ packages:
'@rollup/plugin-commonjs': 23.0.3_rollup@3.9.1
'@rollup/plugin-json': 5.0.2_rollup@3.9.1
'@rollup/plugin-node-resolve': 15.0.1_rollup@3.9.1
- '@rollup/plugin-replace': 5.0.1_rollup@3.9.1
+ '@rollup/plugin-replace': 5.0.2_rollup@3.9.1
'@rollup/pluginutils': 5.0.2_rollup@3.9.1
chalk: 5.1.2
consola: 2.15.3
@@ -11948,10 +11937,12 @@ packages:
- supports-color
dev: true
- /vite-plugin-pwa/0.14.1:
+ /vite-plugin-pwa/0.14.1_tz3vz2xt4jvid2diblkpydcyn4:
resolution: {integrity: sha512-5zx7yhQ8RTLwV71+GA9YsQQ63ALKG8XXIMqRJDdZkR8ZYftFcRgnzM7wOWmQZ/DATspyhPih5wCdcZnAIsM+mA==}
peerDependencies:
vite: ^3.1.0 || ^4.0.0
+ workbox-build: ^6.5.4
+ workbox-window: ^6.5.4
dependencies:
'@rollup/plugin-replace': 5.0.2_rollup@3.9.1
debug: 4.3.4
@@ -11961,7 +11952,6 @@ packages:
workbox-build: 6.5.4
workbox-window: 6.5.4
transitivePeerDependencies:
- - '@types/babel__core'
- supports-color
dev: true
From 7a821fa648d005cc271b658032e7fcde3aaf4a4b Mon Sep 17 00:00:00 2001
From: JP
Date: Wed, 11 Jan 2023 00:06:43 +0200
Subject: [PATCH 006/257] feat(i18n): add ar-EG entries (#950)
---
locales/ar-EG.json | 127 ++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 115 insertions(+), 12 deletions(-)
diff --git a/locales/ar-EG.json b/locales/ar-EG.json
index 7d74fb78..6c2031e2 100644
--- a/locales/ar-EG.json
+++ b/locales/ar-EG.json
@@ -42,6 +42,7 @@
"bookmark": "إضافة إلى العلامات المرجعية",
"bookmarked": "مضاف إلى العلامات المرجعية",
"boost": "إعادة نشر",
+ "boost_count": "{0}",
"boosted": "أعيد نشرها",
"clear_upload_failed": "مسح أخطاء تحميل الملف",
"close": "أغلق",
@@ -50,12 +51,15 @@
"edit": "تعديل",
"enter_app": "أدخل التطبيق",
"favourite": "إضافة إلى المفضلين",
+ "favourite_count": "{0}",
"favourited": "مضاف إلى المفضلين",
"more": "المزيد",
"next": "التالي",
"prev": "السابق",
"publish": "نشر",
"reply": "رد",
+ "reply_count": "{0}",
+ "reset": "إعادة الضبط",
"save": "حفظ",
"save_changes": "حفظ التغييرات",
"sign_in": "تسجيل الدخول",
@@ -82,12 +86,21 @@
"toggle_zen_mode": "تبديل وضع الهدوء"
},
"common": {
+ "confirm_dialog": {
+ "cancel": "كلا",
+ "confirm": "نعم",
+ "title": "هل أنت متأكد؟"
+ },
"end_of_list": "نهاية القائمة",
"error": "حدث خطأ",
"in": "في",
"not_found": "404 غير معثور عليه",
"offline_desc": "يبدو أنك غير متصل بالإنترنت. يرجى التحقق من اتصالك."
},
+ "compose": {
+ "draft_title": "مسودة {0}",
+ "drafts": "المسودات ({v})"
+ },
"conversation": {
"with": "مع"
},
@@ -104,21 +117,37 @@
"desc_para1": "نشكرك على اهتمامك بتجربة Elk ، عميل ماستدون العام!",
"desc_para2": "نحن نعمل بجد على التطوير وتحسينه بمرور الوقت. وسندعوك قريبًا للانضمام إلى القوة بمجرد أن نجعلها مفتوحة المصدر قريبًا!",
"desc_para3": "قبل ذلك ، للمساعدة في تعزيز التنمية ، يمكنك رعاية أعضاء فريقنا من خلال الروابط أدناه.",
+ "desc_para4": "قبل ذلك ، إذا كنت ترغب في المساعدة في الاختبار أو تقديم التعليقات أو المساهمة ،",
+ "desc_para5": "تواصل معنا على Mastodon",
+ "desc_para6": "و شارك معنا",
"title": "Elk في عرض مسبق"
},
+ "language": {
+ "none": "لا شيء",
+ "search": "بحث"
+ },
"menu": {
"block_account": "حظر {0}",
"block_domain": "حظر المجال {0}",
"copy_link_to_post": "انسخ الرابط إلى هذا المنشور",
"delete": "حذف",
"delete_and_redraft": "حذف وإعادة صياغة",
+ "delete_confirm": {
+ "cancel": "إلغاء",
+ "confirm": "حذف",
+ "title": "هل أنت متأكد أنك تريد حذف هذا المنشور؟"
+ },
"direct_message_account": "إرسال رسالة مباشرة إلى {0}",
"edit": "تعديل",
+ "hide_reblogs": "إخفاء المشاركات من {0}",
"mention_account": "أذكر {0}",
"mute_account": "كتم {0}",
"mute_conversation": "تجاهل هذا المنصب",
"open_in_original_site": "فتح في الموقع الأصلي",
"pin_on_profile": "تثبيت على حسابك الشخصي",
+ "share_post": "شارك هذا المنشور",
+ "show_favourited_and_boosted_by": "أظهر من فضل وشارك",
+ "show_reblogs": "عرض المشاركات من {0}",
"show_untranslated": "عرض بدون ترجمة",
"toggle_theme": {
"dark": "تبديل المظهر الداكن",
@@ -132,6 +161,9 @@
"unpin_on_profile": "إلغاء التثبيت من الملف الشخصي"
},
"nav": {
+ "back": "العودة",
+ "blocked_domains": "المجالات المحظورة",
+ "blocked_users": "المستخدمين المحظورين",
"bookmarks": "العلامات المرجعية",
"built_at": "Built {0}",
"conversations": "المحادثات",
@@ -140,6 +172,7 @@
"federated": "الفديرالية",
"home": "الرئيسيّة",
"local": "المحلي",
+ "muted_users": "المستخدمون المكتموصين",
"notifications": "التنبيهات",
"profile": "الصفحة التعريفية",
"search": "البحث",
@@ -172,15 +205,42 @@
"dismiss": "تجاهل",
"title": "يتوفر تحديث Elk الجديد",
"update": "تحديث",
- "update_available_short": "تحديث Elk"
+ "update_available_short": "تحديث Elk",
+ "webmanifest": {
+ "canary": {
+ "description": "A nimble Mastodon web client (canary)",
+ "name": "Elk (canary)",
+ "short_name": "Elk (canary)"
+ },
+ "dev": {
+ "description": "A nimble Mastodon web client (dev)",
+ "name": "Elk (dev)",
+ "short_name": "Elk (dev)"
+ },
+ "preview": {
+ "description": "A nimble Mastodon web client (preview)",
+ "name": "Elk (preview)",
+ "short_name": "Elk (preview)"
+ },
+ "release": {
+ "description": "A nimble Mastodon web client",
+ "name": "Elk",
+ "short_name": "Elk"
+ }
+ }
},
"search": {
- "search_desc": "ابحث عن الأشخاص والهاشتاج"
+ "search_desc": "ابحث عن الأشخاص والهاشتاج",
+ "search_empty": "لا يمكن العثور على أي شيء لشروط البحث هذه"
},
"settings": {
"about": {
"label": "بشأن Elk"
},
+ "account_settings": {
+ "description": "قم بتحرير إعدادات حسابك في موقع Mastodon الأصلي",
+ "label": "إعدادت الحساب"
+ },
"feature_flags": {
"github_cards": "GitHub بطاقات",
"title": "الميزات التجريبية",
@@ -193,16 +253,23 @@
"default": "(إفتراضي)",
"font_size": "حجم الخط",
"label": "واجهه المستخدم",
- "light_mode": "وضع الضوء"
+ "light_mode": "وضع الضوء",
+ "size_label": {
+ "lg": "كبير",
+ "md": "متوسط",
+ "sm": "صغير",
+ "xl": "ضخم",
+ "xs": "صغير جدا"
+ }
},
"language": {
"display_language": "اللغة المعروضة",
"label": "اللغة"
},
"notifications": {
- "label": "Notifications",
+ "label": "التنبيهات",
"notifications": {
- "label": "Notifications settings"
+ "label": "إعدادات التنبيهات"
},
"push_notifications": {
"alerts": {
@@ -213,9 +280,9 @@
"reblog": "إعادة نشر منشورك",
"title": "ما هي التنبيهات التي تريد تلقيها؟"
},
- "description": "Receive notifications even when you are not using Elk.",
- "instructions": "Don't forget to save your changes using @:settings.notifications.push_notifications.save_settings button!",
- "label": "Push notifications settings",
+ "description": "تلقي التنبيهات حتى عندما لا تستخدم Elk.",
+ "instructions": " لا تنس حفظ التغييرات باستخدام الزر @:settings.notifications.push_notifications.save_settings",
+ "label": "إعدادات التنبيهات",
"policy": {
"all": "من اي شخص",
"followed": "من الناس الذين أتابعهم",
@@ -224,21 +291,30 @@
"title": "من الذي يمكنني تلقي التنبيهات منه؟"
},
"save_settings": "حفظ التغييرات الإعدادات",
+ "subscription_error": {
+ "clear_error": "خطأ في المسح",
+ "permission_denied": "تم رفض الإذن: قم بتمكين التنبيهات في متصفحك.",
+ "request_error": "حدث خطأ أثناء طلب الاشتراك ، حاول مرة أخرى وإذا استمر الخطأ ، يرجى إبلاغ Elk بالمشكلة.",
+ "title": "الاشتراك في التنبيهات غير ناجح"
+ },
+ "title": "إعدادات التنبيهات",
"undo_settings": "تراجع عن تغييرات الإعدادات",
"unsubscribe": "تعطيل التنبيهات",
"unsupported": "متصفحك لا يدعم التنبيهات",
"warning": {
"enable_close": "أغلق",
"enable_description": "لتلقي التنبيهات عندما لا يكون Elk مفتوحًا، قم بتمكين تنبيهات النظام. يمكنك التحكم بدقة في أنواع التفاعلات التي تنشئ تنبيهات النظام عبر الزر \"Show Settings\" أعلاه.",
- "enable_description_settings": "To receive notifications when Elk is not open, enable push notifications. You will be able to control precisely what types of interactions generate push notifications on this same screen once you enable them.",
+ "enable_description_desktop": "لتلقي إشعارات عندما لا يكون Elk مفتوحًا ، قم بتمكين دفع الإخطارات. يمكنك التحكم بدقة في أنواع التفاعلات التي تولد إشعارات الدفع \"Settings > Notifications > Push notifications settings\"",
+ "enable_description_mobile": "يمكنك أيضًا الوصول إلى الإعدادات باستخدام قائمة التنقل \"Settings > Notifications > Push notification settings\".",
+ "enable_description_settings": "لتلقي إشعارات عندما لا يكون Elk مفتوحًا ، قم بتمكين دفع الإخطارات. ستتمكن من التحكم بدقة في أنواع التفاعلات التي تولد إشعارات فورية على نفس الشاشة بمجرد تمكينها.",
"enable_desktop": "تفعيل تنبيهات النظام",
"enable_title": "لا تفوت عليك أي شيء",
"re_auth": "يبدو أن الخادم الخاص بك لا يدعم دفع التنبيهات. حاول تسجيل الخروج ثم تسجيل الدخول مرة أخرى ، إذا استمرت هذه الرسالة في الظهور ، فاتصل بمسؤول الخادم."
}
},
- "show_btn": "Go to notifications settings"
+ "show_btn": "انتقل إلى إعدادات التنبيهات"
},
- "notifications_settings": "Notifications",
+ "notifications_settings": "التنبيهات",
"preferences": {
"label": "التفضيلات"
},
@@ -248,6 +324,8 @@
"description": "تعديل الصورة الرمزية واسم المستخدم والملف الشخصي...",
"display_name": "الاسم المعروض",
"label": "المظهر",
+ "profile_metadata": "البيانات الوصفية للملف الشخصي",
+ "profile_metadata_desc": "يمكن أن يكون لديك ما يصل إلى {0} من العناصر المعروضة كجدول في ملفك الشخصي",
"title": "تعديل الملف الشخصي"
},
"featured_tags": {
@@ -261,17 +339,30 @@
"export": "Export User Tokens",
"import": "Import User Tokens",
"label": "المستخدمون المسجلون"
+ },
+ "wellness": {
+ "feature": {
+ "hide_boost_count": "إخفاء عدد المشاركات",
+ "hide_favorite_count": "إخفاء عدد المفضلة",
+ "hide_follower_count": "إخفاء عدد المتابعين"
+ },
+ "label": "صحة النفس"
}
},
"state": {
+ "attachments_exceed_server_limit": "تجاوز عدد المرفقات الحد الأقصى لكل منشور.",
+ "attachments_limit_error": "تجاوز الحد لل منشور",
"edited": "(معدل)",
"editing": "تعديل",
"loading": "جاري التحميل ...",
+ "publishing": "قيد النشر",
"upload_failed": "التحميل فشل",
"uploading": "جاري التحميل ..."
},
"status": {
+ "boosted_by": "تم النشر من",
"edited": "عدل {0}",
+ "favourited_by": "مُفضل من",
"filter_hidden_phrase": "تمت تصفيتها بواسطة",
"filter_removed_phrase": "تمت إزالته بواسطة عامل التصفية",
"filter_show_anyway": "عرض على أي حال",
@@ -285,9 +376,12 @@
"finished": "انتهى في {0}"
},
"reblogged": "{0} اعاد نشر",
+ "replying_to": "الرد على {0}",
+ "show_full_thread": "إظهار المحادثة كاملاً",
"someone": "شخص ما",
"spoiler_show_less": "عرض أقل",
"spoiler_show_more": "عرض المزيد",
+ "thread": "المحادثة",
"try_original_site": "جرب الموقع الأصلي"
},
"status_history": {
@@ -304,6 +398,12 @@
"posts": "المنشورات",
"posts_with_replies": "المنشورات والردود"
},
+ "tag": {
+ "follow": "تابع",
+ "follow_label": "اتبع الموضوع {0}",
+ "unfollow": "الغاء المتابعة",
+ "unfollow_label": "الغاء متابعة الموضوع {0}"
+ },
"time_ago_options": {
"day_future": "في 0 أيام|غدا|في يومين|في {v} أيام|في {v} يوم|في {v} يوم",
"day_past": "منذ 0 أيام|البارحة|منذ يومين|منذ {v} أيام|منذ {v} يوم|منذ {v} يوم",
@@ -336,7 +436,8 @@
"year_past": "هذا العام|العام الماضي|منذ عامين|منذ {v} عاما|منذ {v} عام|منذ {v} عام"
},
"timeline": {
- "show_new_items": "لا توجد عناصر جديدة|إظهار {v} عنصر جديد|إظهار {v} عنصرين جديدين|إظهار {v} عناصر جديدة|إظهار {v} عنصر جديد|إظهار {v} عنصر جديد"
+ "show_new_items": "لا توجد عناصر جديدة|إظهار {v} عنصر جديد|إظهار {v} عنصرين جديدين|إظهار {v} عناصر جديدة|إظهار {v} عنصر جديد|إظهار {v} عنصر جديد",
+ "view_older_posts": "قد لا يتم عرض المنشورات الأقدم من مواقع الأخرى."
},
"title": {
"federated_timeline": "الجدول الزمني الموحد",
@@ -345,7 +446,9 @@
"tooltip": {
"add_content_warning": "إضافة تحذير المحتوى",
"add_media": "أضف صورًا أو مقطع فيديو أو ملفًا صوتيًا",
+ "add_publishable_content": "أضف محتوى للنشر",
"change_content_visibility": "تغيير خصوصية المحتوى",
+ "change_language": "تغيير اللغة",
"emoji": "رمز تعبيري",
"explore_links_intro": "يتم التحدث عن هذه القصص الإخبارية من قبل الأشخاص الموجودين على هذه الشبكة وغيرها من الشبكات اللامركزية في الوقت الحالي",
"explore_posts_intro": "تكتسب هذه المنشورات الكثير من النشاط على الشبكة وغيرها من الشبكات اللامركزية في الوقت الحالي",
From 0cb974fcf7e86ad533aa3fe7574956252e7e337a Mon Sep 17 00:00:00 2001
From: Michel EDIGHOFFER
Date: Tue, 10 Jan 2023 23:18:52 +0100
Subject: [PATCH 007/257] fix: just now french translation (#951)
---
locales/fr-FR.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/locales/fr-FR.json b/locales/fr-FR.json
index 362dd1b5..12daef94 100644
--- a/locales/fr-FR.json
+++ b/locales/fr-FR.json
@@ -399,7 +399,7 @@
"day_past": "il y a 0 jour|hier|il y a {n} jours",
"hour_future": "dans 0 heure|dans 1 heure|dans {n} heures",
"hour_past": "il y a 0 heure|il y a 1 heure|il y a {n} heures",
- "just_now": "juste maintenant",
+ "just_now": "à l'instant",
"minute_future": "dans 0 minutes|dans 1 minute|dans {n} minutes",
"minute_past": "il y a 0 minute|il y a 1 minute|il y a {n} minutes",
"month_future": "dans 0 mois|le mois prochain|dans {n} mois",
From d36e21c5f1294a9a1b5db2cdee67434defc9926f Mon Sep 17 00:00:00 2001
From: Daniel Roe
Date: Tue, 10 Jan 2023 12:25:57 +0000
Subject: [PATCH 008/257] fix(tauri): add `/api/list-servers` route
---
modules/tauri/runtime/nitro.client.ts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules/tauri/runtime/nitro.client.ts b/modules/tauri/runtime/nitro.client.ts
index 771901f9..0694fc56 100644
--- a/modules/tauri/runtime/nitro.client.ts
+++ b/modules/tauri/runtime/nitro.client.ts
@@ -20,6 +20,10 @@ const handlers = [
route: '/api/:server/login',
handler: defineLazyEventHandler(() => import('~/server/api/[server]/login').then(r => r.default || r)),
},
+ {
+ route: '/api/list-servers',
+ handler: defineLazyEventHandler(() => import('~/server/api/list-servers').then(r => r.default || r)),
+ },
]
const { protocol, host } = parseURL(window.location.href)
From 2281dc6bd08d270999be5d96c5e0f99eca5c60ea Mon Sep 17 00:00:00 2001
From: Daniel Roe
Date: Tue, 10 Jan 2023 22:51:25 +0000
Subject: [PATCH 009/257] fix: expose dropzone ref to publish widget
---
components/publish/PublishWidget.vue | 1 +
composables/masto/publish.ts | 1 +
2 files changed, 2 insertions(+)
diff --git a/components/publish/PublishWidget.vue b/components/publish/PublishWidget.vue
index 3bd8c8b3..84f1f52c 100644
--- a/components/publish/PublishWidget.vue
+++ b/components/publish/PublishWidget.vue
@@ -32,6 +32,7 @@ const { draft } = $(draftState)
const {
isExceedingAttachmentLimit, isUploading, failedAttachments, isOverDropZone,
uploadAttachments, pickAttachments, setDescription, removeAttachment,
+ dropZoneRef,
} = $(useUploadMediaAttachment($$(draft)))
let { shouldExpanded, isExpanded, isSending, isPublishDisabled, publishDraft } = $(usePublish(
diff --git a/composables/masto/publish.ts b/composables/masto/publish.ts
index 3bca26f6..13c15940 100644
--- a/composables/masto/publish.ts
+++ b/composables/masto/publish.ts
@@ -143,6 +143,7 @@ export const useUploadMediaAttachment = (draftRef: Ref) => {
isUploading,
isExceedingAttachmentLimit,
failedAttachments,
+ dropZoneRef,
isOverDropZone,
uploadAttachments,
From c757e45762f915abc0b2f56a0f3953719677fecd Mon Sep 17 00:00:00 2001
From: Clark Cui <46164858+clark-cui@users.noreply.github.com>
Date: Wed, 11 Jan 2023 12:31:35 +0800
Subject: [PATCH 010/257] fix: back button invalid (#958)
---
components/nav/NavTitle.vue | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/components/nav/NavTitle.vue b/components/nav/NavTitle.vue
index d001411b..d5d37695 100644
--- a/components/nav/NavTitle.vue
+++ b/components/nav/NavTitle.vue
@@ -1,7 +1,10 @@
-
+
{ update(); clearNotifications() }">
{{ $t('timeline.show_new_items', number, { named: { v: formatNumber(number) } }) }}
-
-
+
+
+
+
+
+
+
+
+
Date: Wed, 11 Jan 2023 11:22:53 +0100
Subject: [PATCH 015/257] docs: include `Semantic Pull Request` in contributing
guide (#965)
---
CONTRIBUTING.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 20a36e2a..e68e4e73 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -44,7 +44,11 @@ If not using private browsing mode, you will need to uninstall the PWA applicati
## CI errors
-Sometimes when you push your changes, the CI can fail, but we cannot check the logs to see what went wrong, run the following commands on your local environment:
+Sometimes when you push your changes to create a new pull request (PR), the CI can fail, but we cannot check the logs to see what went wrong.
+
+If you are getting **Semantic Pull Request** error, please check the [Semantic Pull Request](https://www.conventionalcommits.org/en/v1.0.0/#summary) documentation.
+
+You can run the following commands on your local environment to fix CI errors:
- `pnpm test:unit` to run unit tests, maybe you also need to update snapshots
- `pnpm test:typecheck` to run TypeScript checks run on CI
From af85a5ea8d74e956a3f81969be3e27fb30f76b25 Mon Sep 17 00:00:00 2001
From: Piotrek Tomczewski
Date: Wed, 11 Jan 2023 14:39:20 +0100
Subject: [PATCH 016/257] fix(hashtag): fixed hashtag follow button on larger
screens (#862)
---
components/main/MainContent.vue | 7 +++----
components/nav/NavTitle.vue | 5 ++++-
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/components/main/MainContent.vue b/components/main/MainContent.vue
index f67c7c2e..a9a5f43f 100644
--- a/components/main/MainContent.vue
+++ b/components/main/MainContent.vue
@@ -14,11 +14,10 @@ defineProps<{
pt="[env(safe-area-inset-top,0)]"
border="b base" bg="[rgba(var(--c-bg-base-rgb),0.7)]"
>
-
+
@@ -38,7 +37,7 @@ defineProps<{
-
+
diff --git a/components/nav/NavTitle.vue b/components/nav/NavTitle.vue
index d5d37695..0bb7bddd 100644
--- a/components/nav/NavTitle.vue
+++ b/components/nav/NavTitle.vue
@@ -26,7 +26,10 @@ router.afterEach(() => {
{{ $t('app_name') }} {{ env === 'release' ? 'alpha' : env }}
-
+
Date: Wed, 11 Jan 2023 15:00:41 +0100
Subject: [PATCH 017/257] feat: bring zen mode to mobile footer nav (#969)
---
components/nav/NavBottomMoreMenu.vue | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/components/nav/NavBottomMoreMenu.vue b/components/nav/NavBottomMoreMenu.vue
index 45799cbc..3d124c8c 100644
--- a/components/nav/NavBottomMoreMenu.vue
+++ b/components/nav/NavBottomMoreMenu.vue
@@ -82,6 +82,20 @@ onBeforeUnmount(() => {
{{ colorMode.value === 'light' ? $t('menu.toggle_theme.dark') : $t('menu.toggle_theme.light') }}
+
+
+
+
+ {{ $t('nav.zen_mode') }}
+
From f04d7ac067a86de9d01ce3d578d7fc51b10a0a41 Mon Sep 17 00:00:00 2001
From: Daniel Roe
Date: Wed, 11 Jan 2023 14:50:47 +0000
Subject: [PATCH 018/257] fix: defer loading text and server links until
hydration (#926)
---
components/common/CommonRouteTabs.vue | 2 +-
components/nav/NavSide.vue | 6 +++---
components/nav/NavSideItem.vue | 2 +-
components/search/SearchWidget.vue | 2 +-
nuxt.config.ts | 3 ++-
pages/[[server]]/explore.vue | 16 ++++++++--------
pages/[[server]]/explore/index.vue | 2 +-
pages/[[server]]/explore/links.vue | 2 +-
pages/[[server]]/explore/tags.vue | 2 +-
pages/[[server]]/explore/users.vue | 2 +-
pages/notifications.vue | 4 ++--
pages/notifications/index.vue | 2 +-
pages/notifications/mention.vue | 2 +-
public/_redirects | 1 +
14 files changed, 25 insertions(+), 23 deletions(-)
diff --git a/components/common/CommonRouteTabs.vue b/components/common/CommonRouteTabs.vue
index 75ca06e6..fdd2174a 100644
--- a/components/common/CommonRouteTabs.vue
+++ b/components/common/CommonRouteTabs.vue
@@ -43,7 +43,7 @@ useCommands(() => command
exact-active-class="children:(text-secondary !border-primary !op100 !text-base)"
@click="!preventScrollTop && $scrollToTop()"
>
- {{ option.display }}
+ {{ option.display || ' ' }}
{{ option.display }}
diff --git a/components/nav/NavSide.vue b/components/nav/NavSide.vue
index 3e80416d..7b0d48fa 100644
--- a/components/nav/NavSide.vue
+++ b/components/nav/NavSide.vue
@@ -29,9 +29,9 @@ const { notifications } = useNotifications()
-
-
-
+
+
+
diff --git a/components/nav/NavSideItem.vue b/components/nav/NavSideItem.vue
index aa9c9243..81833884 100644
--- a/components/nav/NavSideItem.vue
+++ b/components/nav/NavSideItem.vue
@@ -66,7 +66,7 @@ const noUserVisual = computed(() => isMastoInitialised.value && props.userOnly &
- {{ text }}
+ {{ isHydrated ? text : ' ' }}
diff --git a/components/search/SearchWidget.vue b/components/search/SearchWidget.vue
index e9db61b2..12d27f19 100644
--- a/components/search/SearchWidget.vue
+++ b/components/search/SearchWidget.vue
@@ -66,7 +66,7 @@ const activate = () => {
bg-transparent
outline="focus:none"
pe-4
- :placeholder="t('nav.search')"
+ :placeholder="isHydrated ? t('nav.search') : ''"
pb="1px"
placeholder-text-secondary
@keydown.down.prevent="shift(1)"
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 2d768b9a..9d1ed396 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -112,8 +112,9 @@ export default defineNuxtConfig({
},
nitro: {
prerender: {
- crawlLinks: false,
+ crawlLinks: true,
routes: ['/'],
+ ignore: ['/settings'],
},
},
app: {
diff --git a/pages/[[server]]/explore.vue b/pages/[[server]]/explore.vue
index c50933fb..7495022b 100644
--- a/pages/[[server]]/explore.vue
+++ b/pages/[[server]]/explore.vue
@@ -3,21 +3,21 @@ const { t } = useI18n()
const tabs = $computed(() => [
{
- to: `/${currentServer.value}/explore`,
- display: t('tab.posts'),
+ to: isHydrated.value ? `/${currentServer.value}/explore` : '/explore',
+ display: isHydrated.value ? t('tab.posts') : '',
},
{
- to: `/${currentServer.value}/explore/tags`,
- display: t('tab.hashtags'),
+ to: isHydrated.value ? `/${currentServer.value}/explore/tags` : '/explore/tags',
+ display: isHydrated.value ? t('tab.hashtags') : '',
},
{
- to: `/${currentServer.value}/explore/links`,
- display: t('tab.news'),
+ to: isHydrated.value ? `/${currentServer.value}/explore/links` : '/explore/links',
+ display: isHydrated.value ? t('tab.news') : '',
},
// This section can only be accessed after logging in
{
- to: `/${currentServer.value}/explore/users`,
- display: t('tab.for_you'),
+ to: isHydrated.value ? `/${currentServer.value}/explore/users` : '/explore/users',
+ display: isHydrated.value ? t('tab.for_you') : '',
disabled: !isMastoInitialised.value || !currentUser.value,
},
] as const)
diff --git a/pages/[[server]]/explore/index.vue b/pages/[[server]]/explore/index.vue
index aee8806d..28088b7b 100644
--- a/pages/[[server]]/explore/index.vue
+++ b/pages/[[server]]/explore/index.vue
@@ -8,7 +8,7 @@ const paginator = useMasto().v1.trends.listStatuses()
const hideNewsTips = useLocalStorage(STORAGE_KEY_HIDE_EXPLORE_POSTS_TIPS, false)
useHeadFixed({
- title: () => `${t('tab.posts')} | ${t('nav.explore')}`,
+ title: () => isHydrated.value ? `${t('tab.posts')} | ${t('nav.explore')}` : '',
})
diff --git a/pages/[[server]]/explore/links.vue b/pages/[[server]]/explore/links.vue
index 55f8be76..af8deb96 100644
--- a/pages/[[server]]/explore/links.vue
+++ b/pages/[[server]]/explore/links.vue
@@ -8,7 +8,7 @@ const paginator = useMasto().v1.trends.listLinks()
const hideNewsTips = useLocalStorage(STORAGE_KEY_HIDE_EXPLORE_NEWS_TIPS, false)
useHeadFixed({
- title: () => `${t('tab.news')} | ${t('nav.explore')}`,
+ title: () => isHydrated.value ? `${t('tab.news')} | ${t('nav.explore')}` : '',
})
diff --git a/pages/[[server]]/explore/tags.vue b/pages/[[server]]/explore/tags.vue
index f69447f5..6edbb0aa 100644
--- a/pages/[[server]]/explore/tags.vue
+++ b/pages/[[server]]/explore/tags.vue
@@ -11,7 +11,7 @@ const paginator = masto.v1.trends.listTags({
const hideTagsTips = useLocalStorage(STORAGE_KEY_HIDE_EXPLORE_TAGS_TIPS, false)
useHeadFixed({
- title: () => `${t('tab.hashtags')} | ${t('nav.explore')}`,
+ title: () => isHydrated.value ? `${t('tab.hashtags')} | ${t('nav.explore')}` : '',
})
diff --git a/pages/[[server]]/explore/users.vue b/pages/[[server]]/explore/users.vue
index 218d5964..7fec975d 100644
--- a/pages/[[server]]/explore/users.vue
+++ b/pages/[[server]]/explore/users.vue
@@ -5,7 +5,7 @@ const { t } = useI18n()
const paginator = useMasto().v2.suggestions.list({ limit: 20 })
useHeadFixed({
- title: () => `${t('tab.for_you')} | ${t('nav.explore')}`,
+ title: () => isHydrated.value ? `${t('tab.for_you')} | ${t('nav.explore')}` : '',
})
diff --git a/pages/notifications.vue b/pages/notifications.vue
index 4f581165..96983161 100644
--- a/pages/notifications.vue
+++ b/pages/notifications.vue
@@ -10,12 +10,12 @@ const tabs = $computed(() => [
{
name: 'all',
to: '/notifications',
- display: t('tab.notifications_all'),
+ display: isHydrated.value ? t('tab.notifications_all') : '',
},
{
name: 'mention',
to: '/notifications/mention',
- display: t('tab.notifications_mention'),
+ display: isHydrated.value ? t('tab.notifications_mention') : '',
},
] as const)
diff --git a/pages/notifications/index.vue b/pages/notifications/index.vue
index 392f9bad..6baa336c 100644
--- a/pages/notifications/index.vue
+++ b/pages/notifications/index.vue
@@ -1,7 +1,7 @@
diff --git a/pages/notifications/mention.vue b/pages/notifications/mention.vue
index 110af1b7..3c3ea858 100644
--- a/pages/notifications/mention.vue
+++ b/pages/notifications/mention.vue
@@ -1,7 +1,7 @@
diff --git a/public/_redirects b/public/_redirects
index 10f66489..799fd9b2 100644
--- a/public/_redirects
+++ b/public/_redirects
@@ -1 +1,2 @@
/docs/* https://docs.elk.zone/:splat 200
+/settings/* /index.html 200
From 24d43699bb8b28ff4e20a4fc06dd1910ca65bca9 Mon Sep 17 00:00:00 2001
From: Michel EDIGHOFFER
Date: Wed, 11 Jan 2023 16:14:49 +0100
Subject: [PATCH 019/257] fix(i18n): fr - use `apprecier` instead of `aimer` +
add misisng trads (#956)
---
locales/en-US.json | 3 ++-
locales/fr-FR.json | 34 ++++++++++++++++++++++------------
pages/settings/about/index.vue | 4 ++--
3 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/locales/en-US.json b/locales/en-US.json
index 39f614bc..a4b372ff 100644
--- a/locales/en-US.json
+++ b/locales/en-US.json
@@ -235,7 +235,8 @@
},
"settings": {
"about": {
- "label": "About"
+ "label": "About",
+ "meet_the_team": "Meet the team"
},
"account_settings": {
"description": "Edit your account settings in Mastodon UI",
diff --git a/locales/fr-FR.json b/locales/fr-FR.json
index 12daef94..5ac592bc 100644
--- a/locales/fr-FR.json
+++ b/locales/fr-FR.json
@@ -10,10 +10,10 @@
"avatar_description": "Avatar de {0}",
"blocked_by": "Vous êtes bloqué·e par cet·te utilisateur·ice.",
"blocked_domains": "Domaines bloqués",
- "blocked_users": "utilisateur·ice·s bloqué·e·s",
+ "blocked_users": "Utilisateur·ice·s bloqué·e·s",
"blocking": "Blocked",
"bot": "Automatisé",
- "favourites": "Favoris",
+ "favourites": "Appréciés",
"follow": "Suivre",
"follow_back": "Suivre en retour",
"follow_requested": "Abonnement demandé",
@@ -49,8 +49,8 @@
"confirm": "Confirmer",
"edit": "Editer",
"enter_app": "Entrer dans l'application",
- "favourite": "Ajouter aux favoris",
- "favourited": "Ajouté aux favoris",
+ "favourite": "Ajouter aux messages appréciés",
+ "favourited": "Ajouté aux messages appréciés",
"more": "Plus",
"next": "Suivant",
"prev": "Précédent",
@@ -117,7 +117,7 @@
"desc_para4": "Avant cela, si vous voulez aider à tester, donner des retours ou contribuer",
"desc_para5": "contactez nous sur Mastodon",
"desc_para6": "et rejoingez l'aventure.",
- "title": "Elk est mode Preview !"
+ "title": "Elk est mode Aperçu !"
},
"language": {
"search": "Recherche"
@@ -142,7 +142,7 @@
"open_in_original_site": "Ouvrir sur le site d'origine",
"pin_on_profile": "Épingler sur le profil",
"share_post": "Partager ce message",
- "show_favourited_and_boosted_by": "Montrer qui a aimé et partagé",
+ "show_favourited_and_boosted_by": "Montrer qui a apprécié et partagé",
"show_reblogs": "Voir les partages de {0}",
"show_untranslated": "Montrer le message non-traduit",
"toggle_theme": {
@@ -164,7 +164,7 @@
"built_at": "Dernier build {0}",
"conversations": "Conversations",
"explore": "Explorer",
- "favourites": "Favoris",
+ "favourites": "Appréciés",
"federated": "Fédérés",
"home": "Accueil",
"local": "Local",
@@ -181,7 +181,7 @@
"zen_mode": "Mode Zen"
},
"notification": {
- "favourited_post": "aime votre message",
+ "favourited_post": "aprécie votre message",
"followed_you": "vous suit",
"followed_you_count": "{0} personnes vous suivent|{0} personne vous suit|{0} personnes vous suivent",
"missing_type": "MISSING notification.type:",
@@ -231,7 +231,8 @@
},
"settings": {
"about": {
- "label": "À propos"
+ "label": "À propos",
+ "meet_the_team": "Rencontrez l'équipe"
},
"account_settings": {
"description": "Modifiez les paramètres de votre compte dans l'interface de Mastodon",
@@ -272,7 +273,7 @@
},
"push_notifications": {
"alerts": {
- "favourite": "Aimer",
+ "favourite": "Apprécier",
"follow": "Nouveaux abonné·e·s",
"mention": "Mentions",
"poll": "Sondages",
@@ -338,6 +339,14 @@
"export": "Exporter les tokens d'utilisateur·ice",
"import": "Importer des tokens d'utilisateur·ice",
"label": "Utilisateur·ice·s connecté·e·s"
+ },
+ "wellness": {
+ "feature": {
+ "hide_boost_count": "Cacher les compteurs de partages",
+ "hide_favorite_count": "Cacher les compteurs d'appréciations",
+ "hide_follower_count": "Cacher les compteurs d'abonné·e·s"
+ },
+ "label": "Bien-être"
}
},
"state": {
@@ -346,13 +355,14 @@
"edited": "(Édité)",
"editing": "Édition",
"loading": "Chargement...",
+ "publishing": "Envoi",
"upload_failed": "Le téléversement a échoué",
"uploading": "Téléversement en cours..."
},
"status": {
"boosted_by": "Partagé par",
"edited": "Edité {0}",
- "favourited_by": "Aimé par",
+ "favourited_by": "Apprécié par",
"filter_hidden_phrase": "Filtré par",
"filter_removed_phrase": "Caché par le filtre",
"filter_show_anyway": "Montrer coûte que coûte",
@@ -448,7 +458,7 @@
"user": {
"add_existing": "Ajouter un compte existant",
"server_address_label": "Adresse du serveur mastodon",
- "sign_in_desc": "Connectez-vous pour suivre des profils ou des hashtags, mettre en favoris, partager et répondre à des messages, ou interagir à partir de votre compte sur un autre serveur...",
+ "sign_in_desc": "Connectez-vous pour suivre des profils ou des hashtags, dire que vous appréciez, partager et répondre à des messages, ou interagir à partir de votre compte sur un autre serveur...",
"sign_in_notice_title": "Affichage de {0} données publiques",
"sign_out_account": "Se déconnecter de {0}",
"tip_no_account": "Si vous n'avez pas encore de compte Mastodon, {0}.",
diff --git a/pages/settings/about/index.vue b/pages/settings/about/index.vue
index fc276d74..5651dee5 100644
--- a/pages/settings/about/index.vue
+++ b/pages/settings/about/index.vue
@@ -46,7 +46,7 @@ const handleShowCommit = () => {
-
+
@@ -81,7 +81,7 @@ const handleShowCommit = () => {
- Meet the team
+ {{ $t('settings.about.meet_the_team') }}
Date: Wed, 11 Jan 2023 16:24:13 +0000
Subject: [PATCH 020/257] fix: escape/textify the contents of inline and block
code (#954)
---
composables/content-parse.ts | 5 ++++-
tests/__snapshots__/content-rich.test.ts.snap | 21 +++++++++++++++++++
tests/content-rich.test.ts | 10 +++++++++
3 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/composables/content-parse.ts b/composables/content-parse.ts
index 6b00f3db..683e93d1 100644
--- a/composables/content-parse.ts
+++ b/composables/content-parse.ts
@@ -53,10 +53,13 @@ export function parseMastodonHTML(
// Handle code blocks
html = html
.replace(/>(```|~~~)(\w*)([\s\S]+?)\1/g, (_1, _2, lang: string, raw: string) => {
- const code = htmlToText(raw)
+ const code = htmlToText(raw).replace(//g, '>')
const classes = lang ? ` class="language-${lang}"` : ''
return `>${code}
`
})
+ .replace(/`([^`\n]*)`/g, (_1, raw) => {
+ return raw ? `${htmlToText(raw).replace(//g, '>')}
` : ''
+ })
}
// Always sanitize the raw HTML data *after* it has been modified
diff --git a/tests/__snapshots__/content-rich.test.ts.snap b/tests/__snapshots__/content-rich.test.ts.snap
index 176f7587..1dde47cf 100644
--- a/tests/__snapshots__/content-rich.test.ts.snap
+++ b/tests/__snapshots__/content-rich.test.ts.snap
@@ -40,6 +40,27 @@ exports[`content-rich > custom emoji 1`] = `
exports[`content-rich > empty 1`] = `""`;
+exports[`content-rich > handles html within code blocks 1`] = `
+"
+ HTML block code:
+
+<span class="icon--noto icon--noto--1st-place-medal"></span>
+<span class="icon--noto icon--noto--2nd-place-medal-medal"></span>
+
+"
+`;
+
+exports[`content-rich > inline code with link 1`] = `
+"
+ Inline code with link:
+ https://api.iconify.design/noto.css?icons=1st-place-medal,2nd-place-medal
+
+"
+`;
+
exports[`content-rich > link + mention 1`] = `
"
Happy
diff --git a/tests/content-rich.test.ts b/tests/content-rich.test.ts
index 1f7b17f1..700fe4ff 100644
--- a/tests/content-rich.test.ts
+++ b/tests/content-rich.test.ts
@@ -20,6 +20,16 @@ describe('content-rich', () => {
expect(formatted).toMatchSnapshot()
})
+ it('inline code with link', async () => {
+ const { formatted } = await render('
Inline code with link: `https:// api.iconify.design/noto.css?ic ons=1st-place-medal,2nd-place-medal `
')
+ expect(formatted).toMatchSnapshot()
+ })
+
+ it('handles html within code blocks', async () => {
+ const { formatted } = await render('HTML block code: ```html <span class="icon--noto icon--noto--1st-place-medal"></span> <span class="icon--noto icon--noto--2nd-place-medal-medal"></span> ```
')
+ expect(formatted).toMatchSnapshot()
+ })
+
it('custom emoji', async () => {
const { formatted } = await render('Daniel Roe :nuxt:', {
nuxt: {
From c2850a34ae38bea15c05ca1f7c453ef90cd14e08 Mon Sep 17 00:00:00 2001
From: Daniel Roe
Date: Wed, 11 Jan 2023 17:18:06 +0000
Subject: [PATCH 021/257] fix: use mention accts within a status to render
links (#955)
---
components/status/StatusBody.vue | 1 +
composables/content-parse.ts | 20 +++++++++++++++++++
tests/__snapshots__/content-rich.test.ts.snap | 13 ++++++++++++
tests/content-rich.test.ts | 9 +++++++--
4 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/components/status/StatusBody.vue b/components/status/StatusBody.vue
index d91b5ad9..eab2637f 100644
--- a/components/status/StatusBody.vue
+++ b/components/status/StatusBody.vue
@@ -17,6 +17,7 @@ const vnode = $computed(() => {
return null
const vnode = contentToVNode(status.content, {
emojis: emojisObject.value,
+ mentions: 'mentions' in status ? status.mentions : undefined,
markdown: true,
})
return vnode
diff --git a/composables/content-parse.ts b/composables/content-parse.ts
index 683e93d1..dea3d5b2 100644
--- a/composables/content-parse.ts
+++ b/composables/content-parse.ts
@@ -8,6 +8,7 @@ import { emojiRegEx, getEmojiAttributes } from '../config/emojis'
export interface ContentParseOptions {
emojis?: Record
+ mentions?: mastodon.v1.StatusMention[]
markdown?: boolean
replaceUnicodeEmoji?: boolean
astTransforms?: Transform[]
@@ -47,6 +48,7 @@ export function parseMastodonHTML(
markdown = true,
replaceUnicodeEmoji = true,
convertMentionLink = false,
+ mentions,
} = options
if (markdown) {
@@ -74,6 +76,9 @@ export function parseMastodonHTML(
if (markdown)
transforms.push(transformMarkdown)
+ if (mentions?.length)
+ transforms.push(createTransformNamedMentions(mentions))
+
if (convertMentionLink)
transforms.push(transformMentionLink)
@@ -377,3 +382,18 @@ function transformMentionLink(node: Node): string | Node | (string | Node)[] | n
}
return node
}
+
+function createTransformNamedMentions(mentions: mastodon.v1.StatusMention[]) {
+ return (node: Node): string | Node | (string | Node)[] | null => {
+ if (node.name === 'a' && node.attributes.class?.includes('mention')) {
+ const href = node.attributes.href
+ const mention = href && mentions.find(m => m.url === href)
+ if (mention) {
+ node.attributes.href = `/${currentServer.value}/@${mention.acct}`
+ node.children = [h('span', { 'data-type': 'mention', 'data-id': mention.acct }, `@${mention.username}`)]
+ return node
+ }
+ }
+ return node
+ }
+}
diff --git a/tests/__snapshots__/content-rich.test.ts.snap b/tests/__snapshots__/content-rich.test.ts.snap
index 1dde47cf..c7202ea1 100644
--- a/tests/__snapshots__/content-rich.test.ts.snap
+++ b/tests/__snapshots__/content-rich.test.ts.snap
@@ -40,6 +40,19 @@ exports[`content-rich > custom emoji 1`] = `
exports[`content-rich > empty 1`] = `""`;
+exports[`content-rich > group mention > html 1`] = `
+"
+
+
+"
+`;
+
exports[`content-rich > handles html within code blocks 1`] = `
"
HTML block code:
diff --git a/tests/content-rich.test.ts b/tests/content-rich.test.ts
index 700fe4ff..c3df5b0c 100644
--- a/tests/content-rich.test.ts
+++ b/tests/content-rich.test.ts
@@ -20,6 +20,11 @@ describe('content-rich', () => {
expect(formatted).toMatchSnapshot()
})
+ it('group mention', async () => {
+ const { formatted } = await render('
@pilipinas
', undefined, [{ id: '', username: 'pilipinas', url: 'https://lemmy.ml/c/pilipinas', acct: 'pilipinas@lemmy.ml' }])
+ expect(formatted).toMatchSnapshot('html')
+ })
+
it('inline code with link', async () => {
const { formatted } = await render('Inline code with link: `https:// api.iconify.design/noto.css?ic ons=1st-place-medal,2nd-place-medal `
')
expect(formatted).toMatchSnapshot()
@@ -64,8 +69,8 @@ describe('content-rich', () => {
})
})
-async function render(content: string, emojis?: Record) {
- const vnode = contentToVNode(content, { emojis })
+async function render(content: string, emojis?: Record, mentions?: mastodon.v1.StatusMention[]) {
+ const vnode = contentToVNode(content, { emojis, mentions })
const html = (await renderToString(vnode))
.replace(//g, '')
let formatted = ''
From c1e89582f8379dc9167617cfaa7219c997917e18 Mon Sep 17 00:00:00 2001
From: Shinigami
Date: Wed, 11 Jan 2023 18:47:36 +0100
Subject: [PATCH 022/257] fix: remove emoji in status title (#932)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: 三咲智子 Kevin Deng
---
components/status/StatusDetails.vue | 2 +-
composables/masto/account.ts | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/components/status/StatusDetails.vue b/components/status/StatusDetails.vue
index dd53bcda..1d927e60 100644
--- a/components/status/StatusDetails.vue
+++ b/components/status/StatusDetails.vue
@@ -20,7 +20,7 @@ const createdAt = useFormattedDateTime(status.createdAt)
const { t } = useI18n()
useHeadFixed({
- title: () => `${status.account.displayName || status.account.acct} ${t('common.in')} ${t('app_name')}: "${removeHTMLTags(status.content) || ''}"`,
+ title: () => `${getDisplayName(status.account)} ${t('common.in')} ${t('app_name')}: "${removeHTMLTags(status.content) || ''}"`,
})
const isDM = $computed(() => status.visibility === 'direct')
diff --git a/composables/masto/account.ts b/composables/masto/account.ts
index 8b47ac69..a5736a08 100644
--- a/composables/masto/account.ts
+++ b/composables/masto/account.ts
@@ -1,7 +1,7 @@
import type { mastodon } from 'masto'
-export function getDisplayName(account?: mastodon.v1.Account, options?: { rich?: boolean }) {
- const displayName = account?.displayName || account?.username || ''
+export function getDisplayName(account: mastodon.v1.Account, options?: { rich?: boolean }) {
+ const displayName = account.displayName || account.username || account.acct || ''
if (options?.rich)
return displayName
return displayName.replace(/:([\w-]+?):/g, '')
From 689ae0c701c052abe11c586ce2035d3a25afe04f Mon Sep 17 00:00:00 2001
From: Ayo Ayco
Date: Wed, 11 Jan 2023 20:08:15 +0100
Subject: [PATCH 023/257] fix: top and bottom padding of small preview card on
mobile (#974)
---
components/status/StatusPreviewCard.vue | 6 +++---
components/status/StatusPreviewCardInfo.vue | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/components/status/StatusPreviewCard.vue b/components/status/StatusPreviewCard.vue
index ba32154d..94192428 100644
--- a/components/status/StatusPreviewCard.vue
+++ b/components/status/StatusPreviewCard.vue
@@ -54,7 +54,7 @@ const cardTypeIconMap: Record = {
flex flex-col
display-block of-hidden
:class="{
- 'sm:(min-w-32 w-32 h-32) min-w-22 w-22 h-22': isSquare,
+ 'sm:(min-w-32 w-32 h-32) min-w-24 w-24 h-24': isSquare,
'w-full aspect-[1.91]': !isSquare,
'rounded-lg': root,
}"
@@ -70,13 +70,13 @@ const cardTypeIconMap: Record = {
-
+
diff --git a/components/status/StatusPreviewCardInfo.vue b/components/status/StatusPreviewCardInfo.vue
index 0da9a402..1ebf6973 100644
--- a/components/status/StatusPreviewCardInfo.vue
+++ b/components/status/StatusPreviewCardInfo.vue
@@ -12,12 +12,12 @@ defineProps<{
{{ provider }}
From 67f58a33352f05a15c2107834d6cf69dec8d89ee Mon Sep 17 00:00:00 2001
From: Kerunix
Date: Wed, 11 Jan 2023 21:55:47 +0100
Subject: [PATCH 024/257] fix: empty code blocks (#978)
---
composables/masto/statusDrafts.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/composables/masto/statusDrafts.ts b/composables/masto/statusDrafts.ts
index e9fac86d..2ac23d0d 100644
--- a/composables/masto/statusDrafts.ts
+++ b/composables/masto/statusDrafts.ts
@@ -83,7 +83,7 @@ export const isEmptyDraft = (draft: Draft | null | undefined) => {
return true
const { params, attachments } = draft
const status = params.status || ''
- const text = htmlToText(status).trim().replace(/^(@\S+\s?)+/, '').trim()
+ const text = htmlToText(status).trim().replace(/^(@\S+\s?)+/, '').replaceAll(/```/g, '').trim()
return (text.length === 0)
&& attachments.length === 0
From bf60ca05fa2e3a8a4a8893e8a817f78e0bef41f4 Mon Sep 17 00:00:00 2001
From: Anthony Fu
Date: Wed, 11 Jan 2023 22:58:03 +0100
Subject: [PATCH 025/257] docs: update sponsorship
---
.github/FUNDING.yml | 3 ++-
README.md | 28 ++++++++++++++++++----------
2 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 8abe4458..4ef6738c 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1 +1,2 @@
-github: [antfu, patak-dev, sxzz, danielroe]
+github: [elk-zone]
+open_collective: elk
diff --git a/README.md b/README.md
index 013c1665..eb74dfb2 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,15 @@
-# Elk
-*A nimble Mastodon web client*
-
-
+
+
+ Elk alpha
+
+
+A nimble Mastodon web client
+
+
@@ -13,7 +17,7 @@
-# Elk is in early alpha ⚠️
+## ⚗️ Elk is in Early Alpha ⚠️
It is already quite usable, but it isn't ready for wide adoption yet. We recommend you to use it if you would like to help us build it. We appreciate your feedback and contributions. Check out the [Open Issues](https://github.com/elk-zone/elk/issues) and jump in the action. Join the [Elk discord server](https://chat.elk.zone) to chat with us and learn more about the project.
@@ -24,7 +28,7 @@ The client is deployed on:
You can share screenshots on social media but we prefer you avoid sharing this URL directly until the app is more polished. Feel free to share the URL with your friends and invite others you think could be interested in helping to improve Elk.
-## Sponsors
+## 💖 Sponsors
We want to thanks the generous sponsoring and help of:
@@ -39,6 +43,10 @@ We want to thanks the generous sponsoring and help of:
And all the companies and individuals sponsoring Elk Team members. If you're enjoying the app, consider sponsoring our team:
+- [Elk Team's GitHub Sponsors](https://github.com/sponsors/elk-zone)
+
+Or you can sponsors 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)
@@ -46,11 +54,11 @@ And all the companies and individuals sponsoring Elk Team members. If you're enj
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
+## 📍 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.
@@ -86,7 +94,7 @@ Elk uses [Vitest](https://vitest.dev). You can run the test suite with:
nr test
```
-## Stack
+## 🦄 Stack
- [Vite](https://vitejs.dev/) - Next Generation Frontend Tooling
- [Nuxt](https://nuxt.com/) - The Intuitive Web Framework
@@ -100,6 +108,6 @@ nr test
- [shiki](https://shiki.matsu.io/) - A beautiful Syntax Highlighter
- [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa) - Prompt for update and push notifications
-## License
+## 📄 License
[MIT](./LICENSE) © 2022-PRESENT Elk contributors
From 2b3b5fe4cb02f52fc65febd4fdb214747f6df576 Mon Sep 17 00:00:00 2001
From: Daniel Roe
Date: Wed, 11 Jan 2023 22:13:46 +0000
Subject: [PATCH 026/257] chore: fix some typos
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index eb74dfb2..9debeaf7 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ A nimble Mastodon web client
## ⚗️ Elk is in Early Alpha ⚠️
-It is already quite usable, but it isn't ready for wide adoption yet. We recommend you to use it if you would like to help us build it. We appreciate your feedback and contributions. Check out the [Open Issues](https://github.com/elk-zone/elk/issues) and jump in the action. Join the [Elk discord server](https://chat.elk.zone) to chat with us and learn more about the project.
+It is already quite usable, but it isn't ready for wide adoption yet. We recommend you use it if you would like to help us build it. We appreciate your feedback and contributions. Check out the [Open Issues](https://github.com/elk-zone/elk/issues) and jump in the action. Join the [Elk discord server](https://chat.elk.zone) to chat with us and learn more about the project.
The client is deployed on:
@@ -30,7 +30,7 @@ You can share screenshots on social media but we prefer you avoid sharing this U
## 💖 Sponsors
-We want to thanks the generous sponsoring and help of:
+We are grateful for the generous sponsorship and help of:
@@ -45,7 +45,7 @@ And all the companies and individuals sponsoring Elk Team members. If you're enj
- [Elk Team's GitHub Sponsors](https://github.com/sponsors/elk-zone)
-Or you can sponsors our core team members individually:
+Or you can sponsor our core team members individually:
- [Anthony Fu](https://github.com/sponsors/antfu)
- [Daniel Roe](https://github.com/sponsors/danielroe)
From e34bfee4a57f7e609714a36afd2e658f90d4187c Mon Sep 17 00:00:00 2001
From: Anthony Fu
Date: Wed, 11 Jan 2023 23:24:00 +0100
Subject: [PATCH 027/257] feat: sponsors in about page and nav footer
---
README.md | 2 +-
components/nav/NavFooter.vue | 10 +++++
components/settings/SettingsItem.vue | 2 +-
components/settings/SettingsSponsorsList.vue | 31 ++++++++++++++++
locales/en-US.json | 8 +++-
pages/settings/about/index.vue | 39 ++++++++++++++++++--
pages/settings/users/index.vue | 1 +
7 files changed, 86 insertions(+), 7 deletions(-)
create mode 100644 components/settings/SettingsSponsorsList.vue
diff --git a/README.md b/README.md
index 9debeaf7..4da950ff 100644
--- a/README.md
+++ b/README.md
@@ -41,7 +41,7 @@ We are grateful for the generous sponsorship and help of:
-And all the companies and individuals sponsoring Elk Team members. If you're enjoying the app, consider sponsoring our team:
+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)
diff --git a/components/nav/NavFooter.vue b/components/nav/NavFooter.vue
index a14a72f6..4da9a96c 100644
--- a/components/nav/NavFooter.vue
+++ b/components/nav/NavFooter.vue
@@ -26,6 +26,16 @@ function toggleDark() {
@click="userSettings.zenMode = !userSettings.zenMode"
/>
+
+
+
diff --git a/components/settings/SettingsItem.vue b/components/settings/SettingsItem.vue
index cda8029b..59b62882 100644
--- a/components/settings/SettingsItem.vue
+++ b/components/settings/SettingsItem.vue
@@ -62,7 +62,7 @@ useCommand({
/>
-