mdts 0.11.0 → 0.12.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/frontend/0108e89c9003e8c14ea3.woff +0 -0
- package/dist/frontend/02271ec5cb9f5b4588ac.woff +0 -0
- package/dist/frontend/073b3402d036714b4370.woff +0 -0
- package/dist/frontend/0c3b8929d377c0e9b2f3.woff +0 -0
- package/dist/frontend/172d3529b26f8cedef6b.woff2 +0 -0
- package/dist/frontend/20f389c4120be058d80a.woff2 +0 -0
- package/dist/frontend/2960900c4f271311eb36.woff2 +0 -0
- package/dist/frontend/2f7bc363fc5424ebda59.ttf +0 -0
- package/dist/frontend/354501bac435c3264834.woff +0 -0
- package/dist/frontend/39890742bc957b368704.woff2 +0 -0
- package/dist/frontend/3a99e70aee4076660d38.woff +0 -0
- package/dist/frontend/3f07ed67f06c720120ce.woff +0 -0
- package/dist/frontend/428978dc7837d46de091.woff +0 -0
- package/dist/frontend/4ad7c7e8bb8d10a34bb7.ttf +0 -0
- package/dist/frontend/4c6b94fd1d07f8beff7c.woff +0 -0
- package/dist/frontend/4c761b3711973ab04edf.ttf +0 -0
- package/dist/frontend/4f35fbcc9ee8614c2bcc.woff +0 -0
- package/dist/frontend/57f5c1837853986ea1db.ttf +0 -0
- package/dist/frontend/5b49f4993ae22d7975b4.ttf +0 -0
- package/dist/frontend/6d3d25f4820d0da8f01f.woff2 +0 -0
- package/dist/frontend/6de7d4b539221a49e9e2.ttf +0 -0
- package/dist/frontend/6eec866c69313624be60.woff2 +0 -0
- package/dist/frontend/6fdf0ac577be0ba82a4c.woff +0 -0
- package/dist/frontend/73ea273a72f4aca30ca5.woff2 +0 -0
- package/dist/frontend/7489a2fbfb9bfe704420.ttf +0 -0
- package/dist/frontend/7947224e8a9914fa332b.woff +0 -0
- package/dist/frontend/7d393d382f3e7fb1c637.woff2 +0 -0
- package/dist/frontend/7e873d3833eb108a0758.ttf +0 -0
- package/dist/frontend/8169508bf58f8bd92ad8.ttf +0 -0
- package/dist/frontend/828abcb200061cffbaae.ttf +0 -0
- package/dist/frontend/853be92419a6c3766b9a.ttf +0 -0
- package/dist/frontend/8a5f936332e8028c7278.ttf +0 -0
- package/dist/frontend/8d593cfaa96238d5e2f8.woff +0 -0
- package/dist/frontend/8d6b6822586eea3d3b20.ttf +0 -0
- package/dist/frontend/931d67ea207ab37ee693.woff2 +0 -0
- package/dist/frontend/95591a929f0d32aa282a.woff2 +0 -0
- package/dist/frontend/96759856b4e70f3a8338.woff +0 -0
- package/dist/frontend/9eba1d77abcf2aa6e94e.ttf +0 -0
- package/dist/frontend/a1abf90dfd72792a577a.woff2 +0 -0
- package/dist/frontend/aeffd8025cba3647f1a6.woff +0 -0
- package/dist/frontend/b257a18c016f37ee4543.ttf +0 -0
- package/dist/frontend/b9cd458ac6d5889ff9c3.woff +0 -0
- package/dist/frontend/bf2d440b3a42ea78a998.ttf +0 -0
- package/dist/frontend/bundle.js +1024 -155
- package/dist/frontend/c295e7f71970f03c0549.woff2 +0 -0
- package/dist/frontend/c5c02d763c89380dcb4e.ttf +0 -0
- package/dist/frontend/c81d1b2a4b75d3eded60.woff2 +0 -0
- package/dist/frontend/cd5e231e0cc53b2cb2c0.woff2 +0 -0
- package/dist/frontend/d562e886c52f12660a41.woff +0 -0
- package/dist/frontend/d6484fce1ef428d5bd94.woff2 +0 -0
- package/dist/frontend/d757c535a2e5902f1325.woff +0 -0
- package/dist/frontend/db074fa22cf224af93d7.woff +0 -0
- package/dist/frontend/dcbcbd93bac0470b462d.woff2 +0 -0
- package/dist/frontend/e1951519f6f0596f7356.woff2 +0 -0
- package/dist/frontend/e418bf257af1052628d8.woff2 +0 -0
- package/dist/frontend/ed305b5434865e06ffde.ttf +0 -0
- package/dist/frontend/f650f111a3b890d116f1.woff2 +0 -0
- package/dist/frontend/fa675e5e4bec9eb250b6.ttf +0 -0
- package/dist/frontend/fc9ba5249878cd8f8d88.ttf +0 -0
- package/dist/frontend/fd947498bc16392e76c2.woff +0 -0
- package/dist/frontend/fe2176f79edaa716e621.woff2 +0 -0
- package/dist/frontend/logo.svg +4 -4
- package/dist/frontend/markdown.css +5 -0
- package/dist/server/public/logo.svg +4 -4
- package/dist/server/routes/outline.js +18 -14
- package/dist/utils/logger.js +2 -2
- package/package.json +12 -5
- package/dist/frontend/vendors-node_modules_katex_dist_katex_mjs.bundle.js +0 -22
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/frontend/logo.svg
CHANGED
|
@@ -5,21 +5,21 @@
|
|
|
5
5
|
<stop offset="100%" stop-color="#1f43ab"/>
|
|
6
6
|
</linearGradient>
|
|
7
7
|
<style>
|
|
8
|
-
.text {
|
|
8
|
+
.logo-text {
|
|
9
9
|
font-family: 'Segoe UI', 'Arial', sans-serif;
|
|
10
10
|
font-size: 42px;
|
|
11
11
|
font-weight: 700;
|
|
12
12
|
fill: url(#grad);
|
|
13
13
|
letter-spacing: 2px;
|
|
14
14
|
}
|
|
15
|
-
.icon {
|
|
15
|
+
.logo-icon {
|
|
16
16
|
fill: url(#grad);
|
|
17
17
|
}
|
|
18
18
|
</style>
|
|
19
19
|
</defs>
|
|
20
20
|
|
|
21
21
|
<!-- Icon (Abstract Folder Tree) -->
|
|
22
|
-
<g class="icon" transform="translate(10, 20)">
|
|
22
|
+
<g class="logo-icon" transform="translate(10, 20)">
|
|
23
23
|
<path d="M5 25 L15 45" stroke="url(#grad)" stroke-width="2"/>
|
|
24
24
|
<path d="M25 25 L15 45" stroke="url(#grad)" stroke-width="2"/>
|
|
25
25
|
<rect x="0" y="20" width="10" height="10" rx="2"/>
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
</g>
|
|
29
29
|
|
|
30
30
|
<!-- Logotype -->
|
|
31
|
-
<text x="60" y="70" class="text">mdts</text>
|
|
31
|
+
<text x="60" y="70" class="logo-text">mdts</text>
|
|
32
32
|
</svg>
|
|
@@ -5,21 +5,21 @@
|
|
|
5
5
|
<stop offset="100%" stop-color="#1f43ab"/>
|
|
6
6
|
</linearGradient>
|
|
7
7
|
<style>
|
|
8
|
-
.text {
|
|
8
|
+
.logo-text {
|
|
9
9
|
font-family: 'Segoe UI', 'Arial', sans-serif;
|
|
10
10
|
font-size: 42px;
|
|
11
11
|
font-weight: 700;
|
|
12
12
|
fill: url(#grad);
|
|
13
13
|
letter-spacing: 2px;
|
|
14
14
|
}
|
|
15
|
-
.icon {
|
|
15
|
+
.logo-icon {
|
|
16
16
|
fill: url(#grad);
|
|
17
17
|
}
|
|
18
18
|
</style>
|
|
19
19
|
</defs>
|
|
20
20
|
|
|
21
21
|
<!-- Icon (Abstract Folder Tree) -->
|
|
22
|
-
<g class="icon" transform="translate(10, 20)">
|
|
22
|
+
<g class="logo-icon" transform="translate(10, 20)">
|
|
23
23
|
<path d="M5 25 L15 45" stroke="url(#grad)" stroke-width="2"/>
|
|
24
24
|
<path d="M25 25 L15 45" stroke="url(#grad)" stroke-width="2"/>
|
|
25
25
|
<rect x="0" y="20" width="10" height="10" rx="2"/>
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
</g>
|
|
29
29
|
|
|
30
30
|
<!-- Logotype -->
|
|
31
|
-
<text x="60" y="70" class="text">mdts</text>
|
|
31
|
+
<text x="60" y="70" class="logo-text">mdts</text>
|
|
32
32
|
</svg>
|
|
@@ -32,6 +32,15 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
35
44
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
45
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
46
|
};
|
|
@@ -45,7 +54,7 @@ const logger_1 = require("../../utils/logger");
|
|
|
45
54
|
const md = new markdown_it_1.default();
|
|
46
55
|
const outlineRouter = (directory) => {
|
|
47
56
|
const router = (0, express_1.Router)();
|
|
48
|
-
router.get('/', (req, res) => {
|
|
57
|
+
router.get('/', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
58
|
const filePath = req.query.filePath;
|
|
50
59
|
if (!filePath) {
|
|
51
60
|
return res.status(400).send('filePath query parameter is required.');
|
|
@@ -54,29 +63,24 @@ const outlineRouter = (directory) => {
|
|
|
54
63
|
const absolutePath = filePath === 'mdts-welcome-markdown.md'
|
|
55
64
|
? path_1.default.join(__dirname, '../public/welcome.md')
|
|
56
65
|
: path_1.default.join(directory, filePath);
|
|
57
|
-
const outline = getMarkdownOutline(absolutePath);
|
|
66
|
+
const outline = yield getMarkdownOutline(absolutePath);
|
|
58
67
|
res.json(outline);
|
|
59
68
|
}
|
|
60
69
|
catch (error) {
|
|
61
70
|
logger_1.logger.error(`Error getting outline for ${filePath}:`, error);
|
|
62
71
|
res.status(500).send('Error getting outline.');
|
|
63
72
|
}
|
|
64
|
-
});
|
|
73
|
+
}));
|
|
65
74
|
return router;
|
|
66
75
|
};
|
|
67
76
|
exports.outlineRouter = outlineRouter;
|
|
68
|
-
const
|
|
69
|
-
return text
|
|
70
|
-
.toLowerCase()
|
|
71
|
-
.replace(/[^\p{L}\p{N}\s-]/gu, '') // Remove non-alphanumeric, non-space, non-hyphen characters. \p{L} for unicode letters, \p{N} for unicode numbers. 'u' flag for unicode.
|
|
72
|
-
.replace(/\s+/g, '-') // Replace spaces with single hyphen
|
|
73
|
-
.replace(/-+/g, '-') // Replace multiple hyphens with single hyphen
|
|
74
|
-
.replace(/^-+|-+$/g, ''); // Trim leading/trailing hyphens
|
|
75
|
-
};
|
|
76
|
-
const getMarkdownOutline = (filePath) => {
|
|
77
|
+
const getMarkdownOutline = (filePath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
77
78
|
if (!fs.existsSync(filePath)) {
|
|
78
79
|
return [];
|
|
79
80
|
}
|
|
81
|
+
const slugger = yield import('github-slugger')
|
|
82
|
+
.then(module => module.default)
|
|
83
|
+
.then(GithubSlugger => new GithubSlugger());
|
|
80
84
|
const fileContent = fs.readFileSync(filePath, 'utf-8');
|
|
81
85
|
const tokens = md.parse(fileContent, {});
|
|
82
86
|
const outline = [];
|
|
@@ -86,10 +90,10 @@ const getMarkdownOutline = (filePath) => {
|
|
|
86
90
|
const nextToken = tokens[tokens.indexOf(token) + 1];
|
|
87
91
|
if (nextToken && nextToken.type === 'inline') {
|
|
88
92
|
const content = nextToken.content;
|
|
89
|
-
const id =
|
|
93
|
+
const id = slugger.slug(content);
|
|
90
94
|
outline.push({ level, content, id });
|
|
91
95
|
}
|
|
92
96
|
}
|
|
93
97
|
}
|
|
94
98
|
return outline;
|
|
95
|
-
};
|
|
99
|
+
});
|
package/dist/utils/logger.js
CHANGED
|
@@ -12,7 +12,7 @@ class Logger {
|
|
|
12
12
|
if (this.silent) {
|
|
13
13
|
return;
|
|
14
14
|
}
|
|
15
|
-
/* eslint-disable max-len */
|
|
15
|
+
/* eslint-disable @stylistic/max-len */
|
|
16
16
|
console.log(`
|
|
17
17
|
[38;5;45m [39m[38;5;45m [39m[38;5;45m [39m[38;5;45m [39m[38;5;45m [39m[38;5;45m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m_[39m[38;5;39m [39m[38;5;39m_[39m[38;5;39m [39m[38;5;39m [39m[38;5;33m [39m[38;5;33m [39m[38;5;33m [39m[38;5;33m [39m[38;5;33m [39m
|
|
18
18
|
[38;5;45m [39m[38;5;45m [39m[38;5;45m_[39m[38;5;45m [39m[38;5;45m_[39m[38;5;45m_[39m[38;5;39m [39m[38;5;39m_[39m[38;5;39m_[39m[38;5;39m_[39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m_[39m[38;5;39m_[39m[38;5;39m|[39m[38;5;39m [39m[38;5;39m|[39m[38;5;39m [39m[38;5;39m|[39m[38;5;39m_[39m[38;5;33m [39m[38;5;33m_[39m[38;5;33m_[39m[38;5;33m_[39m[38;5;33m [39m
|
|
@@ -21,7 +21,7 @@ class Logger {
|
|
|
21
21
|
[38;5;45m [39m[38;5;45m|[39m[38;5;45m_[39m[38;5;45m|[39m[38;5;45m [39m[38;5;45m|[39m[38;5;39m_[39m[38;5;39m|[39m[38;5;39m [39m[38;5;39m|[39m[38;5;39m_[39m[38;5;39m|[39m[38;5;39m\\[39m[38;5;39m_[39m[38;5;39m_[39m[38;5;39m,[39m[38;5;39m_[39m[38;5;39m|[39m[38;5;39m\\[39m[38;5;39m_[39m[38;5;39m_[39m[38;5;33m|[39m[38;5;33m_[39m[38;5;33m_[39m[38;5;33m_[39m[38;5;33m/[39m
|
|
22
22
|
[38;5;45m [39m[38;5;45m [39m[38;5;45m [39m[38;5;45m [39m[38;5;45m [39m[38;5;45m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;39m [39m[38;5;33m [39m[38;5;33m [39m[38;5;33m [39m[38;5;33m [39m[38;5;33m [39m
|
|
23
23
|
`);
|
|
24
|
-
/* eslint-enable max-len */
|
|
24
|
+
/* eslint-enable @stylistic/max-len */
|
|
25
25
|
}
|
|
26
26
|
log(tag, message, ...args) {
|
|
27
27
|
if (this.silent) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mdts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "A markdown preview server.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -41,32 +41,39 @@
|
|
|
41
41
|
},
|
|
42
42
|
"homepage": "https://mdts.unhappychoice.com",
|
|
43
43
|
"devDependencies": {
|
|
44
|
+
"@stylistic/eslint-plugin": "^5.2.3",
|
|
44
45
|
"@types/commander": "^2.12.0",
|
|
45
46
|
"@types/express": "^5.0.3",
|
|
46
47
|
"@types/jest": "^30.0.0",
|
|
47
48
|
"@types/markdown-it": "^14.1.2",
|
|
48
49
|
"@types/supertest": "^6.0.3",
|
|
49
50
|
"@types/ws": "^8.18.1",
|
|
50
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
51
|
-
"@typescript-eslint/parser": "^8.
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^8.39.0",
|
|
52
|
+
"@typescript-eslint/parser": "^8.39.0",
|
|
52
53
|
"axios": "^1.10.0",
|
|
53
|
-
"eslint": "^
|
|
54
|
+
"eslint": "^9.32.0",
|
|
54
55
|
"jest": "^30.0.4",
|
|
55
56
|
"jest-runner-eslint": "^2.3.0",
|
|
56
57
|
"supertest": "^7.1.3",
|
|
57
58
|
"ts-jest": "^29.4.0",
|
|
58
59
|
"ts-node": "^10.9.2",
|
|
59
60
|
"typescript": "^5.8.3",
|
|
60
|
-
"typescript-eslint": "^8.
|
|
61
|
+
"typescript-eslint": "^8.39.0"
|
|
61
62
|
},
|
|
62
63
|
"dependencies": {
|
|
63
64
|
"chalk": "^5.4.1",
|
|
64
65
|
"chokidar": "^4.0.3",
|
|
65
66
|
"commander": "^14.0.0",
|
|
66
67
|
"express": "^5.1.0",
|
|
68
|
+
"github-slugger": "^2.0.0",
|
|
67
69
|
"markdown-it": "^14.1.0",
|
|
68
70
|
"open": "^10.2.0",
|
|
69
71
|
"simple-git": "^3.28.0",
|
|
70
72
|
"ws": "^8.18.3"
|
|
73
|
+
},
|
|
74
|
+
"overrides": {
|
|
75
|
+
"jest-runner-eslint": {
|
|
76
|
+
"eslint": "^9.32.0"
|
|
77
|
+
}
|
|
71
78
|
}
|
|
72
79
|
}
|