summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZlendy <zlendy@proton.me>2025-04-11 18:13:38 +0200
committerZlendy <zlendy@proton.me>2025-04-11 22:56:26 +0200
commitce26d8d3cba8dd7f745feebcea747edc10c68c66 (patch)
treed284157ff8decbe62cc55dcfafc3b18bd62d952e
parentmerge: Fix SPDX-Header in two files (!958) (diff)
downloadsharkey-ce26d8d3cba8dd7f745feebcea747edc10c68c66.tar.gz
sharkey-ce26d8d3cba8dd7f745feebcea747edc10c68c66.tar.bz2
sharkey-ce26d8d3cba8dd7f745feebcea747edc10c68c66.zip
feat: Allow injection of raw HTML strings inside <head>
-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
3 files changed, 15 insertions, 0 deletions
diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts
index 067672fd79..9bbd50cac5 100644
--- a/packages/backend/src/config.ts
+++ b/packages/backend/src/config.ts
@@ -138,6 +138,10 @@ type Source = {
};
websocketCompression?: boolean;
+
+ customHtml?: {
+ head?: string;
+ }
};
export type Config = {
@@ -257,6 +261,10 @@ export type Config = {
};
websocketCompression?: boolean;
+
+ customHtml: {
+ head: string;
+ }
};
export type FulltextSearchProvider = 'sqlLike' | 'sqlPgroonga' | 'meilisearch' | 'sqlTsvector';
@@ -406,6 +414,9 @@ export function loadConfig(): Config {
maxAge: config.activityLogging?.maxAge ?? (1000 * 60 * 60 * 24 * 30),
},
websocketCompression: config.websocketCompression ?? false,
+ customHtml: {
+ head: config.customHtml?.head ?? '',
+ },
};
}
@@ -558,4 +569,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 3ed811e737..437a6802b8 100644
--- a/packages/backend/src/server/web/ClientServerService.ts
+++ b/packages/backend/src/server/web/ClientServerService.ts
@@ -521,6 +521,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")