nuartz 0.1.3 → 0.1.5
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/fs.d.ts +3 -2
- package/dist/fs.d.ts.map +1 -1
- package/dist/fs.js +38 -10
- package/dist/fs.js.map +1 -1
- package/package.json +4 -4
package/dist/fs.d.ts
CHANGED
|
@@ -21,10 +21,11 @@ export interface FileTreeNode {
|
|
|
21
21
|
type: "file" | "folder";
|
|
22
22
|
children?: FileTreeNode[];
|
|
23
23
|
mtime?: Date;
|
|
24
|
+
date?: number;
|
|
24
25
|
}
|
|
25
26
|
export interface BuildFileTreeOptions {
|
|
26
|
-
/** Sort method: 'name' (alphabetical) or '
|
|
27
|
-
sortBy?: 'name' | 'modified';
|
|
27
|
+
/** Sort method: 'name' (alphabetical), 'modified' (file mtime), or 'date' (frontmatter/filename date) */
|
|
28
|
+
sortBy?: 'name' | 'modified' | 'date';
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* Builds a nested file tree from a flat list of MarkdownFile entries.
|
package/dist/fs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,IAAI,CAAA;CACb;
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,IAAI,CAAA;CACb;AAiBD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CA+CzB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgB9B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;IACvB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,yGAAyG;IACzG,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAA;CACtC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,YAAY,EAAE,CAoEnG"}
|
package/dist/fs.js
CHANGED
|
@@ -9,6 +9,22 @@ exports.buildFileTree = buildFileTree;
|
|
|
9
9
|
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
10
10
|
const node_path_1 = __importDefault(require("node:path"));
|
|
11
11
|
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
12
|
+
/** Extract date from frontmatter or filename (e.g. 2025-10-13-title.md) */
|
|
13
|
+
function extractDate(file) {
|
|
14
|
+
if (file.frontmatter.date) {
|
|
15
|
+
const d = new Date(file.frontmatter.date);
|
|
16
|
+
if (!isNaN(d.getTime()))
|
|
17
|
+
return d.getTime();
|
|
18
|
+
}
|
|
19
|
+
const basename = file.slug.split("/").pop() ?? "";
|
|
20
|
+
const match = basename.match(/^(\d{4}-\d{2}-\d{2})/);
|
|
21
|
+
if (match) {
|
|
22
|
+
const d = new Date(match[1]);
|
|
23
|
+
if (!isNaN(d.getTime()))
|
|
24
|
+
return d.getTime();
|
|
25
|
+
}
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
12
28
|
/**
|
|
13
29
|
* Recursively walks a directory and returns all .md files.
|
|
14
30
|
*/
|
|
@@ -89,9 +105,10 @@ function buildFileTree(files, options) {
|
|
|
89
105
|
const nodeMap = new Map();
|
|
90
106
|
const sortedFiles = [...files].sort((a, b) => {
|
|
91
107
|
if (sortBy === 'modified') {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
108
|
+
return (b.mtime?.getTime() ?? 0) - (a.mtime?.getTime() ?? 0);
|
|
109
|
+
}
|
|
110
|
+
if (sortBy === 'date') {
|
|
111
|
+
return extractDate(b) - extractDate(a);
|
|
95
112
|
}
|
|
96
113
|
return a.slug.localeCompare(b.slug);
|
|
97
114
|
});
|
|
@@ -108,30 +125,41 @@ function buildFileTree(files, options) {
|
|
|
108
125
|
path: file.slug,
|
|
109
126
|
type: "file",
|
|
110
127
|
mtime: file.mtime,
|
|
128
|
+
date: extractDate(file),
|
|
111
129
|
};
|
|
112
130
|
parentList.push(node);
|
|
113
131
|
}
|
|
114
132
|
else {
|
|
115
133
|
let folderNode = nodeMap.get(partPath);
|
|
116
134
|
if (!folderNode) {
|
|
117
|
-
folderNode = { name: part, path: partPath, type: "folder", children: [] };
|
|
135
|
+
folderNode = { name: part, path: partPath, type: "folder", children: [], date: 0 };
|
|
118
136
|
nodeMap.set(partPath, folderNode);
|
|
119
137
|
parentList.push(folderNode);
|
|
120
138
|
}
|
|
139
|
+
// Bubble up the latest date to the folder
|
|
140
|
+
if (sortBy === 'date') {
|
|
141
|
+
const fileDate = extractDate(file);
|
|
142
|
+
if (fileDate > (folderNode.date ?? 0))
|
|
143
|
+
folderNode.date = fileDate;
|
|
144
|
+
}
|
|
145
|
+
else if (sortBy === 'modified') {
|
|
146
|
+
const t = file.mtime?.getTime() ?? 0;
|
|
147
|
+
if (t > (folderNode.mtime?.getTime() ?? 0))
|
|
148
|
+
folderNode.mtime = file.mtime;
|
|
149
|
+
}
|
|
121
150
|
parentList = folderNode.children;
|
|
122
151
|
}
|
|
123
152
|
}
|
|
124
153
|
}
|
|
125
|
-
// Sort each level: folders first, then by
|
|
154
|
+
// Sort each level: folders first, then by chosen method
|
|
126
155
|
function sortNodes(nodes) {
|
|
127
156
|
nodes.sort((a, b) => {
|
|
128
157
|
if (a.type !== b.type)
|
|
129
158
|
return a.type === "folder" ? -1 : 1;
|
|
130
|
-
if (sortBy === '
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
return
|
|
134
|
-
}
|
|
159
|
+
if (sortBy === 'date')
|
|
160
|
+
return (b.date ?? 0) - (a.date ?? 0);
|
|
161
|
+
if (sortBy === 'modified')
|
|
162
|
+
return (b.mtime?.getTime() ?? 0) - (a.mtime?.getTime() ?? 0);
|
|
135
163
|
return a.name.localeCompare(b.name, undefined, { sensitivity: "base" });
|
|
136
164
|
});
|
|
137
165
|
for (const node of nodes) {
|
package/dist/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuartz",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Obsidian
|
|
3
|
+
"version": "0.1.5",
|
|
4
|
+
"description": "Publish your Obsidian vault as a Next.js website — wikilinks, backlinks, graph view, search",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/syshin0116/nuartz.git"
|
|
9
9
|
},
|
|
10
|
-
"keywords": ["markdown", "obsidian", "nextjs", "blog", "mdx", "remark", "rehype"],
|
|
10
|
+
"keywords": ["markdown", "obsidian", "nextjs", "blog", "mdx", "remark", "rehype", "digital-garden", "wikilink", "obsidian-publish", "quartz", "tailwindcss", "shadcn", "knowledge-base", "second-brain"],
|
|
11
11
|
"homepage": "https://github.com/syshin0116/nuartz#readme",
|
|
12
12
|
"main": "./dist/index.js",
|
|
13
13
|
"types": "./dist/index.d.ts",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"exports": {
|
|
16
16
|
".": {
|
|
17
17
|
"types": "./dist/index.d.ts",
|
|
18
|
-
|
|
18
|
+
"files": ["dist"],
|
|
19
19
|
"default": "./dist/index.js"
|
|
20
20
|
}
|
|
21
21
|
},
|