aboutsummaryrefslogtreecommitdiffstats
path: root/assets/index.js
diff options
context:
space:
mode:
authorNikhil M Warrier <nikhilmwarrier@disroot.org>2026-09-05 21:50:53 +0530
committerNikhil M Warrier <nikhilmwarrier@disroot.org>2026-09-05 21:50:53 +0530
commit1e12432ba12b5056904a39115cc461c0de51f51d (patch)
tree497e1e64dc3cbc72c2dbb0b19ccb239b93a1c178 /assets/index.js
parent767745412010ec2758714c04e80f77f68b12df15 (diff)
Display README.md of current folder via Marked + DOMPurify
- Vendor marked v15.0.12 and DOMPurify 3.4.14 into assets/vendor/ - Fetch README.md from the current directory when listed, render markdown, sanitize with DOMPurify, and show in a themed panel - Style the rendered markdown with existing design tokens
Diffstat (limited to 'assets/index.js')
-rw-r--r--assets/index.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/assets/index.js b/assets/index.js
index f15ce9c..41df7b3 100644
--- a/assets/index.js
+++ b/assets/index.js
@@ -135,6 +135,7 @@ async function ready() {
$pathsTableBody = document.querySelector(".paths-body");
$uploadersTable = document.querySelector(".uploaders-table");
$emptyFolder = document.querySelector(".empty-folder");
+ $readme = document.querySelector(".readme");
$editor = document.querySelector(".editor");
$loginBtn = document.querySelector(".login-btn");
$logoutBtn = document.querySelector(".logout-btn");
@@ -399,6 +400,22 @@ async function setupIndexPage() {
if (DATA.user) {
setupDownloadWithToken();
}
+
+ await setupReadme();
+}
+
+async function setupReadme() {
+ if (typeof marked === "undefined" || typeof DOMPurify === "undefined") return;
+ if (!DATA.paths.some(p => p.name === "README.md")) return;
+ try {
+ const res = await fetch(newUrl("README.md"));
+ if (!res.ok) return;
+ const text = await res.text();
+ $readme.innerHTML = DOMPurify.sanitize(marked.parse(text));
+ $readme.classList.remove("hidden");
+ } catch (e) {
+ // readme is best-effort; hide silently on any failure
+ }
}
/**