@breadstone-tools/markdowner-core 0.0.12-beta.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.
Files changed (38) hide show
  1. package/Index.d.ts +8 -0
  2. package/Index.d.ts.map +1 -0
  3. package/Index.js +16 -0
  4. package/Index.js.map +1 -0
  5. package/LICENSE +21 -0
  6. package/Process/MarkdownProcessor.d.ts +46 -0
  7. package/Process/MarkdownProcessor.d.ts.map +1 -0
  8. package/Process/MarkdownProcessor.js +89 -0
  9. package/Process/MarkdownProcessor.js.map +1 -0
  10. package/Process/Processors/Abstracts/BaseProcessor.d.ts +55 -0
  11. package/Process/Processors/Abstracts/BaseProcessor.d.ts.map +1 -0
  12. package/Process/Processors/Abstracts/BaseProcessor.js +78 -0
  13. package/Process/Processors/Abstracts/BaseProcessor.js.map +1 -0
  14. package/Process/Processors/BlockquoteProcessor.d.ts +19 -0
  15. package/Process/Processors/BlockquoteProcessor.d.ts.map +1 -0
  16. package/Process/Processors/BlockquoteProcessor.js +61 -0
  17. package/Process/Processors/BlockquoteProcessor.js.map +1 -0
  18. package/Process/Processors/CalloutProcessor.d.ts +10 -0
  19. package/Process/Processors/CalloutProcessor.d.ts.map +1 -0
  20. package/Process/Processors/CalloutProcessor.js +44 -0
  21. package/Process/Processors/CalloutProcessor.js.map +1 -0
  22. package/Process/Processors/CodeBlockProcessor.d.ts +10 -0
  23. package/Process/Processors/CodeBlockProcessor.d.ts.map +1 -0
  24. package/Process/Processors/CodeBlockProcessor.js +46 -0
  25. package/Process/Processors/CodeBlockProcessor.js.map +1 -0
  26. package/Process/Processors/Interfaces/IProcessor.d.ts +9 -0
  27. package/Process/Processors/Interfaces/IProcessor.d.ts.map +1 -0
  28. package/Process/Processors/Interfaces/IProcessor.js +4 -0
  29. package/Process/Processors/Interfaces/IProcessor.js.map +1 -0
  30. package/Process/Processors/TabProcessor.d.ts +10 -0
  31. package/Process/Processors/TabProcessor.d.ts.map +1 -0
  32. package/Process/Processors/TabProcessor.js +59 -0
  33. package/Process/Processors/TabProcessor.js.map +1 -0
  34. package/Process/Processors/Utils.d.ts +6 -0
  35. package/Process/Processors/Utils.d.ts.map +1 -0
  36. package/Process/Processors/Utils.js +17 -0
  37. package/Process/Processors/Utils.js.map +1 -0
  38. package/package.json +19 -0
