summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/example.yml8
-rw-r--r--locales/index.d.ts4
-rw-r--r--packages/backend/src/config.ts12
-rw-r--r--packages/backend/src/server/web/ClientServerService.ts1
-rw-r--r--packages/backend/src/server/web/views/base.pug2
-rw-r--r--packages/frontend/src/components/SkApprovalUser.vue2
-rw-r--r--packages/frontend/src/components/SkModPlayer.vue2
-rw-r--r--packages/frontend/src/pages/admin-user.vue2
-rw-r--r--packages/frontend/src/pages/announcement.vue2
-rw-r--r--packages/frontend/src/utility/chiptune2.ts4
-rw-r--r--sharkey-locales/en-US.yml1
11 files changed, 34 insertions, 6 deletions
diff --git a/.config/example.yml b/.config/example.yml
index a4c5165428..d52d145d1e 100644
--- a/.config/example.yml
+++ b/.config/example.yml
@@ -435,3 +435,11 @@ attachLdSignatureForRelays: true
# If you're not using jemalloc, this may cause memory fragmentation and performance issues! (https://www.npmjs.com/package/ws#websocket-compression)
# jemalloc is used by default in the Sharkey Docker image and may be set up manually otherwise: https://github.com/jemalloc/jemalloc/wiki/getting-started
websocketCompression: false
+
+# Inject arbitrary HTML tags to customize Sharkey without having to fork it
+#customHtml:
+# head: |
+# <!-- The possibilities are limitless! -->
+# <script>console.log("Hello, world!")</script>
+# <style>.whatever { color: red; }</style>
+# <link rel="stylesheet" href="https://example.com/styles.css">
diff --git a/locales/index.d.ts b/locales/index.d.ts
index 166c44f3b4..21de920e89 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -12203,6 +12203,10 @@ export interface Locale extends ILocale {
*/
"oneko": string;
/**
+ * This will irreversibly delete this account. Proceed?
+ */
+ "deleteThisAccountConfirm": string;
+ /**
* Enable Achievements
*/
"enableAchievements": string;
diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts
index e2c4a75f80..3b57d748f8 100644
--- a/packages/backend/src/config.ts
+++ b/packages/backend/src/config.ts
@@ -145,6 +145,10 @@ type Source = {
};
websocketCompression?: boolean;
+
+ customHtml?: {
+ head?: string;
+ }
};
export type Config = {
@@ -270,6 +274,10 @@ export type Config = {
};
websocketCompression?: boolean;
+
+ customHtml: {
+ head: string;
+ }
};
export type FulltextSearchProvider = 'sqlLike' | 'sqlPgroonga' | 'meilisearch' | 'sqlTsvector';
@@ -420,6 +428,9 @@ export function loadConfig(): Config {
maxAge: config.activityLogging?.maxAge ?? (1000 * 60 * 60 * 24 * 30),
},
websocketCompression: config.websocketCompression ?? false,
+ customHtml: {
+ head: config.customHtml?.head ?? '',
+ },
};
}
@@ -572,4 +583,5 @@ function applyEnvOverrides(config: Source) {
_apply_top([['signToActivityPubGet', 'checkActivityPubGetSignature', 'setupPassword']]);
_apply_top(['logging', 'sql', ['disableQueryTruncation', 'enableQueryParamLogging']]);
_apply_top(['activityLogging', ['enabled', 'preSave', 'maxAge']]);
+ _apply_top(['customHtml', ['head']]);
}
diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts
index 99cc922281..34b69fd7b2 100644
--- a/packages/backend/src/server/web/ClientServerService.ts
+++ b/packages/backend/src/server/web/ClientServerService.ts
@@ -458,6 +458,7 @@ export class ClientServerService {
url: this.config.url,
title: this.meta.name ?? 'Sharkey',
desc: this.meta.description,
+ customHead: this.config.customHtml.head,
...await this.generateCommonPugData(this.meta),
...data,
});
diff --git a/packages/backend/src/server/web/views/base.pug b/packages/backend/src/server/web/views/base.pug
index f57dbbbf4e..f7b0377b22 100644
--- a/packages/backend/src/server/web/views/base.pug
+++ b/packages/backend/src/server/web/views/base.pug
@@ -45,6 +45,8 @@ html
link(rel='stylesheet' href=`/static-assets/fonts/sharkey-icons/style.css?version=${version}`)
link(rel='modulepreload' href=`/vite/${entry.file}`)
+ | !{customHead}
+
if !config.frontendManifestExists
script(type="module" src="/vite/@vite/client")
diff --git a/packages/frontend/src/components/SkApprovalUser.vue b/packages/frontend/src/components/SkApprovalUser.vue
index 7029ce43a3..310d044387 100644
--- a/packages/frontend/src/components/SkApprovalUser.vue
+++ b/packages/frontend/src/components/SkApprovalUser.vue
@@ -65,7 +65,7 @@ const emits = defineEmits<{
async function deleteAccount() {
const confirm = await os.confirm({
type: 'warning',
- text: i18n.ts.deleteAccountConfirm,
+ text: i18n.ts.deleteThisAccountConfirm,
});
if (confirm.canceled) return;
diff --git a/packages/frontend/src/components/SkModPlayer.vue b/packages/frontend/src/components/SkModPlayer.vue
index 572e01c748..0570273c83 100644
--- a/packages/frontend/src/components/SkModPlayer.vue
+++ b/packages/frontend/src/components/SkModPlayer.vue
@@ -1,5 +1,5 @@
<!--
-SPDX-FileCopyrightText: marie and other Sharkey contributors
+SPDX-FileCopyrightText: puniko and other Sharkey contributors
SPDX-License-Identifier: AGPL-3.0-only
-->
diff --git a/packages/frontend/src/pages/admin-user.vue b/packages/frontend/src/pages/admin-user.vue
index 5dfed9b569..06d557f045 100644
--- a/packages/frontend/src/pages/admin-user.vue
+++ b/packages/frontend/src/pages/admin-user.vue
@@ -449,7 +449,7 @@ async function deleteAllFiles() {
async function deleteAccount() {
const confirm = await os.confirm({
type: 'warning',
- text: i18n.ts.deleteAccountConfirm,
+ text: i18n.ts.deleteThisAccountConfirm,
});
if (confirm.canceled) return;
diff --git a/packages/frontend/src/pages/announcement.vue b/packages/frontend/src/pages/announcement.vue
index 2e0c7d2f42..b9c903e9bf 100644
--- a/packages/frontend/src/pages/announcement.vue
+++ b/packages/frontend/src/pages/announcement.vue
@@ -26,7 +26,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<Mfm :text="announcement.title"/>
</div>
<div :class="$style.content">
- <Mfm :text="announcement.text"/>
+ <Mfm :text="announcement.text" :isBlock="true"/>
<img v-if="announcement.imageUrl" :src="announcement.imageUrl"/>
<div style="margin-top: 8px; opacity: 0.7; font-size: 85%;">
{{ i18n.ts.createdAt }}: <MkTime :time="announcement.createdAt" mode="detail"/>
diff --git a/packages/frontend/src/utility/chiptune2.ts b/packages/frontend/src/utility/chiptune2.ts
index 220002ff1e..07822502eb 100644
--- a/packages/frontend/src/utility/chiptune2.ts
+++ b/packages/frontend/src/utility/chiptune2.ts
@@ -1,6 +1,6 @@
/*
- * SPDX-FileCopyrightText: marie and other Sharkey contributors
- * SPDX-License-Identifier: AGPL-3.0-only
+ * SPDX-FileCopyrightText: Simon Gündling and other chiptune2.js contributors
+ * SPDX-License-Identifier: MIT
*/
/* eslint-disable */
diff --git a/sharkey-locales/en-US.yml b/sharkey-locales/en-US.yml
index 730e96d08b..644e904a4e 100644
--- a/sharkey-locales/en-US.yml
+++ b/sharkey-locales/en-US.yml
@@ -138,6 +138,7 @@ oneko: "Cat friend :3"
renotesList: "Boosts"
lookupConfirm: "Are you sure that you want to look this up?"
openTagPageConfirm: "Are you sure you want to open this hashtags page?"
+deleteThisAccountConfirm: "This will irreversibly delete this account. Proceed?"
specifyHost: "Specify a host"
goToMisskey: "To Sharkey"
enableAchievements: "Enable Achievements"