summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/config.ts26
-rw-r--r--src/routes/frontend.ts31
2 files changed, 34 insertions, 23 deletions
diff --git a/src/lib/config.ts b/src/lib/config.ts
index 4bc43bd..b4086d8 100644
--- a/src/lib/config.ts
+++ b/src/lib/config.ts
@@ -2,6 +2,7 @@ import fs from "fs";
import toml from "toml";
import { exitWithError } from "./process.js";
import { Response } from "express";
+import { markdownToSanitizedHTML } from "../util/markdown.js";
interface StaticPage {
title: string;
@@ -152,6 +153,31 @@ export const instanceRules = (): InstanceRule[] => {
return rules;
};
+export const instanceDescription = (): string => {
+ const config = getConfig();
+ const defaultInstanceDescription =
+ "**{{ siteName }}** is running on Gathio — a simple, federated, privacy-first event hosting platform.";
+ let instanceDescription = defaultInstanceDescription;
+ try {
+ if (fs.existsSync("./static/instance-description.md")) {
+ const fileBody = fs.readFileSync(
+ "./static/instance-description.md",
+ "utf-8",
+ );
+ instanceDescription = markdownToSanitizedHTML(fileBody);
+ }
+ // Replace {{siteName}} with the instance name
+ instanceDescription = instanceDescription.replace(
+ /\{\{ ?siteName ?\}\}/g,
+ config?.general.site_name,
+ );
+ return instanceDescription;
+ } catch (err) {
+ console.log(err);
+ return defaultInstanceDescription;
+ }
+};
+
// Attempt to load our global config. Will stop the app if the config file
// cannot be read (there's no point trying to continue!)
export const getConfig = (): GathioConfig => {
diff --git a/src/routes/frontend.ts b/src/routes/frontend.ts
index 4e6f3ed..86ad69c 100644
--- a/src/routes/frontend.ts
+++ b/src/routes/frontend.ts
@@ -3,7 +3,11 @@ import fs from "fs";
import moment from "moment-timezone";
import { marked } from "marked";
import { markdownToSanitizedHTML, renderPlain } from "../util/markdown.js";
-import { frontendConfig, instanceRules } from "../lib/config.js";
+import {
+ frontendConfig,
+ instanceDescription,
+ instanceRules,
+} from "../lib/config.js";
import { addToLog, exportICal } from "../helpers.js";
import Event from "../models/Event.js";
import EventGroup, { IEventGroup } from "../models/EventGroup.js";
@@ -27,6 +31,7 @@ router.get("/", (_: Request, res: Response) => {
return res.render("home", {
...frontendConfig(res),
instanceRules: instanceRules(),
+ instanceDescription: instanceDescription(),
});
});
@@ -34,6 +39,7 @@ router.get("/about", (_: Request, res: Response) => {
return res.render("home", {
...frontendConfig(res),
instanceRules: instanceRules(),
+ instanceDescription: instanceDescription(),
});
});
@@ -122,33 +128,12 @@ router.get("/events", async (_: Request, res: Response) => {
};
});
- // Attempt to pull the instance description from a Markdown file
- const defaultInstanceDescription =
- "**{{ siteName }}** is running on Gathio — a simple, federated, privacy-first event hosting platform.";
- let instanceDescription = defaultInstanceDescription;
- try {
- if (fs.existsSync("./static/instance-description.md")) {
- const fileBody = fs.readFileSync(
- "./static/instance-description.md",
- "utf-8",
- );
- instanceDescription = markdownToSanitizedHTML(fileBody);
- }
- // Replace {{siteName}} with the instance name
- instanceDescription = instanceDescription.replace(
- /\{\{ ?siteName ?\}\}/g,
- res.locals.config?.general.site_name,
- );
- } catch (err) {
- console.log(err);
- }
-
res.render("publicEventList", {
title: "Public events",
upcomingEvents: upcomingEvents,
pastEvents: pastEvents,
eventGroups: updatedEventGroups,
- instanceDescription,
+ instanceDescription: instanceDescription(),
instanceRules: instanceRules(),
...frontendConfig(res),
});