@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.
- package/Index.d.ts +8 -0
- package/Index.d.ts.map +1 -0
- package/Index.js +16 -0
- package/Index.js.map +1 -0
- package/LICENSE +21 -0
- package/Process/MarkdownProcessor.d.ts +46 -0
- package/Process/MarkdownProcessor.d.ts.map +1 -0
- package/Process/MarkdownProcessor.js +89 -0
- package/Process/MarkdownProcessor.js.map +1 -0
- package/Process/Processors/Abstracts/BaseProcessor.d.ts +55 -0
- package/Process/Processors/Abstracts/BaseProcessor.d.ts.map +1 -0
- package/Process/Processors/Abstracts/BaseProcessor.js +78 -0
- package/Process/Processors/Abstracts/BaseProcessor.js.map +1 -0
- package/Process/Processors/BlockquoteProcessor.d.ts +19 -0
- package/Process/Processors/BlockquoteProcessor.d.ts.map +1 -0
- package/Process/Processors/BlockquoteProcessor.js +61 -0
- package/Process/Processors/BlockquoteProcessor.js.map +1 -0
- package/Process/Processors/CalloutProcessor.d.ts +10 -0
- package/Process/Processors/CalloutProcessor.d.ts.map +1 -0
- package/Process/Processors/CalloutProcessor.js +44 -0
- package/Process/Processors/CalloutProcessor.js.map +1 -0
- package/Process/Processors/CodeBlockProcessor.d.ts +10 -0
- package/Process/Processors/CodeBlockProcessor.d.ts.map +1 -0
- package/Process/Processors/CodeBlockProcessor.js +46 -0
- package/Process/Processors/CodeBlockProcessor.js.map +1 -0
- package/Process/Processors/Interfaces/IProcessor.d.ts +9 -0
- package/Process/Processors/Interfaces/IProcessor.d.ts.map +1 -0
- package/Process/Processors/Interfaces/IProcessor.js +4 -0
- package/Process/Processors/Interfaces/IProcessor.js.map +1 -0
- package/Process/Processors/TabProcessor.d.ts +10 -0
- package/Process/Processors/TabProcessor.d.ts.map +1 -0
- package/Process/Processors/TabProcessor.js +59 -0
- package/Process/Processors/TabProcessor.js.map +1 -0
- package/Process/Processors/Utils.d.ts +6 -0
- package/Process/Processors/Utils.d.ts.map +1 -0
- package/Process/Processors/Utils.js +17 -0
- package/Process/Processors/Utils.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|