package/Index.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ export { MarkdownProcessor } from './Process/MarkdownProcessor.js';
2
+ export { BaseProcessor } from './Process/Processors/Abstracts/BaseProcessor.js';
3
+ export type { IProcessor } from './Process/Processors/Interfaces/IProcessor.js';
4
+ export { BlockquoteProcessor } from './Process/Processors/BlockquoteProcessor.js';
5
+ export { CodeBlockProcessor } from './Process/Processors/CodeBlockProcessor.js';
6
+ export { TabProcessor } from './Process/Processors/TabProcessor.js';
7
+ export { CalloutProcessor } from './Process/Processors/CalloutProcessor.js';
8
+ //# sourceMappingURL=Index.d.ts.map
package/Index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,YAAY,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC"}
package/Index.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CalloutProcessor = exports.TabProcessor = exports.CodeBlockProcessor = exports.BlockquoteProcessor = exports.BaseProcessor = exports.MarkdownProcessor = void 0;
4
+ var MarkdownProcessor_js_1 = require("./Process/MarkdownProcessor.js");
5
+ Object.defineProperty(exports, "MarkdownProcessor", { enumerable: true, get: function () { return MarkdownProcessor_js_1.MarkdownProcessor; } });
6
+ var BaseProcessor_js_1 = require("./Process/Processors/Abstracts/BaseProcessor.js");
7
+ Object.defineProperty(exports, "BaseProcessor", { enumerable: true, get: function () { return BaseProcessor_js_1.BaseProcessor; } });
8
+ var BlockquoteProcessor_js_1 = require("./Process/Processors/BlockquoteProcessor.js");
9
+ Object.defineProperty(exports, "BlockquoteProcessor", { enumerable: true, get: function () { return BlockquoteProcessor_js_1.BlockquoteProcessor; } });
10
+ var CodeBlockProcessor_js_1 = require("./Process/Processors/CodeBlockProcessor.js");
11
+ Object.defineProperty(exports, "CodeBlockProcessor", { enumerable: true, get: function () { return CodeBlockProcessor_js_1.CodeBlockProcessor; } });
12
+ var TabProcessor_js_1 = require("./Process/Processors/TabProcessor.js");
13
+ Object.defineProperty(exports, "TabProcessor", { enumerable: true, get: function () { return TabProcessor_js_1.TabProcessor; } });
14
+ var CalloutProcessor_js_1 = require("./Process/Processors/CalloutProcessor.js");
15
+ Object.defineProperty(exports, "CalloutProcessor", { enumerable: true, get: function () { return CalloutProcessor_js_1.CalloutProcessor; } });
16
+ //# sourceMappingURL=Index.js.map
package/Index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":";;;AAAA,uEAAmE;AAA1D,yHAAA,iBAAiB,OAAA;AAC1B,oFAAgF;AAAvE,iHAAA,aAAa,OAAA;AAEtB,sFAAkF;AAAzE,6HAAA,mBAAmB,OAAA;AAC5B,oFAAgF;AAAvE,2HAAA,kBAAkB,OAAA;AAC3B,wEAAoE;AAA3D,+GAAA,YAAY,OAAA;AACrB,gFAA4E;AAAnE,uHAAA,gBAAgB,OAAA"}
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Breadstone
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,46 @@
1
+ import { type MarkedOptions } from 'marked';
2
+ import type { IProcessor } from './Processors/Interfaces/IProcessor.js';
3
+ /**
4
+ * Main processor for Markdown content.
5
+ * Orchestrates processors and integrates them with `marked`.
6
+ *
7
+ * @public
8
+ */
9
+ export declare class MarkdownProcessor {
10
+ private _processors;
11
+ /**
12
+ * Constructs a new MarkdownProcessor.
13
+ */
14
+ constructor(processors?: Array<IProcessor>);
15
+ /**
16
+ * Adds a custom processor to the manager.
17
+ *
18
+ * @public
19
+ * @param processor - The processor to add.
20
+ */
21
+ addProcessor(processor: IProcessor): void;
22
+ /**
23
+ * Removes a custom processor from the manager.
24
+ *
25
+ * @public
26
+ * @param processor - The processor to remove.
27
+ */
28
+ removeProcessor(processor: IProcessor): void;
29
+ /**
30
+ * Processes Markdown content into HTML.
31
+ *
32
+ * @public
33
+ * @param markdown - The Markdown content to process.
34
+ * @returns The resulting HTML string.
35
+ */
36
+ process(markdown: string, options?: Omit<MarkedOptions, 'async'>): string;
37
+ /**
38
+ * Processes Markdown content into HTML asynchronously.
39
+ *
40
+ * @public
41
+ * @param markdown - The Markdown content to process.
42
+ * @returns A promise that resolves to the resulting HTML string.
43
+ */
44
+ processAsync(markdown: string, options?: Omit<MarkedOptions, 'async'>): Promise<string>;
45
+ }
46
+ //# sourceMappingURL=MarkdownProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownProcessor.d.ts","sourceRoot":"","sources":["../../src/Process/MarkdownProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAKpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAIxE;;;;;GAKG;AACH,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,WAAW,CAAyB;IAM5C;;OAEG;gBACgB,UAAU,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;IAiBjD;;;;;OAKG;IACI,YAAY,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAIhD;;;;;OAKG;IACI,eAAe,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAInD;;;;;;OAMG;IACI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,MAAM;IAWhF;;;;;;OAMG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAajG"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MarkdownProcessor = void 0;
5
+ const marked_1 = require("marked");
6
+ const BlockquoteProcessor_js_1 = require("./Processors/BlockquoteProcessor.js");
7
+ const CodeBlockProcessor_js_1 = require("./Processors/CodeBlockProcessor.js");
8
+ const TabProcessor_js_1 = require("./Processors/TabProcessor.js");
9
+ const CalloutProcessor_js_1 = require("./Processors/CalloutProcessor.js");
10
+ // #endregion
11
+ /**
12
+ * Main processor for Markdown content.
13
+ * Orchestrates processors and integrates them with `marked`.
14
+ *
15
+ * @public
16
+ */
17
+ class MarkdownProcessor {
18
+ // #region Fields
19
+ _processors = [];
20
+ // #endregion
21
+ // #region Ctor
22
+ /**
23
+ * Constructs a new MarkdownProcessor.
24
+ */
25
+ constructor(processors) {
26
+ this._processors = [];
27
+ if (!processors?.length) {
28
+ this._processors.push(new BlockquoteProcessor_js_1.BlockquoteProcessor());
29
+ this._processors.push(new CalloutProcessor_js_1.CalloutProcessor());
30
+ this._processors.push(new CodeBlockProcessor_js_1.CodeBlockProcessor());
31
+ this._processors.push(new TabProcessor_js_1.TabProcessor());
32
+ }
33
+ this._processors.push(...processors ?? []);
34
+ }
35
+ // #endregion
36
+ // #region Methods
37
+ /**
38
+ * Adds a custom processor to the manager.
39
+ *
40
+ * @public
41
+ * @param processor - The processor to add.
42
+ */
43
+ addProcessor(processor) {
44
+ this._processors.push(processor);
45
+ }
46
+ /**
47
+ * Removes a custom processor from the manager.
48
+ *
49
+ * @public
50
+ * @param processor - The processor to remove.
51
+ */
52
+ removeProcessor(processor) {
53
+ this._processors = this._processors.filter((p) => p !== processor);
54
+ }
55
+ /**
56
+ * Processes Markdown content into HTML.
57
+ *
58
+ * @public
59
+ * @param markdown - The Markdown content to process.
60
+ * @returns The resulting HTML string.
61
+ */
62
+ process(markdown, options) {
63
+ const html = new marked_1.Marked()
64
+ .use(...this._processors)
65
+ .parse(markdown, {
66
+ async: false,
67
+ ...options
68
+ });
69
+ return html;
70
+ }
71
+ /**
72
+ * Processes Markdown content into HTML asynchronously.
73
+ *
74
+ * @public
75
+ * @param markdown - The Markdown content to process.
76
+ * @returns A promise that resolves to the resulting HTML string.
77
+ */
78
+ processAsync(markdown, options) {
79
+ const html = new marked_1.Marked()
80
+ .use(...this._processors)
81
+ .parse(markdown, {
82
+ async: true,
83
+ ...options
84
+ });
85
+ return html;
86
+ }
87
+ }
88
+ exports.MarkdownProcessor = MarkdownProcessor;
89
+ //# sourceMappingURL=MarkdownProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownProcessor.js","sourceRoot":"","sources":["../../src/Process/MarkdownProcessor.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAElB,mCAAoD;AACpD,gFAA0E;AAC1E,8EAAwE;AACxE,kEAA4D;AAC5D,0EAAoE;AAGpE,aAAa;AAEb;;;;;GAKG;AACH,MAAa,iBAAiB;IAE1B,iBAAiB;IAET,WAAW,GAAsB,EAAE,CAAC;IAE5C,aAAa;IAEb,eAAe;IAEf;;OAEG;IACH,YAAmB,UAA8B;QAC7C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,4CAAmB,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,sCAAgB,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,0CAAkB,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,8BAAY,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;;;;OAKG;IACI,YAAY,CAAC,SAAqB;QACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACI,eAAe,CAAC,SAAqB;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACI,OAAO,CAAC,QAAgB,EAAE,OAAsC;QACnE,MAAM,IAAI,GAAG,IAAI,eAAM,EAAE;aACpB,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;aACxB,KAAK,CAAC,QAAQ,EAAE;YACb,KAAK,EAAE,KAAK;YACZ,GAAG,OAAO;SACb,CAAC,CAAC;QAEP,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,YAAY,CAAC,QAAgB,EAAE,OAAsC;QACxE,MAAM,IAAI,GAAG,IAAI,eAAM,EAAE;aACpB,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;aACxB,KAAK,CAAC,QAAQ,EAAE;YACb,KAAK,EAAE,IAAI;YACX,GAAG,OAAO;SACb,CAAC,CAAC;QAEP,OAAO,IAAI,CAAC;IAChB,CAAC;CAIJ;AAxFD,8CAwFC"}
@@ -0,0 +1,55 @@
1
+ import type { IProcessor } from '../Interfaces/IProcessor.js';
2
+ import type { MarkedExtension, Tokens } from 'marked';
3
+ /**
4
+ * Abstract base class for custom Markdown processors.
5
+ */
6
+ export declare abstract class BaseProcessor implements MarkedExtension, IProcessor {
7
+ /**
8
+ * Override this method to provide custom rendering logic.
9
+ *
10
+ * @public
11
+ * @readonly
12
+ * @returns An array of rendering extensions.
13
+ */
14
+ get extensions(): MarkedExtension['extensions'];
15
+ get hooks(): MarkedExtension['hooks'];
16
+ /**
17
+ * Preprocesses the Markdown content before rendering.
18
+ *
19
+ * @public
20
+ * @param markdown - The Markdown content to preprocess.
21
+ * @returns The preprocessed Markdown content.
22
+ */
23
+ preprocess(markdown: string): string;
24
+ /**
25
+ * Postprocesses the HTML content after rendering.
26
+ *
27
+ * @public
28
+ * @param html - The HTML content to postprocess.
29
+ * @returns The postprocessed HTML content.
30
+ */
31
+ postprocess(html: string): string;
32
+ /**
33
+ * Processes all tokens.
34
+ *
35
+ * @public
36
+ * @param tokens - The tokens to process.
37
+ * @returns The processed tokens.
38
+ */
39
+ processAllTokens(tokens: Array<Tokens.Generic>): Array<Tokens.Generic>;
40
+ /**
41
+ * Override this method to process tokens.
42
+ *
43
+ * @public
44
+ * @param token - The token to process.
45
+ */
46
+ walkTokens?(token: Tokens.Generic): void;
47
+ /**
48
+ * Minifies HTML by removing all newlines and unnecessary whitespaces.
49
+ *
50
+ * @param html - The raw HTML string to minify.
51
+ * @returns A minified HTML string.
52
+ */
53
+ protected minifyHTML(html: string): string;
54
+ }
55
+ //# sourceMappingURL=BaseProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseProcessor.d.ts","sourceRoot":"","sources":["../../../../src/Process/Processors/Abstracts/BaseProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAItD;;GAEG;AACH,8BAAsB,aAAc,YAAW,eAAe,EAAE,UAAU;IAItE;;;;;;OAMG;IACH,IAAW,UAAU,IAAI,eAAe,CAAC,YAAY,CAAC,CAErD;IAED,IAAW,KAAK,IAAI,eAAe,CAAC,OAAO,CAAC,CAM3C;IAID;;;;;;OAMG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI3C;;;;;;OAMG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIxC;;;;;;OAMG;IACI,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IAI7E;;;;;OAKG;IACI,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAI/C;;;;;OAKG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAI7C"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.BaseProcessor = void 0;
5
+ // #endregion
6
+ /**
7
+ * Abstract base class for custom Markdown processors.
8
+ */
9
+ class BaseProcessor {
10
+ // #region Properties
11
+ /**
12
+ * Override this method to provide custom rendering logic.
13
+ *
14
+ * @public
15
+ * @readonly
16
+ * @returns An array of rendering extensions.
17
+ */
18
+ get extensions() {
19
+ return [];
20
+ }
21
+ get hooks() {
22
+ return {
23
+ processAllTokens: (tokens) => this.processAllTokens(tokens),
24
+ preprocess: (markdown) => this.preprocess(markdown),
25
+ postprocess: (html) => this.postprocess(html)
26
+ };
27
+ }
28
+ // #endregion
29
+ /**
30
+ * Preprocesses the Markdown content before rendering.
31
+ *
32
+ * @public
33
+ * @param markdown - The Markdown content to preprocess.
34
+ * @returns The preprocessed Markdown content.
35
+ */
36
+ preprocess(markdown) {
37
+ return markdown;
38
+ }
39
+ /**
40
+ * Postprocesses the HTML content after rendering.
41
+ *
42
+ * @public
43
+ * @param html - The HTML content to postprocess.
44
+ * @returns The postprocessed HTML content.
45
+ */
46
+ postprocess(html) {
47
+ return html;
48
+ }
49
+ /**
50
+ * Processes all tokens.
51
+ *
52
+ * @public
53
+ * @param tokens - The tokens to process.
54
+ * @returns The processed tokens.
55
+ */
56
+ processAllTokens(tokens) {
57
+ return tokens;
58
+ }
59
+ /**
60
+ * Override this method to process tokens.
61
+ *
62
+ * @public
63
+ * @param token - The token to process.
64
+ */
65
+ walkTokens(token) {
66
+ }
67
+ /**
68
+ * Minifies HTML by removing all newlines and unnecessary whitespaces.
69
+ *
70
+ * @param html - The raw HTML string to minify.
71
+ * @returns A minified HTML string.
72
+ */
73
+ minifyHTML(html) {
74
+ return html.replace(/\s+/g, ' ').trim();
75
+ }
76
+ }
77
+ exports.BaseProcessor = BaseProcessor;
78
+ //# sourceMappingURL=BaseProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseProcessor.js","sourceRoot":"","sources":["../../../../src/Process/Processors/Abstracts/BaseProcessor.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAKlB,aAAa;AAEb;;GAEG;AACH,MAAsB,aAAa;IAE/B,qBAAqB;IAErB;;;;;;OAMG;IACH,IAAW,UAAU;QACjB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAW,KAAK;QACZ,OAAO;YACH,gBAAgB,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAClF,UAAU,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC3D,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;SACxD,CAAC;IACN,CAAC;IAED,aAAa;IAEb;;;;;;OAMG;IACI,UAAU,CAAC,QAAgB;QAC9B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACI,WAAW,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,gBAAgB,CAAC,MAA6B;QACjD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAE,KAAqB;IAExC,CAAC;IAED;;;;;OAKG;IACO,UAAU,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;CAEJ;AA9ED,sCA8EC"}
@@ -0,0 +1,19 @@
1
+ import { BaseProcessor } from './Abstracts/BaseProcessor.js';
2
+ import type { MarkedExtension, Tokens } from 'marked';
3
+ /**
4
+ * Processor for custom blockquotes supporting `[!TYPE]` syntax.
5
+ *
6
+ * Supported types: `info`, `warning`, `danger`, `success`
7
+ *
8
+ * @example
9
+ * > [!INFO]
10
+ * > Highlights information that users should take into account.
11
+ *
12
+ * > [!WARNING]
13
+ * > Critical content demanding immediate user attention.
14
+ */
15
+ export declare class BlockquoteProcessor extends BaseProcessor {
16
+ walkTokens(token: Tokens.Generic): void;
17
+ get extensions(): MarkedExtension['extensions'];
18
+ }
19
+ //# sourceMappingURL=BlockquoteProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockquoteProcessor.d.ts","sourceRoot":"","sources":["../../../src/Process/Processors/BlockquoteProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAC;AASpE;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAgCvD,IAAoB,UAAU,IAAI,eAAe,CAAC,YAAY,CAAC,CAc9D;CAEJ"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlockquoteProcessor = void 0;
4
+ const BaseProcessor_js_1 = require("./Abstracts/BaseProcessor.js");
5
+ const Utils_js_1 = require("./Utils.js");
6
+ /**
7
+ * Processor for custom blockquotes supporting `[!TYPE]` syntax.
8
+ *
9
+ * Supported types: `info`, `warning`, `danger`, `success`
10
+ *
11
+ * @example
12
+ * > [!INFO]
13
+ * > Highlights information that users should take into account.
14
+ *
15
+ * > [!WARNING]
16
+ * > Critical content demanding immediate user attention.
17
+ */
18
+ class BlockquoteProcessor extends BaseProcessor_js_1.BaseProcessor {
19
+ walkTokens(token) {
20
+ if (token.type !== 'blockquote') {
21
+ return;
22
+ }
23
+ const text = token.text.trim();
24
+ // Match the new `[!TYPE]` syntax
25
+ const match = (/^\[!(INFO|WARNING|DANGER|SUCCESS)\]\s*(.*)$/i).exec(text);
26
+ if (match) {
27
+ const type = match[1].toLowerCase();
28
+ const content = match[2].trim();
29
+ Utils_js_1.TokenUtils.setTokenMeta(token, {
30
+ className: `blockquote-${type}`,
31
+ type: type,
32
+ content: content
33
+ });
34
+ return;
35
+ }
36
+ // If no valid `[!TYPE]` is detected, treat as default blockquote
37
+ Object.assign(token, {
38
+ meta: {
39
+ className: 'blockquote-default',
40
+ type: 'default',
41
+ content: text
42
+ }
43
+ });
44
+ }
45
+ get extensions() {
46
+ return [
47
+ {
48
+ name: 'blockquote',
49
+ level: 'block',
50
+ renderer(token) {
51
+ const meta = Utils_js_1.TokenUtils.getTokenMeta(token);
52
+ return ['info', 'warning', 'danger', 'success'].includes(meta.type)
53
+ ? `<blockquote class="${meta.className}"><strong>${meta.type.charAt(0).toUpperCase() + meta.type.slice(1)}:</strong>${meta.content}</blockquote>`
54
+ : `<blockquote>${meta.content}</blockquote>`;
55
+ }
56
+ }
57
+ ];
58
+ }
59
+ }
60
+ exports.BlockquoteProcessor = BlockquoteProcessor;
61
+ //# sourceMappingURL=BlockquoteProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockquoteProcessor.js","sourceRoot":"","sources":["../../../src/Process/Processors/BlockquoteProcessor.ts"],"names":[],"mappings":";;;AAAA,mEAA6D;AAE7D,yCAAwC;AAQxC;;;;;;;;;;;GAWG;AACH,MAAa,mBAAoB,SAAQ,gCAAa;IAElC,UAAU,CAAC,KAAqB;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAE/B,iCAAiC;QACjC,MAAM,KAAK,GAAG,CAAC,8CAA8C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAA+C,CAAC;YACjF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEhC,qBAAU,CAAC,YAAY,CAAkB,KAAK,EAAE;gBAC5C,SAAS,EAAE,cAAc,IAAI,EAAE;gBAC/B,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,OAAO;aACnB,CAAC,CAAC;YAEH,OAAO;QACX,CAAC;QAED,iEAAiE;QACjE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,IAAI,EAAE;gBACF,SAAS,EAAE,oBAAoB;gBAC/B,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;aAChB;SACJ,CAAC,CAAC;IACP,CAAC;IAED,IAAoB,UAAU;QAC1B,OAAO;YACH;gBACI,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,OAAO;gBACd,QAAQ,CAAqB,KAAqB;oBAC9C,MAAM,IAAI,GAAG,qBAAU,CAAC,YAAY,CAAkB,KAAK,CAAC,CAAC;oBAE7D,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAW,CAAC;wBACtE,CAAC,CAAC,sBAAsB,IAAI,CAAC,SAAS,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,OAAO,eAAe;wBACjJ,CAAC,CAAC,eAAe,IAAI,CAAC,OAAO,eAAe,CAAC;gBACrD,CAAC;aACJ;SACJ,CAAC;IACN,CAAC;CAEJ;AAlDD,kDAkDC"}
@@ -0,0 +1,10 @@
1
+ import { BaseProcessor } from './Abstracts/BaseProcessor.js';
2
+ import type { MarkedExtension, Tokens } from 'marked';
3
+ /**
4
+ * Processor for custom callouts with types (info, warning, tip).
5
+ */
6
+ export declare class CalloutProcessor extends BaseProcessor {
7
+ walkTokens(token: Tokens.Generic): void;
8
+ get extensions(): MarkedExtension['extensions'];
9
+ }
10
+ //# sourceMappingURL=CalloutProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalloutProcessor.d.ts","sourceRoot":"","sources":["../../../src/Process/Processors/CalloutProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEpE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IAE/B,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAuBvD,IAAoB,UAAU,IAAI,eAAe,CAAC,YAAY,CAAC,CAa9D;CAEJ"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CalloutProcessor = void 0;
4
+ const BaseProcessor_js_1 = require("./Abstracts/BaseProcessor.js");
5
+ /**
6
+ * Processor for custom callouts with types (info, warning, tip).
7
+ */
8
+ class CalloutProcessor extends BaseProcessor_js_1.BaseProcessor {
9
+ walkTokens(token) {
10
+ if (token.type !== 'blockquote') {
11
+ return;
12
+ }
13
+ const match = (/^::: (info|warning|tip)(\s+(.+))?/i).exec(token.text);
14
+ if (match) {
15
+ const type = match[1].toLowerCase();
16
+ const content = match[3].trim() || '';
17
+ Object.assign(token, {
18
+ type: 'callout',
19
+ meta: {
20
+ className: `callout-${type}`,
21
+ type,
22
+ content
23
+ }
24
+ });
25
+ token.tokens?.shift(); // Remove the ::: line
26
+ }
27
+ }
28
+ get extensions() {
29
+ return [
30
+ {
31
+ name: 'callout',
32
+ level: 'block',
33
+ renderer(meta) {
34
+ return `<div class="${meta.className}">
35
+ <strong>${meta.type.charAt(0).toUpperCase() + meta.type.slice(1)}:</strong>
36
+ ${this.parser.parse(meta.tokens ?? [])}
37
+ </div>`;
38
+ }
39
+ }
40
+ ];
41
+ }
42
+ }
43
+ exports.CalloutProcessor = CalloutProcessor;
44
+ //# sourceMappingURL=CalloutProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalloutProcessor.js","sourceRoot":"","sources":["../../../src/Process/Processors/CalloutProcessor.ts"],"names":[],"mappings":";;;AAAA,mEAA6D;AAG7D;;GAEG;AACH,MAAa,gBAAiB,SAAQ,gCAAa;IAE/B,UAAU,CAAC,KAAqB;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,oCAAoC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAEtC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBACjB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE;oBACF,SAAS,EAAE,WAAW,IAAI,EAAE;oBAC5B,IAAI;oBACJ,OAAO;iBACV;aACJ,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,sBAAsB;QACjD,CAAC;IACL,CAAC;IAED,IAAoB,UAAU;QAC1B,OAAO;YACH;gBACI,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,OAAO;gBACd,QAAQ,CAAqB,IAAoB;oBAC7C,OAAO,eAAe,IAAI,CAAC,SAAS;gCACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;2BACjC,CAAC;gBACZ,CAAC;aACJ;SACJ,CAAC;IACN,CAAC;CAEJ;AAxCD,4CAwCC"}
@@ -0,0 +1,10 @@
1
+ import { BaseProcessor } from './Abstracts/BaseProcessor.js';
2
+ import type { MarkedExtension, Tokens } from 'marked';
3
+ /**
4
+ * Processor for custom code blocks with metadata (language, filename, highlights).
5
+ */
6
+ export declare class CodeBlockProcessor extends BaseProcessor {
7
+ walkTokens(token: Tokens.Generic): void;
8
+ get extensions(): MarkedExtension['extensions'];
9
+ }
10
+ //# sourceMappingURL=CodeBlockProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlockProcessor.d.ts","sourceRoot":"","sources":["../../../src/Process/Processors/CodeBlockProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEpE;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IAEjC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAqBvD,IAAoB,UAAU,IAAI,eAAe,CAAC,YAAY,CAAC,CAgB9D;CAEJ"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeBlockProcessor = void 0;
4
+ const BaseProcessor_js_1 = require("./Abstracts/BaseProcessor.js");
5
+ /**
6
+ * Processor for custom code blocks with metadata (language, filename, highlights).
7
+ */
8
+ class CodeBlockProcessor extends BaseProcessor_js_1.BaseProcessor {
9
+ walkTokens(token) {
10
+ if (token.type !== 'code') {
11
+ return;
12
+ }
13
+ const match = (/(\w+)(?:\s+name="(.+?)")?(?:\s+\{([\d,-]+)\})?/i).exec(token.lang || '');
14
+ if (match) {
15
+ const lang = match[1];
16
+ const fileName = match[2];
17
+ const highlights = match[3];
18
+ Object.assign(token, {
19
+ meta: {
20
+ lang,
21
+ fileName,
22
+ highlights
23
+ }
24
+ });
25
+ }
26
+ }
27
+ get extensions() {
28
+ return [
29
+ {
30
+ name: 'code',
31
+ level: 'block',
32
+ renderer(meta) {
33
+ const fileLabel = meta.fileName
34
+ ? `<div class="code-filename">${meta.fileName}</div>\n`
35
+ : '';
36
+ const highlightAttr = meta.highlights
37
+ ? `data-lines="${meta.highlights}"`
38
+ : '';
39
+ return `${fileLabel}<pre><code class="language-${meta.lang}" ${highlightAttr}>${meta.text}</code></pre>`;
40
+ }
41
+ }
42
+ ];
43
+ }
44
+ }
45
+ exports.CodeBlockProcessor = CodeBlockProcessor;
46
+ //# sourceMappingURL=CodeBlockProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlockProcessor.js","sourceRoot":"","sources":["../../../src/Process/Processors/CodeBlockProcessor.ts"],"names":[],"mappings":";;;AAAA,mEAA6D;AAG7D;;GAEG;AACH,MAAa,kBAAmB,SAAQ,gCAAa;IAEjC,UAAU,CAAC,KAAqB;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,iDAAiD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACzF,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBACjB,IAAI,EAAE;oBACF,IAAI;oBACJ,QAAQ;oBACR,UAAU;iBACb;aACJ,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,IAAoB,UAAU;QAC1B,OAAO;YACH;gBACI,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,CAAqB,IAAoB;oBAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ;wBAC3B,CAAC,CAAC,8BAA8B,IAAI,CAAC,QAAQ,UAAU;wBACvD,CAAC,CAAC,EAAE,CAAC;oBACT,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU;wBACjC,CAAC,CAAC,eAAe,IAAI,CAAC,UAAU,GAAG;wBACnC,CAAC,CAAC,EAAE,CAAC;oBACT,OAAO,GAAG,SAAS,8BAA8B,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,eAAe,CAAC;gBAC7G,CAAC;aACJ;SACJ,CAAC;IACN,CAAC;CAEJ;AAzCD,gDAyCC"}
@@ -0,0 +1,9 @@
1
+ import type { MarkedExtension, Tokens } from 'marked';
2
+ /**
3
+ * Represents a processor that can handle a specific type of Markdown token.
4
+ */
5
+ export interface IProcessor extends Pick<MarkedExtension, 'extensions' | 'walkTokens'> {
6
+ get extensions(): MarkedExtension['extensions'];
7
+ walkTokens?(token: Tokens.Generic): void;
8
+ }
9
+ //# sourceMappingURL=IProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IProcessor.d.ts","sourceRoot":"","sources":["../../../../src/Process/Processors/Interfaces/IProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,CAAC;IAIlF,IAAI,UAAU,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;IAMhD,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CAI5C"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=IProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IProcessor.js","sourceRoot":"","sources":["../../../../src/Process/Processors/Interfaces/IProcessor.ts"],"names":[],"mappings":";AAAA,kBAAkB"}
@@ -0,0 +1,10 @@
1
+ import { BaseProcessor } from './Abstracts/BaseProcessor.js';
2
+ import type { MarkedExtension, Tokens } from 'marked';
3
+ /**
4
+ * Processor for custom tabs with content.
5
+ */
6
+ export declare class TabProcessor extends BaseProcessor {
7
+ walkTokens(token: Tokens.Generic): void;
8
+ get extensions(): MarkedExtension['extensions'];
9
+ }
10
+ //# sourceMappingURL=TabProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabProcessor.d.ts","sourceRoot":"","sources":["../../../src/Process/Processors/TabProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQpE;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa;IAE3B,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAkCvD,IAAoB,UAAU,IAAI,eAAe,CAAC,YAAY,CAAC,CAwB9D;CAEJ"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TabProcessor = void 0;
4
+ const BaseProcessor_js_1 = require("./Abstracts/BaseProcessor.js");
5
+ /**
6
+ * Processor for custom tabs with content.
7
+ */
8
+ class TabProcessor extends BaseProcessor_js_1.BaseProcessor {
9
+ walkTokens(token) {
10
+ if (token.type !== 'blockquote') {
11
+ return;
12
+ }
13
+ const tabsRegex = /^::: tabs\n([\s\S]+?)\n::: end-tabs/m;
14
+ const tabRegex = /^::: tab (.+)\n([\s\S]+?)\n::: end-tab/m;
15
+ const tabsMatch = tabsRegex.exec(token.raw);
16
+ if (tabsMatch) {
17
+ const tabsContent = tabsMatch[1];
18
+ const tabs = new Array();
19
+ let tabMatch = null;
20
+ let index = 0;
21
+ while ((tabMatch = tabRegex.exec(tabsContent)) !== null) {
22
+ tabs.push({
23
+ title: tabMatch[1].trim(),
24
+ content: tabMatch[2].trim(),
25
+ id: `tab-${index++}`
26
+ });
27
+ }
28
+ Object.assign(token, {
29
+ type: 'tabs',
30
+ meta: {
31
+ tabs
32
+ }
33
+ });
34
+ token.tokens?.splice(0, token.tokens.length); // Clear the token's children
35
+ }
36
+ }
37
+ get extensions() {
38
+ return [
39
+ {
40
+ name: 'tabs',
41
+ level: 'block',
42
+ renderer(meta) {
43
+ const tabList = meta.tabs
44
+ .map((tab, index) => `<li class="tab-item" data-tab="tab-${index}">${tab.title}</li>`)
45
+ .join('');
46
+ const tabContents = meta.tabs
47
+ .map((tab, index) => `<div class="tab-content" id="tab-${index}">${tab.content}</div>`)
48
+ .join('');
49
+ return `<div class="tabs">
50
+ <ul class="tab-list">${tabList}</ul>
51
+ ${tabContents}
52
+ </div>`;
53
+ }
54
+ }
55
+ ];
56
+ }
57
+ }
58
+ exports.TabProcessor = TabProcessor;
59
+ //# sourceMappingURL=TabProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabProcessor.js","sourceRoot":"","sources":["../../../src/Process/Processors/TabProcessor.ts"],"names":[],"mappings":";;;AAAA,mEAA6D;AAS7D;;GAEG;AACH,MAAa,YAAa,SAAQ,gCAAa;IAE3B,UAAU,CAAC,KAAqB;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,sCAAsC,CAAC;QACzD,MAAM,QAAQ,GAAG,yCAAyC,CAAC;QAE3D,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,KAAK,EAAY,CAAC;YACnC,IAAI,QAAQ,GAAG,IAAI,CAAC;YACpB,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC;oBACN,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;oBACzB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC3B,EAAE,EAAE,OAAO,KAAK,EAAE,EAAE;iBACvB,CAAC,CAAC;YACP,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBACjB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE;oBACF,IAAI;iBACP;aACJ,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B;QAC/E,CAAC;IACL,CAAC;IAED,IAAoB,UAAU;QAC1B,OAAO;YACH;gBACI,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,CAAqB,IAAoB;oBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI;yBACpB,GAAG,CACA,CAAC,GAAa,EAAE,KAAa,EAAE,EAAE,CAAC,sCAAsC,KAAK,KAAK,GAAG,CAAC,KAAK,OAAO,CACrG;yBACA,IAAI,CAAC,EAAE,CAAC,CAAC;oBACd,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI;yBACxB,GAAG,CACA,CAAC,GAAa,EAAE,KAAa,EAAE,EAAE,CAAC,oCAAoC,KAAK,KAAK,GAAG,CAAC,OAAO,QAAQ,CACtG;yBACA,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEd,OAAO;6CACkB,OAAO;wBAC5B,WAAW;2BACR,CAAC;gBACZ,CAAC;aACJ;SACJ,CAAC;IACN,CAAC;CAEJ;AA9DD,oCA8DC"}
@@ -0,0 +1,6 @@
1
+ import type { Tokens } from 'marked';
2
+ export declare namespace TokenUtils {
3
+ function setTokenMeta<T>(token: Tokens.Generic, meta: T): void;
4
+ function getTokenMeta<T>(token: Tokens.Generic): T;
5
+ }
6
+ //# sourceMappingURL=Utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../src/Process/Processors/Utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,yBAAiB,UAAU,CAAC;IAExB,SAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAEpE;IAED,SAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAExD;CAEJ"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TokenUtils = void 0;
5
+ // #endregion
6
+ var TokenUtils;
7
+ (function (TokenUtils) {
8
+ function setTokenMeta(token, meta) {
9
+ Object.assign(token, { meta });
10
+ }
11
+ TokenUtils.setTokenMeta = setTokenMeta;
12
+ function getTokenMeta(token) {
13
+ return token.meta;
14
+ }
15
+ TokenUtils.getTokenMeta = getTokenMeta;
16
+ })(TokenUtils || (exports.TokenUtils = TokenUtils = {}));
17
+ //# sourceMappingURL=Utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/Process/Processors/Utils.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAIlB,aAAa;AAEb,IAAiB,UAAU,CAU1B;AAVD,WAAiB,UAAU;IAEvB,SAAgB,YAAY,CAAI,KAAqB,EAAE,IAAO;QAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAFe,uBAAY,eAE3B,CAAA;IAED,SAAgB,YAAY,CAAI,KAAqB;QACjD,OAAO,KAAK,CAAC,IAAS,CAAC;IAC3B,CAAC;IAFe,uBAAY,eAE3B,CAAA;AAEL,CAAC,EAVgB,UAAU,0BAAV,UAAU,QAU1B"}
package/package.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "@breadstone-tools/markdowner-core",
3
+ "description": "Markdowner core library",
4
+ "version": "0.0.12-beta.0",
5
+ "license": "MIT",
6
+ "author": "andre.wehlert <awehlert@breadstone.de> (https://www.breadstone.de)",
7
+ "repository": {
8
+ "url": "git+ssh://git@github.com/RueDeRennes/mosaik.git"
9
+ },
10
+ "type": "commonjs",
11
+ "main": "./Index.js",
12
+ "commonjs": "./Index.js",
13
+ "module": "./Index.js",
14
+ "types": "./Index.d.ts",
15
+ "dependencies": {
16
+ "@breadstone-infrastructure/utilities": "^0.0.12-beta.0",
17
+ "marked": "^15.0.11"
18
+ }
19
+ }