@splendidlabz/utils 1.9.0 → 1.9.1
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/CHANGELOG.md +6 -0
- package/dist/cjs/lib/index.cjs +13 -6
- package/dist/cjs/lib/strings/index.cjs +13 -6
- package/dist/cjs/lib/strings/markdown.cjs +23 -6
- package/dist/esm/lib/index.js +13 -6
- package/dist/esm/lib/strings/index.js +13 -6
- package/dist/esm/lib/strings/markdown.js +13 -6
- package/dist/types/lib/strings/markdown.d.cts +2 -2
- package/package.json +3 -1
- package/src/lib/strings/markdown.js +21 -9
package/CHANGELOG.md
CHANGED
package/dist/cjs/lib/index.cjs
CHANGED
|
@@ -989,16 +989,23 @@ function parseSSE(message) {
|
|
|
989
989
|
}
|
|
990
990
|
|
|
991
991
|
// src/lib/strings/markdown.js
|
|
992
|
-
var
|
|
993
|
-
var
|
|
994
|
-
var
|
|
992
|
+
var import_markdown_it = __toESM(require("markdown-it"), 1);
|
|
993
|
+
var import_markdown_it_anchor = __toESM(require("markdown-it-anchor"), 1);
|
|
994
|
+
var md = (0, import_markdown_it.default)({
|
|
995
|
+
html: true,
|
|
996
|
+
linkify: true,
|
|
997
|
+
typographer: true
|
|
998
|
+
});
|
|
999
|
+
md.use(import_markdown_it_anchor.default, {
|
|
1000
|
+
permalink: false,
|
|
1001
|
+
slugify: (s) => s.toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]/g, "")
|
|
1002
|
+
});
|
|
995
1003
|
function markdown(content, options = {}) {
|
|
996
1004
|
const defaultOptions = { inline: false };
|
|
997
1005
|
const opts = { ...defaultOptions, ...options };
|
|
998
|
-
import_marked.marked.use((0, import_marked_mangle.mangle)());
|
|
999
|
-
import_marked.marked.use((0, import_marked_gfm_heading_id.gfmHeadingId)());
|
|
1000
1006
|
const { content: treated } = treatMarkdownWhitespace(content, opts);
|
|
1001
|
-
return
|
|
1007
|
+
if (opts.inline) return md.renderInline(treated);
|
|
1008
|
+
return md.render(treated);
|
|
1002
1009
|
}
|
|
1003
1010
|
function treatMarkdownWhitespace(content, { inline } = {}) {
|
|
1004
1011
|
if (!content) return { content: "", inline };
|
|
@@ -104,16 +104,23 @@ function isDigit(char) {
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
// src/lib/strings/markdown.js
|
|
107
|
-
var
|
|
108
|
-
var
|
|
109
|
-
var
|
|
107
|
+
var import_markdown_it = __toESM(require("markdown-it"), 1);
|
|
108
|
+
var import_markdown_it_anchor = __toESM(require("markdown-it-anchor"), 1);
|
|
109
|
+
var md = (0, import_markdown_it.default)({
|
|
110
|
+
html: true,
|
|
111
|
+
linkify: true,
|
|
112
|
+
typographer: true
|
|
113
|
+
});
|
|
114
|
+
md.use(import_markdown_it_anchor.default, {
|
|
115
|
+
permalink: false,
|
|
116
|
+
slugify: (s) => s.toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]/g, "")
|
|
117
|
+
});
|
|
110
118
|
function markdown(content, options = {}) {
|
|
111
119
|
const defaultOptions = { inline: false };
|
|
112
120
|
const opts = { ...defaultOptions, ...options };
|
|
113
|
-
import_marked.marked.use((0, import_marked_mangle.mangle)());
|
|
114
|
-
import_marked.marked.use((0, import_marked_gfm_heading_id.gfmHeadingId)());
|
|
115
121
|
const { content: treated } = treatMarkdownWhitespace(content, opts);
|
|
116
|
-
return
|
|
122
|
+
if (opts.inline) return md.renderInline(treated);
|
|
123
|
+
return md.render(treated);
|
|
117
124
|
}
|
|
118
125
|
function treatMarkdownWhitespace(content, { inline } = {}) {
|
|
119
126
|
if (!content) return { content: "", inline };
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
7
|
var __export = (target, all) => {
|
|
6
8
|
for (var name in all)
|
|
@@ -14,6 +16,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
14
16
|
}
|
|
15
17
|
return to;
|
|
16
18
|
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
17
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
28
|
|
|
19
29
|
// src/lib/strings/markdown.js
|
|
@@ -23,16 +33,23 @@ __export(markdown_exports, {
|
|
|
23
33
|
treatMarkdownWhitespace: () => treatMarkdownWhitespace
|
|
24
34
|
});
|
|
25
35
|
module.exports = __toCommonJS(markdown_exports);
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var
|
|
36
|
+
var import_markdown_it = __toESM(require("markdown-it"), 1);
|
|
37
|
+
var import_markdown_it_anchor = __toESM(require("markdown-it-anchor"), 1);
|
|
38
|
+
var md = (0, import_markdown_it.default)({
|
|
39
|
+
html: true,
|
|
40
|
+
linkify: true,
|
|
41
|
+
typographer: true
|
|
42
|
+
});
|
|
43
|
+
md.use(import_markdown_it_anchor.default, {
|
|
44
|
+
permalink: false,
|
|
45
|
+
slugify: (s) => s.toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]/g, "")
|
|
46
|
+
});
|
|
29
47
|
function markdown(content, options = {}) {
|
|
30
48
|
const defaultOptions = { inline: false };
|
|
31
49
|
const opts = { ...defaultOptions, ...options };
|
|
32
|
-
import_marked.marked.use((0, import_marked_mangle.mangle)());
|
|
33
|
-
import_marked.marked.use((0, import_marked_gfm_heading_id.gfmHeadingId)());
|
|
34
50
|
const { content: treated } = treatMarkdownWhitespace(content, opts);
|
|
35
|
-
return
|
|
51
|
+
if (opts.inline) return md.renderInline(treated);
|
|
52
|
+
return md.render(treated);
|
|
36
53
|
}
|
|
37
54
|
function treatMarkdownWhitespace(content, { inline } = {}) {
|
|
38
55
|
if (!content) return { content: "", inline };
|
package/dist/esm/lib/index.js
CHANGED
|
@@ -869,16 +869,23 @@ function parseSSE(message) {
|
|
|
869
869
|
}
|
|
870
870
|
|
|
871
871
|
// src/lib/strings/markdown.js
|
|
872
|
-
import
|
|
873
|
-
import
|
|
874
|
-
|
|
872
|
+
import markdownit from "markdown-it";
|
|
873
|
+
import anchor from "markdown-it-anchor";
|
|
874
|
+
var md = markdownit({
|
|
875
|
+
html: true,
|
|
876
|
+
linkify: true,
|
|
877
|
+
typographer: true
|
|
878
|
+
});
|
|
879
|
+
md.use(anchor, {
|
|
880
|
+
permalink: false,
|
|
881
|
+
slugify: (s) => s.toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]/g, "")
|
|
882
|
+
});
|
|
875
883
|
function markdown(content, options = {}) {
|
|
876
884
|
const defaultOptions = { inline: false };
|
|
877
885
|
const opts = { ...defaultOptions, ...options };
|
|
878
|
-
marked.use(mangle());
|
|
879
|
-
marked.use(gfmHeadingId());
|
|
880
886
|
const { content: treated } = treatMarkdownWhitespace(content, opts);
|
|
881
|
-
return
|
|
887
|
+
if (opts.inline) return md.renderInline(treated);
|
|
888
|
+
return md.render(treated);
|
|
882
889
|
}
|
|
883
890
|
function treatMarkdownWhitespace(content, { inline } = {}) {
|
|
884
891
|
if (!content) return { content: "", inline };
|
|
@@ -55,16 +55,23 @@ function isDigit(char) {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
// src/lib/strings/markdown.js
|
|
58
|
-
import
|
|
59
|
-
import
|
|
60
|
-
|
|
58
|
+
import markdownit from "markdown-it";
|
|
59
|
+
import anchor from "markdown-it-anchor";
|
|
60
|
+
var md = markdownit({
|
|
61
|
+
html: true,
|
|
62
|
+
linkify: true,
|
|
63
|
+
typographer: true
|
|
64
|
+
});
|
|
65
|
+
md.use(anchor, {
|
|
66
|
+
permalink: false,
|
|
67
|
+
slugify: (s) => s.toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]/g, "")
|
|
68
|
+
});
|
|
61
69
|
function markdown(content, options = {}) {
|
|
62
70
|
const defaultOptions = { inline: false };
|
|
63
71
|
const opts = { ...defaultOptions, ...options };
|
|
64
|
-
marked.use(mangle());
|
|
65
|
-
marked.use(gfmHeadingId());
|
|
66
72
|
const { content: treated } = treatMarkdownWhitespace(content, opts);
|
|
67
|
-
return
|
|
73
|
+
if (opts.inline) return md.renderInline(treated);
|
|
74
|
+
return md.render(treated);
|
|
68
75
|
}
|
|
69
76
|
function treatMarkdownWhitespace(content, { inline } = {}) {
|
|
70
77
|
if (!content) return { content: "", inline };
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
// src/lib/strings/markdown.js
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
2
|
+
import markdownit from "markdown-it";
|
|
3
|
+
import anchor from "markdown-it-anchor";
|
|
4
|
+
var md = markdownit({
|
|
5
|
+
html: true,
|
|
6
|
+
linkify: true,
|
|
7
|
+
typographer: true
|
|
8
|
+
});
|
|
9
|
+
md.use(anchor, {
|
|
10
|
+
permalink: false,
|
|
11
|
+
slugify: (s) => s.toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]/g, "")
|
|
12
|
+
});
|
|
5
13
|
function markdown(content, options = {}) {
|
|
6
14
|
const defaultOptions = { inline: false };
|
|
7
15
|
const opts = { ...defaultOptions, ...options };
|
|
8
|
-
marked.use(mangle());
|
|
9
|
-
marked.use(gfmHeadingId());
|
|
10
16
|
const { content: treated } = treatMarkdownWhitespace(content, opts);
|
|
11
|
-
return
|
|
17
|
+
if (opts.inline) return md.renderInline(treated);
|
|
18
|
+
return md.render(treated);
|
|
12
19
|
}
|
|
13
20
|
function treatMarkdownWhitespace(content, { inline } = {}) {
|
|
14
21
|
if (!content) return { content: "", inline };
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* @param {string} content - Markdown content to convert
|
|
4
4
|
* @param {Object} [options={}] - Conversion options
|
|
5
5
|
* @param {boolean} [options.inline=false] - Whether content should be treated as inline markdown
|
|
6
|
-
* @returns {string
|
|
6
|
+
* @returns {string} Converted HTML string
|
|
7
7
|
*/
|
|
8
8
|
declare function markdown(content: string, options?: {
|
|
9
9
|
inline?: boolean;
|
|
10
|
-
}): string
|
|
10
|
+
}): string;
|
|
11
11
|
/**
|
|
12
12
|
* Handles whitespace in markdown content to ensure proper rendering
|
|
13
13
|
* @param {string} content - Markdown content to process
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@splendidlabz/utils",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -54,6 +54,8 @@
|
|
|
54
54
|
"deep-eql": "^5.0.2",
|
|
55
55
|
"dompurify": "^3.2.4",
|
|
56
56
|
"glob": "^11.0.0",
|
|
57
|
+
"markdown-it": "^14.1.0",
|
|
58
|
+
"markdown-it-anchor": "^9.2.0",
|
|
57
59
|
"marked": "^15.0.7",
|
|
58
60
|
"marked-gfm-heading-id": "^4.1.1",
|
|
59
61
|
"marked-mangle": "^1.1.10",
|
|
@@ -1,24 +1,36 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import markdownit from 'markdown-it'
|
|
2
|
+
import anchor from 'markdown-it-anchor'
|
|
3
|
+
|
|
4
|
+
const md = markdownit({
|
|
5
|
+
html: true,
|
|
6
|
+
linkify: true,
|
|
7
|
+
typographer: true,
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
md.use(anchor, {
|
|
11
|
+
permalink: false,
|
|
12
|
+
slugify: s =>
|
|
13
|
+
s
|
|
14
|
+
.toLowerCase()
|
|
15
|
+
.replace(/\s+/g, '-')
|
|
16
|
+
.replace(/[^\w-]/g, ''),
|
|
17
|
+
})
|
|
4
18
|
|
|
5
19
|
/**
|
|
6
20
|
* Converts markdown content to HTML with whitespace handling
|
|
7
21
|
* @param {string} content - Markdown content to convert
|
|
8
22
|
* @param {Object} [options={}] - Conversion options
|
|
9
23
|
* @param {boolean} [options.inline=false] - Whether content should be treated as inline markdown
|
|
10
|
-
* @returns {string
|
|
24
|
+
* @returns {string} Converted HTML string
|
|
11
25
|
*/
|
|
12
26
|
export function markdown(content, options = {}) {
|
|
13
27
|
const defaultOptions = { inline: false }
|
|
14
28
|
const opts = { ...defaultOptions, ...options }
|
|
15
29
|
|
|
16
|
-
// Prepare Marked
|
|
17
|
-
marked.use(mangle())
|
|
18
|
-
marked.use(gfmHeadingId())
|
|
19
|
-
|
|
20
30
|
const { content: treated } = treatMarkdownWhitespace(content, opts)
|
|
21
|
-
|
|
31
|
+
|
|
32
|
+
if (opts.inline) return md.renderInline(treated)
|
|
33
|
+
return md.render(treated)
|
|
22
34
|
}
|
|
23
35
|
|
|
24
36
|
/**
|