living-documentation 7.4.0 → 7.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/frontend/annotations.js +66 -27
- package/dist/src/frontend/boot.js +4 -0
- package/dist/src/frontend/documents.js +23 -1
- package/dist/src/frontend/i18n/en.json +5 -0
- package/dist/src/frontend/i18n/fr.json +5 -0
- package/dist/src/frontend/index.html +24 -3
- package/dist/src/frontend/misc.js +24 -2
- package/dist/src/frontend/new-doc-modal.js +49 -3
- package/dist/src/frontend/new-folder-modal.js +6 -0
- package/dist/src/frontend/sidebar-helpers.js +38 -0
- package/dist/src/frontend/sidebar.js +96 -1
- package/dist/src/frontend/state.js +15 -0
- package/dist/src/routes/browse.d.ts +1 -1
- package/dist/src/routes/browse.d.ts.map +1 -1
- package/dist/src/routes/browse.js +19 -3
- package/dist/src/routes/browse.js.map +1 -1
- package/dist/src/routes/documents.d.ts.map +1 -1
- package/dist/src/routes/documents.js +38 -1
- package/dist/src/routes/documents.js.map +1 -1
- package/dist/src/server.js +1 -1
- package/dist/src/server.js.map +1 -1
- package/dist/starting-doc/.annotations.json +11 -1
- package/package.json +1 -1
- package/dist/starting-doc/2026_04_21_19_47_[General]_tata.md +0 -6
- package/dist/starting-doc/2026_04_21_19_47_[General]_tutu.md +0 -11
- package/dist/starting-doc/2026_04_21_19_52_[General]_titi.md +0 -5
|
@@ -10,21 +10,25 @@ let stabiloDeleteTargetId = null;
|
|
|
10
10
|
let stabiloReadPopupAnnotationId = null;
|
|
11
11
|
let stabiloReadHideTimer = null;
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
function toggleMarker() {
|
|
13
|
+
function applyMarkerVisualState() {
|
|
15
14
|
const btn = document.getElementById("stabilo-btn");
|
|
15
|
+
if (!btn) return;
|
|
16
16
|
const fills = btn.querySelectorAll("rect, polygon");
|
|
17
17
|
const crossEl = document.getElementById("stabilo-cross");
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
btn.classList.remove(
|
|
20
|
+
"border-gray-200",
|
|
21
|
+
"dark:border-gray-700",
|
|
22
|
+
"text-gray-600",
|
|
23
|
+
"dark:text-gray-400",
|
|
24
|
+
"border-yellow-400",
|
|
25
|
+
"bg-yellow-100",
|
|
26
|
+
"dark:bg-yellow-900/40",
|
|
27
|
+
"text-yellow-700",
|
|
28
|
+
"dark:text-yellow-300",
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
if (stabiloActive) {
|
|
28
32
|
btn.classList.add(
|
|
29
33
|
"border-yellow-400",
|
|
30
34
|
"bg-yellow-100",
|
|
@@ -39,17 +43,7 @@ function toggleMarker() {
|
|
|
39
43
|
),
|
|
40
44
|
);
|
|
41
45
|
crossEl.style.display = "none";
|
|
42
|
-
} else
|
|
43
|
-
// active → hidden
|
|
44
|
-
stabiloActive = false;
|
|
45
|
-
stabiloHidden = true;
|
|
46
|
-
btn.classList.remove(
|
|
47
|
-
"border-yellow-400",
|
|
48
|
-
"bg-yellow-100",
|
|
49
|
-
"dark:bg-yellow-900/40",
|
|
50
|
-
"text-yellow-700",
|
|
51
|
-
"dark:text-yellow-300",
|
|
52
|
-
);
|
|
46
|
+
} else {
|
|
53
47
|
btn.classList.add(
|
|
54
48
|
"border-gray-200",
|
|
55
49
|
"dark:border-gray-700",
|
|
@@ -66,14 +60,55 @@ function toggleMarker() {
|
|
|
66
60
|
: "#bfdbfe",
|
|
67
61
|
),
|
|
68
62
|
);
|
|
69
|
-
crossEl.style.display = "block";
|
|
70
|
-
|
|
71
|
-
|
|
63
|
+
crossEl.style.display = stabiloHidden ? "block" : "none";
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function persistMarkerState() {
|
|
68
|
+
const state = stabiloActive ? "active" : stabiloHidden ? "hidden" : "normal";
|
|
69
|
+
try {
|
|
70
|
+
localStorage.setItem("ld-marker-state", state);
|
|
71
|
+
} catch {
|
|
72
|
+
/* ignore */
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function initMarkerState() {
|
|
77
|
+
let saved = "normal";
|
|
78
|
+
try {
|
|
79
|
+
saved = localStorage.getItem("ld-marker-state") || "normal";
|
|
80
|
+
} catch {
|
|
81
|
+
/* ignore */
|
|
82
|
+
}
|
|
83
|
+
stabiloActive = saved === "active";
|
|
84
|
+
stabiloHidden = saved === "hidden";
|
|
85
|
+
applyMarkerVisualState();
|
|
86
|
+
if (stabiloHidden) setHighlightsVisible(false);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Cycles: normal → active → hidden → normal
|
|
90
|
+
function toggleMarker() {
|
|
91
|
+
const wasHidden = stabiloHidden;
|
|
92
|
+
|
|
93
|
+
if (!stabiloActive && !stabiloHidden) {
|
|
94
|
+
stabiloActive = true;
|
|
95
|
+
} else if (stabiloActive) {
|
|
96
|
+
stabiloActive = false;
|
|
97
|
+
stabiloHidden = true;
|
|
72
98
|
} else {
|
|
73
|
-
// hidden → normal
|
|
74
99
|
stabiloHidden = false;
|
|
75
|
-
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
applyMarkerVisualState();
|
|
103
|
+
persistMarkerState();
|
|
104
|
+
|
|
105
|
+
if (!wasHidden && stabiloHidden) {
|
|
106
|
+
closeMarkerPopup();
|
|
107
|
+
setHighlightsVisible(false);
|
|
108
|
+
refreshSidebar();
|
|
109
|
+
} else if (wasHidden && !stabiloHidden) {
|
|
76
110
|
setHighlightsVisible(true);
|
|
111
|
+
refreshSidebar();
|
|
77
112
|
}
|
|
78
113
|
}
|
|
79
114
|
|
|
@@ -129,6 +164,8 @@ function applyAnnotationHighlights() {
|
|
|
129
164
|
.forEach((mark) => {
|
|
130
165
|
if (!mark.textContent.trim()) mark.remove();
|
|
131
166
|
});
|
|
167
|
+
|
|
168
|
+
if (stabiloHidden) setHighlightsVisible(false);
|
|
132
169
|
}
|
|
133
170
|
|
|
134
171
|
function highlightAnnotation(contentEl, ann) {
|
|
@@ -543,4 +580,6 @@ function renderElevator() {
|
|
|
543
580
|
|
|
544
581
|
elevator.appendChild(pill);
|
|
545
582
|
}
|
|
583
|
+
|
|
584
|
+
if (stabiloHidden) elevator.style.visibility = "hidden";
|
|
546
585
|
}
|
|
@@ -13,7 +13,11 @@ document.addEventListener("DOMContentLoaded", async () => {
|
|
|
13
13
|
wcRestorePrefs();
|
|
14
14
|
if (typeof initFileAttach === "function") initFileAttach();
|
|
15
15
|
await loadConfig();
|
|
16
|
+
if (typeof initMarkerState === "function") initMarkerState();
|
|
17
|
+
if (typeof initFullWidthState === "function") initFullWidthState();
|
|
16
18
|
await loadDocuments();
|
|
19
|
+
applyHideCategoriesButtonState();
|
|
20
|
+
applyHideAttachmentsButtonState();
|
|
17
21
|
|
|
18
22
|
// Deep-link via ?doc=id, otherwise open first General doc
|
|
19
23
|
const params = new URLSearchParams(location.search);
|
|
@@ -20,7 +20,10 @@ async function loadDocuments() {
|
|
|
20
20
|
} catch {
|
|
21
21
|
allFolderPaths = [];
|
|
22
22
|
}
|
|
23
|
-
await
|
|
23
|
+
await Promise.all([
|
|
24
|
+
refreshAnnotationCounts(),
|
|
25
|
+
refreshFileAttachmentCounts(),
|
|
26
|
+
]);
|
|
24
27
|
renderSidebar(allDocs);
|
|
25
28
|
} catch {
|
|
26
29
|
document.getElementById("category-tree").innerHTML =
|
|
@@ -43,6 +46,18 @@ async function refreshAnnotationCounts() {
|
|
|
43
46
|
}
|
|
44
47
|
}
|
|
45
48
|
|
|
49
|
+
async function refreshFileAttachmentCounts() {
|
|
50
|
+
try {
|
|
51
|
+
const raw = await fetch("/api/documents/file-counts").then((r) => r.json());
|
|
52
|
+
fileAttachmentCounts = {};
|
|
53
|
+
for (const [docId, n] of Object.entries(raw || {})) {
|
|
54
|
+
fileAttachmentCounts[docId] = n;
|
|
55
|
+
}
|
|
56
|
+
} catch {
|
|
57
|
+
fileAttachmentCounts = {};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
46
61
|
async function openDocument(id, skipHistory = false, fromLink = false, anchor = null) {
|
|
47
62
|
// Track navigation history for breadcrumb trail
|
|
48
63
|
// fromLink===true : forward navigation via in-doc link → push current to stack
|
|
@@ -289,6 +304,7 @@ async function confirmDeleteDocument() {
|
|
|
289
304
|
try {
|
|
290
305
|
delete annotationCounts[decodeURIComponent(deletedId)];
|
|
291
306
|
} catch {}
|
|
307
|
+
delete fileAttachmentCounts[deletedId];
|
|
292
308
|
currentDocId = null;
|
|
293
309
|
|
|
294
310
|
// Return to welcome screen
|
|
@@ -369,6 +385,12 @@ async function saveDocument() {
|
|
|
369
385
|
applyAnnotationHighlights();
|
|
370
386
|
renderElevator();
|
|
371
387
|
|
|
388
|
+
const fileLinkMatches = content.match(/\]\(\s*\.?\/files\/[^)\s]+/g);
|
|
389
|
+
const fileLinkCount = fileLinkMatches ? fileLinkMatches.length : 0;
|
|
390
|
+
if (fileLinkCount > 0) fileAttachmentCounts[currentDocId] = fileLinkCount;
|
|
391
|
+
else delete fileAttachmentCounts[currentDocId];
|
|
392
|
+
refreshSidebar();
|
|
393
|
+
|
|
372
394
|
exitEditMode();
|
|
373
395
|
} catch (err) {
|
|
374
396
|
msgEl.textContent = window.t('error.save') + err.message;
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
"nav.search_mobile_placeholder": "Search…",
|
|
21
21
|
"nav.toggle_dark": "Toggle dark mode",
|
|
22
22
|
"nav.export": "Export",
|
|
23
|
+
"nav.toggle_categories": "Show/hide category grouping",
|
|
24
|
+
"nav.toggle_attachments": "Show/hide attachments",
|
|
23
25
|
"nav.export_html": "Export folders as HTML ZIP",
|
|
24
26
|
"nav.export_all_pdf": "Export all documents as PDF",
|
|
25
27
|
"nav.new_folder": "New folder",
|
|
@@ -36,6 +38,8 @@
|
|
|
36
38
|
"sidebar.no_docs": "No documents found.",
|
|
37
39
|
"sidebar.annotation_badge": "annotation",
|
|
38
40
|
"sidebar.annotated_docs_badge": "document with annotations",
|
|
41
|
+
"sidebar.file_attachment_badge": "attachment",
|
|
42
|
+
"sidebar.file_attached_docs_badge": "document with attachments",
|
|
39
43
|
|
|
40
44
|
"doc.marker_mode": "Marker mode — highlight to annotate",
|
|
41
45
|
"doc.marker_btn": "Marker",
|
|
@@ -77,6 +81,7 @@
|
|
|
77
81
|
"modal.new_folder.creating_btn": "Creating…",
|
|
78
82
|
"modal.new_folder.error_empty": "Please enter a folder name.",
|
|
79
83
|
"modal.new_folder.error_invalid_chars": "Invalid characters in folder name.",
|
|
84
|
+
"modal.new_folder.error_reserved": "\"files\" and \"images\" are reserved folder names at the docs root.",
|
|
80
85
|
"modal.new_folder.no_subfolders": "No subfolders",
|
|
81
86
|
"modal.new_folder.error_loading": "Error loading",
|
|
82
87
|
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
"nav.search_mobile_placeholder": "Rechercher…",
|
|
21
21
|
"nav.toggle_dark": "Basculer le mode sombre",
|
|
22
22
|
"nav.export": "Exporter",
|
|
23
|
+
"nav.toggle_categories": "Afficher/masquer le regroupement par catégorie",
|
|
24
|
+
"nav.toggle_attachments": "Afficher/masquer les pièces jointes",
|
|
23
25
|
"nav.export_html": "Exporter les dossiers en HTML (ZIP)",
|
|
24
26
|
"nav.export_all_pdf": "Exporter tous les documents en PDF",
|
|
25
27
|
"nav.new_folder": "Nouveau dossier",
|
|
@@ -36,6 +38,8 @@
|
|
|
36
38
|
"sidebar.no_docs": "Aucun document trouvé.",
|
|
37
39
|
"sidebar.annotation_badge": "annotation",
|
|
38
40
|
"sidebar.annotated_docs_badge": "document contenant des annotations",
|
|
41
|
+
"sidebar.file_attachment_badge": "pièce jointe",
|
|
42
|
+
"sidebar.file_attached_docs_badge": "document contenant des pièces jointes",
|
|
39
43
|
|
|
40
44
|
"doc.marker_mode": "Mode Marqueur — surligner pour annoter",
|
|
41
45
|
"doc.marker_btn": "Marqueur",
|
|
@@ -77,6 +81,7 @@
|
|
|
77
81
|
"modal.new_folder.creating_btn": "Création…",
|
|
78
82
|
"modal.new_folder.error_empty": "Veuillez saisir un nom de dossier.",
|
|
79
83
|
"modal.new_folder.error_invalid_chars": "Caractères non autorisés dans le nom du dossier.",
|
|
84
|
+
"modal.new_folder.error_reserved": "\"files\" et \"images\" sont des noms de dossiers réservés à la racine des documents.",
|
|
80
85
|
"modal.new_folder.no_subfolders": "Aucun sous-dossier",
|
|
81
86
|
"modal.new_folder.error_loading": "Erreur de chargement",
|
|
82
87
|
|
|
@@ -325,7 +325,7 @@
|
|
|
325
325
|
class="no-print w-72 shrink-0 flex flex-col border-r border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 overflow-y-auto"
|
|
326
326
|
>
|
|
327
327
|
<!-- Mobile / sidebar search -->
|
|
328
|
-
<div class="p-3 border-b border-gray-100 dark:border-gray-800">
|
|
328
|
+
<div class="sticky top-0 z-10 bg-white dark:bg-gray-900 p-3 border-b border-gray-100 dark:border-gray-800">
|
|
329
329
|
<div class="relative sm:hidden">
|
|
330
330
|
<input
|
|
331
331
|
id="sidebar-search"
|
|
@@ -347,6 +347,24 @@
|
|
|
347
347
|
class="text-xs text-gray-400 dark:text-gray-500"
|
|
348
348
|
></p>
|
|
349
349
|
<div class="flex items-center gap-2">
|
|
350
|
+
<button
|
|
351
|
+
id="toggle-attachments-btn"
|
|
352
|
+
onclick="toggleHideAttachments()"
|
|
353
|
+
data-i18n-title="nav.toggle_attachments"
|
|
354
|
+
title="Toggle attachments"
|
|
355
|
+
class="text-gray-400 hover:text-blue-500 dark:text-gray-500 dark:hover:text-blue-400 transition-colors leading-none"
|
|
356
|
+
>
|
|
357
|
+
<i class="fa-solid fa-paperclip"></i>
|
|
358
|
+
</button>
|
|
359
|
+
<button
|
|
360
|
+
id="toggle-categories-btn"
|
|
361
|
+
onclick="toggleHideCategories()"
|
|
362
|
+
data-i18n-title="nav.toggle_categories"
|
|
363
|
+
title="Toggle categories"
|
|
364
|
+
class="text-gray-400 hover:text-blue-500 dark:text-gray-500 dark:hover:text-blue-400 transition-colors leading-none"
|
|
365
|
+
>
|
|
366
|
+
<i class="fa-solid fa-tags"></i>
|
|
367
|
+
</button>
|
|
350
368
|
<button
|
|
351
369
|
onclick="openExportModal()"
|
|
352
370
|
data-i18n-title="nav.export"
|
|
@@ -830,10 +848,13 @@
|
|
|
830
848
|
<input
|
|
831
849
|
id="new-doc-category"
|
|
832
850
|
type="text"
|
|
833
|
-
|
|
834
|
-
|
|
851
|
+
list="new-doc-category-options"
|
|
852
|
+
autocomplete="off"
|
|
853
|
+
placeholder="GENERAL"
|
|
854
|
+
oninput="newDocSanitizeCategoryInput()"
|
|
835
855
|
class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
836
856
|
/>
|
|
857
|
+
<datalist id="new-doc-category-options"></datalist>
|
|
837
858
|
</div>
|
|
838
859
|
|
|
839
860
|
<!-- Location -->
|
|
@@ -1,14 +1,36 @@
|
|
|
1
1
|
// ── Misc viewer helpers ─────────────────────────────────────────────────────
|
|
2
2
|
|
|
3
|
-
function
|
|
3
|
+
function applyFullWidthState(isWide) {
|
|
4
4
|
const article = document.getElementById("doc-view");
|
|
5
5
|
const btn = document.getElementById("full-width-btn");
|
|
6
|
-
|
|
6
|
+
if (!article || !btn) return;
|
|
7
|
+
article.classList.toggle("max-w-none", isWide);
|
|
7
8
|
article.classList.toggle("max-w-4xl", !isWide);
|
|
8
9
|
article.classList.toggle("mx-auto", !isWide);
|
|
9
10
|
btn.textContent = isWide ? window.t('doc.full_width_narrow_btn') : window.t('doc.full_width_btn');
|
|
10
11
|
}
|
|
11
12
|
|
|
13
|
+
function toggleFullWidth() {
|
|
14
|
+
const article = document.getElementById("doc-view");
|
|
15
|
+
const isWide = !article.classList.contains("max-w-none");
|
|
16
|
+
applyFullWidthState(isWide);
|
|
17
|
+
try {
|
|
18
|
+
localStorage.setItem("ld-full-width", isWide ? "1" : "0");
|
|
19
|
+
} catch {
|
|
20
|
+
/* ignore */
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function initFullWidthState() {
|
|
25
|
+
let isWide = false;
|
|
26
|
+
try {
|
|
27
|
+
isWide = localStorage.getItem("ld-full-width") === "1";
|
|
28
|
+
} catch {
|
|
29
|
+
/* ignore */
|
|
30
|
+
}
|
|
31
|
+
applyFullWidthState(isWide);
|
|
32
|
+
}
|
|
33
|
+
|
|
12
34
|
function copyLink() {
|
|
13
35
|
navigator.clipboard.writeText(location.href).then(() => {
|
|
14
36
|
const btn = document.getElementById("copy-link-btn");
|
|
@@ -8,6 +8,35 @@ let _newDocSelectedFolder = "";
|
|
|
8
8
|
let _newDocDocsFolder = "";
|
|
9
9
|
let _newDocPattern = "YYYY_MM_DD_HH_mm_[Category]_title";
|
|
10
10
|
|
|
11
|
+
function newDocNormalizeCategory(raw) {
|
|
12
|
+
return (raw || "")
|
|
13
|
+
.normalize("NFD")
|
|
14
|
+
.replace(/[\u0300-\u036f]/g, "")
|
|
15
|
+
.toUpperCase()
|
|
16
|
+
.replace(/[^A-Z0-9_-]/g, "");
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function newDocSanitizeCategoryInput() {
|
|
20
|
+
const input = document.getElementById("new-doc-category");
|
|
21
|
+
const normalized = newDocNormalizeCategory(input.value);
|
|
22
|
+
if (input.value !== normalized) input.value = normalized;
|
|
23
|
+
newDocUpdatePreview();
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function newDocPopulateCategoryOptions() {
|
|
27
|
+
const list = document.getElementById("new-doc-category-options");
|
|
28
|
+
if (!list) return;
|
|
29
|
+
const seen = new Set();
|
|
30
|
+
(allDocs || []).forEach((d) => {
|
|
31
|
+
const cat = newDocNormalizeCategory(d.category || "");
|
|
32
|
+
if (cat) seen.add(cat);
|
|
33
|
+
});
|
|
34
|
+
const sorted = Array.from(seen).sort((a, b) => a.localeCompare(b));
|
|
35
|
+
list.innerHTML = sorted
|
|
36
|
+
.map((cat) => `<option value="${esc(cat)}"></option>`)
|
|
37
|
+
.join("");
|
|
38
|
+
}
|
|
39
|
+
|
|
11
40
|
async function openNewDocModal() {
|
|
12
41
|
try {
|
|
13
42
|
const cfg = await fetch("/api/config").then((r) => r.json());
|
|
@@ -22,7 +51,9 @@ async function openNewDocModal() {
|
|
|
22
51
|
const currentDoc =
|
|
23
52
|
currentDocId && allDocs.find((d) => d.id === currentDocId);
|
|
24
53
|
const prefillCategory =
|
|
25
|
-
(
|
|
54
|
+
newDocNormalizeCategory(
|
|
55
|
+
(currentDoc && currentDoc.category) || "General",
|
|
56
|
+
) || "GENERAL";
|
|
26
57
|
// Derive folder from currentDocId (encoded relative path, e.g. "1_tutorial%2Fsome_file")
|
|
27
58
|
// For extra files (absolute paths), skip.
|
|
28
59
|
let prefillFolder = "";
|
|
@@ -42,6 +73,7 @@ async function openNewDocModal() {
|
|
|
42
73
|
_newDocSelectedFolder = prefillFolder;
|
|
43
74
|
_newDocBrowseCurrent = prefillFolderAbs || null;
|
|
44
75
|
_newDocBrowseParent = null;
|
|
76
|
+
newDocPopulateCategoryOptions();
|
|
45
77
|
document.getElementById("new-doc-title").value = "";
|
|
46
78
|
document.getElementById("new-doc-category").value = prefillCategory;
|
|
47
79
|
document.getElementById("new-doc-folder-display").textContent =
|
|
@@ -126,6 +158,16 @@ function newDocCreateFolder() {
|
|
|
126
158
|
.value.trim();
|
|
127
159
|
if (!name) return;
|
|
128
160
|
const parent = _newDocBrowseCurrent || _newDocDocsFolder;
|
|
161
|
+
const atDocsRoot = parent === _newDocDocsFolder;
|
|
162
|
+
const errEl = document.getElementById("new-doc-error");
|
|
163
|
+
if (atDocsRoot && (name === "files" || name === "images")) {
|
|
164
|
+
if (errEl) {
|
|
165
|
+
errEl.textContent = window.t("modal.new_folder.error_reserved");
|
|
166
|
+
errEl.classList.remove("hidden");
|
|
167
|
+
}
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (errEl) errEl.classList.add("hidden");
|
|
129
171
|
const newRelPath =
|
|
130
172
|
(_newDocAbsToRel(parent) ? _newDocAbsToRel(parent) + "/" : "") + name;
|
|
131
173
|
_newDocSelectedFolder = newRelPath;
|
|
@@ -138,7 +180,9 @@ function newDocCreateFolder() {
|
|
|
138
180
|
function newDocUpdatePreview() {
|
|
139
181
|
const title = document.getElementById("new-doc-title").value.trim();
|
|
140
182
|
const category =
|
|
141
|
-
|
|
183
|
+
newDocNormalizeCategory(
|
|
184
|
+
document.getElementById("new-doc-category").value,
|
|
185
|
+
) || "GENERAL";
|
|
142
186
|
const previewEl = document.getElementById("new-doc-filename-preview");
|
|
143
187
|
|
|
144
188
|
if (!title) {
|
|
@@ -181,7 +225,9 @@ function newDocUpdatePreview() {
|
|
|
181
225
|
async function createNewDocument() {
|
|
182
226
|
const title = document.getElementById("new-doc-title").value.trim();
|
|
183
227
|
const category =
|
|
184
|
-
|
|
228
|
+
newDocNormalizeCategory(
|
|
229
|
+
document.getElementById("new-doc-category").value,
|
|
230
|
+
) || "GENERAL";
|
|
185
231
|
const errorEl = document.getElementById("new-doc-error");
|
|
186
232
|
const btn = document.getElementById("new-doc-create-btn");
|
|
187
233
|
|
|
@@ -139,6 +139,12 @@ async function createNewFolder() {
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
const base = _newFolderSelectedPath || _newFolderDocsFolder;
|
|
142
|
+
const atDocsRoot = base === _newFolderDocsFolder;
|
|
143
|
+
if (atDocsRoot && (name === "files" || name === "images")) {
|
|
144
|
+
errEl.textContent = window.t('modal.new_folder.error_reserved');
|
|
145
|
+
errEl.classList.remove("hidden");
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
142
148
|
const fullPath = base.endsWith("/") ? base + name : base + "/" + name;
|
|
143
149
|
|
|
144
150
|
const btn = document.getElementById("new-folder-create-btn");
|
|
@@ -35,6 +35,7 @@ function countTreeAnnotatedDocs(node) {
|
|
|
35
35
|
|
|
36
36
|
function annotationBadge(count) {
|
|
37
37
|
if (!count) return "";
|
|
38
|
+
if (typeof stabiloHidden !== "undefined" && stabiloHidden) return "";
|
|
38
39
|
const label = window.t
|
|
39
40
|
? window.t("sidebar.annotation_badge")
|
|
40
41
|
: "annotation";
|
|
@@ -47,6 +48,7 @@ function annotationBadge(count) {
|
|
|
47
48
|
|
|
48
49
|
function annotatedDocsBadge(count) {
|
|
49
50
|
if (!count) return "";
|
|
51
|
+
if (typeof stabiloHidden !== "undefined" && stabiloHidden) return "";
|
|
50
52
|
const label = window.t
|
|
51
53
|
? window.t("sidebar.annotated_docs_badge")
|
|
52
54
|
: "document with annotations";
|
|
@@ -56,3 +58,39 @@ function annotatedDocsBadge(count) {
|
|
|
56
58
|
text-[10px] font-bold text-white
|
|
57
59
|
border border-orange-600 shadow-sm">${count}</span>`;
|
|
58
60
|
}
|
|
61
|
+
|
|
62
|
+
function countTreeFileAttachedDocs(node) {
|
|
63
|
+
let n = 0;
|
|
64
|
+
for (const arr of Object.values(node.categories)) {
|
|
65
|
+
for (const doc of arr) if (fileAttachmentCounts[doc.id] > 0) n += 1;
|
|
66
|
+
}
|
|
67
|
+
for (const child of Object.values(node.children))
|
|
68
|
+
n += countTreeFileAttachedDocs(child);
|
|
69
|
+
return n;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function fileAttachmentBadge(count) {
|
|
73
|
+
if (!count) return "";
|
|
74
|
+
if (typeof hideAttachments !== "undefined" && hideAttachments) return "";
|
|
75
|
+
const label = window.t
|
|
76
|
+
? window.t("sidebar.file_attachment_badge")
|
|
77
|
+
: "attachment";
|
|
78
|
+
return `<span title="${count} ${esc(label)}${count > 1 ? "s" : ""}"
|
|
79
|
+
class="inline-flex items-center justify-center min-w-[1.25rem] h-5 px-1.5
|
|
80
|
+
rounded-full bg-sky-200 dark:bg-sky-300
|
|
81
|
+
text-[10px] font-bold text-sky-900
|
|
82
|
+
border border-sky-500 shadow-sm">${count}</span>`;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function fileAttachedDocsBadge(count) {
|
|
86
|
+
if (!count) return "";
|
|
87
|
+
if (typeof hideAttachments !== "undefined" && hideAttachments) return "";
|
|
88
|
+
const label = window.t
|
|
89
|
+
? window.t("sidebar.file_attached_docs_badge")
|
|
90
|
+
: "document with attachments";
|
|
91
|
+
return `<span title="${count} ${esc(label)}${count > 1 ? "s" : ""}"
|
|
92
|
+
class="inline-flex items-center justify-center min-w-[1.25rem] h-5 px-1.5
|
|
93
|
+
rounded-full bg-slate-400 dark:bg-slate-500
|
|
94
|
+
text-[10px] font-bold text-white
|
|
95
|
+
border border-slate-600 shadow-sm">${count}</span>`;
|
|
96
|
+
}
|
|
@@ -53,6 +53,50 @@ function buildFolderTree(docs) {
|
|
|
53
53
|
function renderTreeNode(node, folderPath) {
|
|
54
54
|
let html = "";
|
|
55
55
|
|
|
56
|
+
// Flat mode: categories are hidden — merge all docs in this node and sort by filename
|
|
57
|
+
if (hideCategories) {
|
|
58
|
+
const flatDocs = Object.values(node.categories)
|
|
59
|
+
.flat()
|
|
60
|
+
.sort((a, b) => (a.filename || "").localeCompare(b.filename || ""));
|
|
61
|
+
html += flatDocs.map((doc) => renderDocItem(doc)).join("");
|
|
62
|
+
|
|
63
|
+
// Subfolders (recursive) — folders are still shown
|
|
64
|
+
const childKeys = Object.keys(node.children).sort((a, b) =>
|
|
65
|
+
a.localeCompare(b),
|
|
66
|
+
);
|
|
67
|
+
for (const key of childKeys) {
|
|
68
|
+
const childPath = [...folderPath, key];
|
|
69
|
+
const pathKey = childPath.join("|");
|
|
70
|
+
const nodeId =
|
|
71
|
+
"folder-" + childPath.map((s) => s.replace(/\W/g, "-")).join("-");
|
|
72
|
+
const isExpanded = expandedFolders.has(pathKey);
|
|
73
|
+
const docCount = countTreeDocs(node.children[key]);
|
|
74
|
+
const folderAnnotatedDocs = countTreeAnnotatedDocs(node.children[key]);
|
|
75
|
+
const folderFileDocs = countTreeFileAttachedDocs(node.children[key]);
|
|
76
|
+
html += `
|
|
77
|
+
<div class="mb-1">
|
|
78
|
+
<button onclick="toggleFolder('${esc(pathKey)}')"
|
|
79
|
+
class="w-full flex items-center justify-between px-3 py-1.5 text-xs font-semibold
|
|
80
|
+
text-violet-600 dark:text-violet-400 uppercase tracking-wider
|
|
81
|
+
hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded-md transition-colors">
|
|
82
|
+
<span class="flex items-center gap-2 min-w-0">
|
|
83
|
+
<span title="${esc(key)}" class="truncate">📁 ${esc(folderLabel(key))}</span>
|
|
84
|
+
${annotatedDocsBadge(folderAnnotatedDocs)}
|
|
85
|
+
${fileAttachedDocsBadge(folderFileDocs)}
|
|
86
|
+
</span>
|
|
87
|
+
<span class="flex items-center gap-1.5">
|
|
88
|
+
<span class="font-normal normal-case text-gray-400">${docCount}</span>
|
|
89
|
+
<span class="transition-transform duration-200 ${isExpanded ? "rotate-90" : ""}" id="arrow-${nodeId}">▸</span>
|
|
90
|
+
</span>
|
|
91
|
+
</button>
|
|
92
|
+
<div id="${nodeId}" class="category-docs pl-3 ${isExpanded ? "expanded" : "collapsed"}">
|
|
93
|
+
${renderTreeNode(node.children[key], childPath)}
|
|
94
|
+
</div>
|
|
95
|
+
</div>`;
|
|
96
|
+
}
|
|
97
|
+
return html;
|
|
98
|
+
}
|
|
99
|
+
|
|
56
100
|
// Helper to render one category group
|
|
57
101
|
const renderCat = (cat) => {
|
|
58
102
|
const catPathKey = [...folderPath, cat].join("|");
|
|
@@ -64,6 +108,10 @@ function renderTreeNode(node, folderPath) {
|
|
|
64
108
|
(s, d) => s + (annotationCounts[d.id] > 0 ? 1 : 0),
|
|
65
109
|
0,
|
|
66
110
|
);
|
|
111
|
+
const catFileDocs = node.categories[cat].reduce(
|
|
112
|
+
(s, d) => s + (fileAttachmentCounts[d.id] > 0 ? 1 : 0),
|
|
113
|
+
0,
|
|
114
|
+
);
|
|
67
115
|
return `
|
|
68
116
|
<div class="mb-0.5">
|
|
69
117
|
<button onclick="toggleCategory('${esc(catPathKey)}')"
|
|
@@ -73,6 +121,7 @@ function renderTreeNode(node, folderPath) {
|
|
|
73
121
|
<span class="flex items-center gap-2">
|
|
74
122
|
<span>${esc(cat)}</span>
|
|
75
123
|
${annotatedDocsBadge(catAnnotatedDocs)}
|
|
124
|
+
${fileAttachedDocsBadge(catFileDocs)}
|
|
76
125
|
</span>
|
|
77
126
|
<span class="flex items-center gap-1.5">
|
|
78
127
|
<span class="font-normal normal-case text-gray-400">${node.categories[cat].length}</span>
|
|
@@ -100,6 +149,7 @@ function renderTreeNode(node, folderPath) {
|
|
|
100
149
|
const isExpanded = expandedFolders.has(pathKey);
|
|
101
150
|
const docCount = countTreeDocs(node.children[key]);
|
|
102
151
|
const folderAnnotatedDocs = countTreeAnnotatedDocs(node.children[key]);
|
|
152
|
+
const folderFileDocs = countTreeFileAttachedDocs(node.children[key]);
|
|
103
153
|
html += `
|
|
104
154
|
<div class="mb-1">
|
|
105
155
|
<button onclick="toggleFolder('${esc(pathKey)}')"
|
|
@@ -109,6 +159,7 @@ function renderTreeNode(node, folderPath) {
|
|
|
109
159
|
<span class="flex items-center gap-2 min-w-0">
|
|
110
160
|
<span title="${esc(key)}" class="truncate">📁 ${esc(folderLabel(key))}</span>
|
|
111
161
|
${annotatedDocsBadge(folderAnnotatedDocs)}
|
|
162
|
+
${fileAttachedDocsBadge(folderFileDocs)}
|
|
112
163
|
</span>
|
|
113
164
|
<span class="flex items-center gap-1.5">
|
|
114
165
|
<span class="font-normal normal-case text-gray-400">${docCount}</span>
|
|
@@ -133,6 +184,7 @@ function renderTreeNode(node, folderPath) {
|
|
|
133
184
|
function renderDocItem(doc) {
|
|
134
185
|
const isActive = doc.id === currentDocId;
|
|
135
186
|
const annCount = annotationCounts[doc.id] || 0;
|
|
187
|
+
const fileCount = fileAttachmentCounts[doc.id] || 0;
|
|
136
188
|
return `
|
|
137
189
|
<button onclick="openDocument('${esc(doc.id)}')"
|
|
138
190
|
id="item-${esc(doc.id)}"
|
|
@@ -141,7 +193,10 @@ function renderDocItem(doc) {
|
|
|
141
193
|
${isActive ? "active" : ""}">
|
|
142
194
|
<div class="leading-snug flex items-center justify-between gap-2">
|
|
143
195
|
<span class="truncate">${esc(doc.title)}</span>
|
|
144
|
-
|
|
196
|
+
<span class="flex items-center gap-1 shrink-0">
|
|
197
|
+
${annotationBadge(annCount)}
|
|
198
|
+
${fileAttachmentBadge(fileCount)}
|
|
199
|
+
</span>
|
|
145
200
|
</div>
|
|
146
201
|
${doc.formattedDate ? `<div class="text-xs text-gray-400 dark:text-gray-500 mt-0.5">${esc(doc.formattedDate)}</div>` : ""}
|
|
147
202
|
</button>`;
|
|
@@ -180,3 +235,43 @@ function toggleFolder(pathKey) {
|
|
|
180
235
|
function toggleSidebar() {
|
|
181
236
|
document.getElementById("sidebar").classList.toggle("hidden");
|
|
182
237
|
}
|
|
238
|
+
|
|
239
|
+
function toggleHideCategories() {
|
|
240
|
+
hideCategories = !hideCategories;
|
|
241
|
+
try {
|
|
242
|
+
localStorage.setItem("ld-hide-categories", hideCategories ? "1" : "0");
|
|
243
|
+
} catch {
|
|
244
|
+
/* ignore */
|
|
245
|
+
}
|
|
246
|
+
applyHideCategoriesButtonState();
|
|
247
|
+
refreshSidebar();
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
function applyHideCategoriesButtonState() {
|
|
251
|
+
const btn = document.getElementById("toggle-categories-btn");
|
|
252
|
+
if (!btn) return;
|
|
253
|
+
btn.classList.toggle("text-blue-500", hideCategories);
|
|
254
|
+
btn.classList.toggle("dark:text-blue-400", hideCategories);
|
|
255
|
+
btn.classList.toggle("text-gray-400", !hideCategories);
|
|
256
|
+
btn.classList.toggle("dark:text-gray-500", !hideCategories);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
function toggleHideAttachments() {
|
|
260
|
+
hideAttachments = !hideAttachments;
|
|
261
|
+
try {
|
|
262
|
+
localStorage.setItem("ld-hide-attachments", hideAttachments ? "1" : "0");
|
|
263
|
+
} catch {
|
|
264
|
+
/* ignore */
|
|
265
|
+
}
|
|
266
|
+
applyHideAttachmentsButtonState();
|
|
267
|
+
refreshSidebar();
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
function applyHideAttachmentsButtonState() {
|
|
271
|
+
const btn = document.getElementById("toggle-attachments-btn");
|
|
272
|
+
if (!btn) return;
|
|
273
|
+
btn.classList.toggle("text-blue-500", hideAttachments);
|
|
274
|
+
btn.classList.toggle("dark:text-blue-400", hideAttachments);
|
|
275
|
+
btn.classList.toggle("text-gray-400", !hideAttachments);
|
|
276
|
+
btn.classList.toggle("dark:text-gray-500", !hideAttachments);
|
|
277
|
+
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
let allDocs = [];
|
|
5
5
|
let allFolderPaths = [];
|
|
6
6
|
let annotationCounts = {};
|
|
7
|
+
let fileAttachmentCounts = {};
|
|
7
8
|
let currentDocId = null;
|
|
8
9
|
let currentDocContent = "";
|
|
9
10
|
let searchQuery = "";
|
|
@@ -11,6 +12,20 @@ let searchResults = null;
|
|
|
11
12
|
let navHistory = []; // stack of { id, title } visited via in-doc links
|
|
12
13
|
let expandedCategories = new Set();
|
|
13
14
|
let expandedFolders = new Set();
|
|
15
|
+
let hideCategories = (() => {
|
|
16
|
+
try {
|
|
17
|
+
return localStorage.getItem("ld-hide-categories") === "1";
|
|
18
|
+
} catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
})();
|
|
22
|
+
let hideAttachments = (() => {
|
|
23
|
+
try {
|
|
24
|
+
return localStorage.getItem("ld-hide-attachments") === "1";
|
|
25
|
+
} catch {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
})();
|
|
14
29
|
|
|
15
30
|
function filteredDocs() {
|
|
16
31
|
if (!searchQuery) return allDocs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../../src/routes/browse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../../src/routes/browse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAiBpD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsFrD"}
|
|
@@ -7,7 +7,12 @@ exports.browseRouter = browseRouter;
|
|
|
7
7
|
const express_1 = require("express");
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
-
|
|
10
|
+
const RESERVED_SUBFOLDERS = new Set(['files', 'images']);
|
|
11
|
+
function isReservedAtDocsRoot(parentDir, name, docsPath) {
|
|
12
|
+
return (path_1.default.resolve(parentDir) === path_1.default.resolve(docsPath) &&
|
|
13
|
+
RESERVED_SUBFOLDERS.has(name));
|
|
14
|
+
}
|
|
15
|
+
function browseRouter(docsPath) {
|
|
11
16
|
const router = (0, express_1.Router)();
|
|
12
17
|
// GET /api/browse?path=... — list dirs and .md files at a given path
|
|
13
18
|
router.get('/', (req, res) => {
|
|
@@ -16,7 +21,9 @@ function browseRouter() {
|
|
|
16
21
|
try {
|
|
17
22
|
const entries = fs_1.default.readdirSync(current, { withFileTypes: true });
|
|
18
23
|
const dirs = entries
|
|
19
|
-
.filter((e) => e.isDirectory() &&
|
|
24
|
+
.filter((e) => e.isDirectory() &&
|
|
25
|
+
!e.name.startsWith('.') &&
|
|
26
|
+
!isReservedAtDocsRoot(current, e.name, docsPath))
|
|
20
27
|
.map((e) => ({ name: e.name, path: path_1.default.join(current, e.name) }))
|
|
21
28
|
.sort((a, b) => a.name.localeCompare(b.name));
|
|
22
29
|
const allFiles = req.query.all === '1';
|
|
@@ -43,7 +50,9 @@ function browseRouter() {
|
|
|
43
50
|
try {
|
|
44
51
|
const entries = fs_1.default.readdirSync(dir, { withFileTypes: true });
|
|
45
52
|
for (const e of entries) {
|
|
46
|
-
if (e.isDirectory() &&
|
|
53
|
+
if (e.isDirectory() &&
|
|
54
|
+
!e.name.startsWith('.') &&
|
|
55
|
+
!isReservedAtDocsRoot(dir, e.name, docsPath)) {
|
|
47
56
|
const full = path_1.default.join(dir, e.name);
|
|
48
57
|
results.push(path_1.default.relative(base, full));
|
|
49
58
|
collect(full);
|
|
@@ -62,6 +71,13 @@ function browseRouter() {
|
|
|
62
71
|
return res.status(400).json({ error: 'path is required' });
|
|
63
72
|
}
|
|
64
73
|
const resolved = path_1.default.resolve(dirPath);
|
|
74
|
+
const parent = path_1.default.dirname(resolved);
|
|
75
|
+
const name = path_1.default.basename(resolved);
|
|
76
|
+
if (isReservedAtDocsRoot(parent, name, docsPath)) {
|
|
77
|
+
return res.status(400).json({
|
|
78
|
+
error: `"${name}" is a reserved folder name at the docs root`,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
65
81
|
try {
|
|
66
82
|
fs_1.default.mkdirSync(resolved, { recursive: true });
|
|
67
83
|
res.json({ created: resolved });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse.js","sourceRoot":"","sources":["../../../src/routes/browse.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"browse.js","sourceRoot":"","sources":["../../../src/routes/browse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAIpD,OAAO,EAAiB,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAIpD,OAAO,EAAiB,WAAW,EAAE,MAAM,eAAe,CAAC;AAK3D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAcrE;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,MAAM,EAAO,EACzB,eAAe,CAAC,EAAE,MAAM,GACvB,WAAW,EAAE,CA+Bf;AAwBD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI9E;AAeD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxD;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBtD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkSxD"}
|
|
@@ -15,11 +15,15 @@ const path_1 = __importDefault(require("path"));
|
|
|
15
15
|
const marked_1 = require("marked");
|
|
16
16
|
const parser_1 = require("../lib/parser");
|
|
17
17
|
const config_1 = require("../lib/config");
|
|
18
|
+
const RESERVED_DOCS_SUBFOLDERS = new Set(["files", "images"]);
|
|
18
19
|
function collectMdFiles(dir, baseDir) {
|
|
19
20
|
const results = [];
|
|
21
|
+
const atDocsRoot = path_1.default.resolve(dir) === path_1.default.resolve(baseDir);
|
|
20
22
|
for (const entry of fs_1.default.readdirSync(dir, { withFileTypes: true })) {
|
|
21
23
|
if (entry.name.startsWith("."))
|
|
22
24
|
continue;
|
|
25
|
+
if (atDocsRoot && RESERVED_DOCS_SUBFOLDERS.has(entry.name))
|
|
26
|
+
continue;
|
|
23
27
|
const fullPath = path_1.default.join(dir, entry.name);
|
|
24
28
|
if (entry.isDirectory()) {
|
|
25
29
|
results.push(...collectMdFiles(fullPath, baseDir));
|
|
@@ -168,6 +172,28 @@ function documentsRouter(docsPath) {
|
|
|
168
172
|
res.status(500).json({ error: "Search failed" });
|
|
169
173
|
}
|
|
170
174
|
});
|
|
175
|
+
// GET /api/documents/file-counts → { [docId]: attachmentCount }
|
|
176
|
+
router.get("/file-counts", (_req, res) => {
|
|
177
|
+
try {
|
|
178
|
+
const { extraFiles = [], filenamePattern } = (0, config_1.readConfig)(docsPath);
|
|
179
|
+
const docs = listDocs(docsPath, extraFiles, filenamePattern);
|
|
180
|
+
const counts = {};
|
|
181
|
+
const linkRe = /\]\(\s*\.?\/files\/[^)\s]+/g;
|
|
182
|
+
for (const doc of docs) {
|
|
183
|
+
const filePath = resolveDocPath(docsPath, doc, extraFiles);
|
|
184
|
+
if (!filePath || !fs_1.default.existsSync(filePath))
|
|
185
|
+
continue;
|
|
186
|
+
const content = fs_1.default.readFileSync(filePath, "utf-8");
|
|
187
|
+
const matches = content.match(linkRe);
|
|
188
|
+
if (matches && matches.length > 0)
|
|
189
|
+
counts[doc.id] = matches.length;
|
|
190
|
+
}
|
|
191
|
+
res.json(counts);
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
res.status(500).json({ error: "Failed to compute file counts" });
|
|
195
|
+
}
|
|
196
|
+
});
|
|
171
197
|
// GET /api/documents/:id — get a single document (content + rendered HTML)
|
|
172
198
|
router.get("/:id", async (req, res) => {
|
|
173
199
|
const id = decodeURIComponent(req.params.id);
|
|
@@ -314,7 +340,12 @@ function documentsRouter(docsPath) {
|
|
|
314
340
|
}
|
|
315
341
|
const { filenamePattern } = (0, config_1.readConfig)(docsPath);
|
|
316
342
|
const today = new Date().toISOString().slice(0, 10);
|
|
317
|
-
const
|
|
343
|
+
const normalizedCategory = (category || '')
|
|
344
|
+
.normalize('NFD')
|
|
345
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
346
|
+
.toUpperCase()
|
|
347
|
+
.replace(/[^A-Z0-9_-]/g, '') || 'GENERAL';
|
|
348
|
+
const filename = buildFilename(filenamePattern || 'YYYY_MM_DD_HH_mm_[Category]_title', title.trim(), normalizedCategory, today);
|
|
318
349
|
// Resolve target directory, constrained to docsPath
|
|
319
350
|
let targetDir = path_1.default.resolve(docsPath);
|
|
320
351
|
if (folder && folder.trim()) {
|
|
@@ -322,6 +353,12 @@ function documentsRouter(docsPath) {
|
|
|
322
353
|
if (!resolved.startsWith(path_1.default.resolve(docsPath) + path_1.default.sep) && resolved !== path_1.default.resolve(docsPath)) {
|
|
323
354
|
return res.status(403).json({ error: 'Access denied' });
|
|
324
355
|
}
|
|
356
|
+
const firstSegment = folder.trim().replace(/^\/+/, '').split('/')[0];
|
|
357
|
+
if (RESERVED_DOCS_SUBFOLDERS.has(firstSegment)) {
|
|
358
|
+
return res.status(400).json({
|
|
359
|
+
error: `"${firstSegment}" is a reserved folder name at the docs root`,
|
|
360
|
+
});
|
|
361
|
+
}
|
|
325
362
|
targetDir = resolved;
|
|
326
363
|
}
|
|
327
364
|
if (!fs_1.default.existsSync(targetDir)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"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"}
|
package/dist/src/server.js
CHANGED
|
@@ -31,7 +31,7 @@ async function startServer({ docsPath, port, openBrowser = false, }) {
|
|
|
31
31
|
// API
|
|
32
32
|
app.use('/api/documents', (0, documents_1.documentsRouter)(docsPath));
|
|
33
33
|
app.use('/api/config', (0, config_1.configRouter)(docsPath));
|
|
34
|
-
app.use('/api/browse', (0, browse_1.browseRouter)());
|
|
34
|
+
app.use('/api/browse', (0, browse_1.browseRouter)(docsPath));
|
|
35
35
|
app.use('/api/images', (0, images_1.imagesRouter)(docsPath));
|
|
36
36
|
app.use('/api/files', (0, files_1.filesRouter)(docsPath));
|
|
37
37
|
app.use('/api/diagrams', (0, diagrams_1.diagramsRouter)(docsPath));
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";;;;;AAqBA,kCAmEC;AAxFD,sDAA8B;AAC9B,gDAAwB;AACxB,iDAAqC;AACrC,kDAAqD;AACrD,4CAA+C;AAC/C,4CAA+C;AAC/C,4CAA+C;AAC/C,0CAA6C;AAC7C,gDAAmD;AACnD,kDAAqD;AACrD,sDAAyD;AACzD,4CAA+C;AAC/C,yCAAyC;AACzC,yCAAuD;AAQhD,KAAK,UAAU,WAAW,CAAC,EAChC,QAAQ,EACR,IAAI,EACJ,WAAW,GAAG,KAAK,GACL;IACd,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAEzC,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAsC,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpF,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzB,SAAS,CAAC,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,IAAA,oBAAW,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEjC,MAAM;IACN,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAA,2BAAe,EAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAA,qBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAA,qBAAY,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"4_reference/2026_04_08_23_14_[FUNDAMENTALS]_the_living_documentation_tool": []
|
|
2
|
+
"4_reference/2026_04_08_23_14_[FUNDAMENTALS]_the_living_documentation_tool": [],
|
|
3
|
+
"2026_04_21_19_47_[General]_tata": [
|
|
4
|
+
{
|
|
5
|
+
"id": "96379c72-4640-4d4d-b4f9-d40cdea0ef50",
|
|
6
|
+
"selectedText": "tutu",
|
|
7
|
+
"contextBefore": "tata vers",
|
|
8
|
+
"contextAfter": "tata-anchored",
|
|
9
|
+
"note": "ee",
|
|
10
|
+
"createdAt": "2026-04-22T08:09:47.533Z"
|
|
11
|
+
}
|
|
12
|
+
]
|
|
3
13
|
}
|
package/package.json
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# tutu
|
|
2
|
-
|
|
3
|
-
[Vers Titi](?doc=2026_04_21_19_52_%255BGeneral%255D_titi#titi)
|
|
4
|
-
|
|
5
|
-
[Vers Tata](?doc=2026_04_21_19_47_%255BGeneral%255D_tata#tata)
|
|
6
|
-
|
|
7
|
-
[Vers tata anchored](?doc=2026_04_21_19_47_%255BGeneral%255D_tata#tata-anchored)
|
|
8
|
-
|
|
9
|
-
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
|
|
10
|
-
|
|
11
|
-
# tutu-anchored
|