legal-markdown-js 0.1.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/LICENSE +21 -0
- package/README.md +168 -0
- package/dist/browser.d.ts +87 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +157 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli/index.d.ts +34 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +221 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/service.d.ts +128 -0
- package/dist/cli/service.d.ts.map +1 -0
- package/dist/cli/service.js +284 -0
- package/dist/cli/service.js.map +1 -0
- package/dist/constants/index.d.ts +229 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +232 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/core/exporters/metadata-exporter.d.ts +104 -0
- package/dist/core/exporters/metadata-exporter.d.ts.map +1 -0
- package/dist/core/exporters/metadata-exporter.js +201 -0
- package/dist/core/exporters/metadata-exporter.js.map +1 -0
- package/dist/core/index.d.ts +40 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +56 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/parsers/yaml-parser.d.ts +149 -0
- package/dist/core/parsers/yaml-parser.d.ts.map +1 -0
- package/dist/core/parsers/yaml-parser.js +321 -0
- package/dist/core/parsers/yaml-parser.js.map +1 -0
- package/dist/core/processors/clause-processor.d.ts +74 -0
- package/dist/core/processors/clause-processor.d.ts.map +1 -0
- package/dist/core/processors/clause-processor.js +213 -0
- package/dist/core/processors/clause-processor.js.map +1 -0
- package/dist/core/processors/date-processor.d.ts +90 -0
- package/dist/core/processors/date-processor.d.ts.map +1 -0
- package/dist/core/processors/date-processor.js +336 -0
- package/dist/core/processors/date-processor.js.map +1 -0
- package/dist/core/processors/header-processor.d.ts +104 -0
- package/dist/core/processors/header-processor.d.ts.map +1 -0
- package/dist/core/processors/header-processor.js +585 -0
- package/dist/core/processors/header-processor.js.map +1 -0
- package/dist/core/processors/import-processor.d.ts +116 -0
- package/dist/core/processors/import-processor.d.ts.map +1 -0
- package/dist/core/processors/import-processor.js +236 -0
- package/dist/core/processors/import-processor.js.map +1 -0
- package/dist/core/processors/mixin-processor.d.ts +93 -0
- package/dist/core/processors/mixin-processor.d.ts.map +1 -0
- package/dist/core/processors/mixin-processor.js +378 -0
- package/dist/core/processors/mixin-processor.js.map +1 -0
- package/dist/core/processors/reference-processor.d.ts +115 -0
- package/dist/core/processors/reference-processor.d.ts.map +1 -0
- package/dist/core/processors/reference-processor.js +273 -0
- package/dist/core/processors/reference-processor.js.map +1 -0
- package/dist/errors/index.d.ts +234 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +267 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/extensions/batch-processor.d.ts +197 -0
- package/dist/extensions/batch-processor.d.ts.map +1 -0
- package/dist/extensions/batch-processor.js +392 -0
- package/dist/extensions/batch-processor.js.map +1 -0
- package/dist/extensions/formatters/index.d.ts +99 -0
- package/dist/extensions/formatters/index.d.ts.map +1 -0
- package/dist/extensions/formatters/index.js +128 -0
- package/dist/extensions/formatters/index.js.map +1 -0
- package/dist/extensions/index.d.ts +53 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +71 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/latex-parser.d.ts +111 -0
- package/dist/extensions/latex-parser.d.ts.map +1 -0
- package/dist/extensions/latex-parser.js +563 -0
- package/dist/extensions/latex-parser.js.map +1 -0
- package/dist/extensions/rst-parser.d.ts +112 -0
- package/dist/extensions/rst-parser.d.ts.map +1 -0
- package/dist/extensions/rst-parser.js +268 -0
- package/dist/extensions/rst-parser.js.map +1 -0
- package/dist/extensions/template-loops.d.ts +61 -0
- package/dist/extensions/template-loops.d.ts.map +1 -0
- package/dist/extensions/template-loops.js +418 -0
- package/dist/extensions/template-loops.js.map +1 -0
- package/dist/extensions/utilities/index.d.ts +114 -0
- package/dist/extensions/utilities/index.d.ts.map +1 -0
- package/dist/extensions/utilities/index.js +137 -0
- package/dist/extensions/utilities/index.js.map +1 -0
- package/dist/extensions/validators/index.d.ts +65 -0
- package/dist/extensions/validators/index.d.ts.map +1 -0
- package/dist/extensions/validators/index.js +88 -0
- package/dist/extensions/validators/index.js.map +1 -0
- package/dist/generators/html-generator.d.ts +184 -0
- package/dist/generators/html-generator.d.ts.map +1 -0
- package/dist/generators/html-generator.js +361 -0
- package/dist/generators/html-generator.js.map +1 -0
- package/dist/generators/pdf-generator.d.ts +165 -0
- package/dist/generators/pdf-generator.d.ts.map +1 -0
- package/dist/generators/pdf-generator.js +275 -0
- package/dist/generators/pdf-generator.js.map +1 -0
- package/dist/helpers/date-helpers.d.ts +216 -0
- package/dist/helpers/date-helpers.d.ts.map +1 -0
- package/dist/helpers/date-helpers.js +402 -0
- package/dist/helpers/date-helpers.js.map +1 -0
- package/dist/helpers/index.d.ts +87 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +149 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/number-helpers.d.ts +269 -0
- package/dist/helpers/number-helpers.d.ts.map +1 -0
- package/dist/helpers/number-helpers.js +406 -0
- package/dist/helpers/number-helpers.js.map +1 -0
- package/dist/helpers/string-helpers.d.ts +391 -0
- package/dist/helpers/string-helpers.d.ts.map +1 -0
- package/dist/helpers/string-helpers.js +549 -0
- package/dist/helpers/string-helpers.js.map +1 -0
- package/dist/index.d.ts +229 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +384 -0
- package/dist/index.js.map +1 -0
- package/dist/legal-markdown.umd.min.js +2 -0
- package/dist/legal-markdown.umd.min.js.LICENSE.txt +14 -0
- package/dist/legal-markdown.umd.min.js.map +1 -0
- package/dist/lib/index.d.ts +150 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +265 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/parsers/content-detector.d.ts +131 -0
- package/dist/parsers/content-detector.d.ts.map +1 -0
- package/dist/parsers/content-detector.js +220 -0
- package/dist/parsers/content-detector.js.map +1 -0
- package/dist/parsers/fallback-parsers.d.ts +14 -0
- package/dist/parsers/fallback-parsers.d.ts.map +1 -0
- package/dist/parsers/fallback-parsers.js +188 -0
- package/dist/parsers/fallback-parsers.js.map +1 -0
- package/dist/parsers/implementations/pandoc-native.d.ts +13 -0
- package/dist/parsers/implementations/pandoc-native.d.ts.map +1 -0
- package/dist/parsers/implementations/pandoc-native.js +63 -0
- package/dist/parsers/implementations/pandoc-native.js.map +1 -0
- package/dist/parsers/implementations/pandoc-wasm.d.ts +14 -0
- package/dist/parsers/implementations/pandoc-wasm.d.ts.map +1 -0
- package/dist/parsers/implementations/pandoc-wasm.js +64 -0
- package/dist/parsers/implementations/pandoc-wasm.js.map +1 -0
- package/dist/parsers/pandoc-factory.d.ts +97 -0
- package/dist/parsers/pandoc-factory.d.ts.map +1 -0
- package/dist/parsers/pandoc-factory.js +146 -0
- package/dist/parsers/pandoc-factory.js.map +1 -0
- package/dist/parsers/pandoc-loader.d.ts +24 -0
- package/dist/parsers/pandoc-loader.d.ts.map +1 -0
- package/dist/parsers/pandoc-loader.js +124 -0
- package/dist/parsers/pandoc-loader.js.map +1 -0
- package/dist/parsers/pandoc-parser.d.ts +27 -0
- package/dist/parsers/pandoc-parser.d.ts.map +1 -0
- package/dist/parsers/pandoc-parser.js +3 -0
- package/dist/parsers/pandoc-parser.js.map +1 -0
- package/dist/styles/default.css +125 -0
- package/dist/styles/headers.css +146 -0
- package/dist/styles/highlight.css +171 -0
- package/dist/tracking/field-tracker.d.ts +206 -0
- package/dist/tracking/field-tracker.d.ts.map +1 -0
- package/dist/tracking/field-tracker.js +247 -0
- package/dist/tracking/field-tracker.js.map +1 -0
- package/dist/types.d.ts +186 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +33 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/logger.d.ts +107 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +122 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/web/bundle-standalone.js +28 -0
- package/dist/web/bundle.js +17 -0
- package/dist/web/index.html +1465 -0
- package/dist/web/legal-markdown.umd.min.js +2 -0
- package/dist/web/standalone.html +390 -0
- package/dist/web/styles.css +874 -0
- package/package.json +118 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { PandocParser, PandocOptions } from './pandoc-parser';
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Pandoc Parser Factory for Cross-Platform Document Processing
|
|
4
|
+
*
|
|
5
|
+
* This module provides a factory pattern implementation for creating appropriate
|
|
6
|
+
* Pandoc parser instances based on the runtime environment. It automatically
|
|
7
|
+
* selects between native Pandoc (Node.js) and WASM-based Pandoc (browser)
|
|
8
|
+
* implementations to enable document conversion across platforms.
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Environment-aware parser selection (Node.js vs Browser)
|
|
12
|
+
* - Native Pandoc integration for server-side processing
|
|
13
|
+
* - WASM Pandoc support for client-side processing
|
|
14
|
+
* - Graceful fallback handling when Pandoc is unavailable
|
|
15
|
+
* - Lazy loading of WASM modules for performance
|
|
16
|
+
* - Unified interface across different implementations
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { PandocFactory } from './pandoc-factory';
|
|
21
|
+
*
|
|
22
|
+
* // Create a parser instance appropriate for the environment
|
|
23
|
+
* const parser = await PandocFactory.create({
|
|
24
|
+
* from: 'rst',
|
|
25
|
+
* to: 'json'
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* if (parser) {
|
|
29
|
+
* const result = await parser.parse(content);
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Factory class for creating appropriate Pandoc parser instances
|
|
35
|
+
*
|
|
36
|
+
* Provides static methods to create Pandoc parser instances based on the
|
|
37
|
+
* runtime environment, automatically choosing between native and WASM
|
|
38
|
+
* implementations for optimal performance and compatibility.
|
|
39
|
+
*
|
|
40
|
+
* @class PandocFactory
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* // Server-side usage (Node.js)
|
|
44
|
+
* const nodeParser = await PandocFactory.create({ from: 'latex' });
|
|
45
|
+
*
|
|
46
|
+
* // Client-side usage (Browser)
|
|
47
|
+
* const wasmParser = await PandocFactory.create({ from: 'rst' });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare class PandocFactory {
|
|
51
|
+
/**
|
|
52
|
+
* Creates a Pandoc parser instance based on the runtime environment
|
|
53
|
+
*
|
|
54
|
+
* Automatically selects the appropriate implementation:
|
|
55
|
+
* - Node.js: Uses native Pandoc binary via child process
|
|
56
|
+
* - Browser: Uses Pandoc WASM module for client-side processing
|
|
57
|
+
* Returns null if no suitable parser can be created.
|
|
58
|
+
*
|
|
59
|
+
* @static
|
|
60
|
+
* @async
|
|
61
|
+
* @param {PandocOptions} [options={}] - Configuration options for the parser
|
|
62
|
+
* @returns {Promise<PandocParser | null>} A promise that resolves to a parser instance or null
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* // Create parser for RST to JSON conversion
|
|
66
|
+
* const parser = await PandocFactory.create({
|
|
67
|
+
* from: 'rst',
|
|
68
|
+
* to: 'json'
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* if (parser) {
|
|
72
|
+
* const ast = await parser.parse(rstContent);
|
|
73
|
+
* console.log('Parsed AST:', ast);
|
|
74
|
+
* } else {
|
|
75
|
+
* console.log('Pandoc not available in this environment');
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
static create(options?: PandocOptions): Promise<PandocParser | null>;
|
|
80
|
+
/**
|
|
81
|
+
* Create parser for specific content if pandoc is available
|
|
82
|
+
*/
|
|
83
|
+
static createForContent(content: string, options?: PandocOptions): Promise<PandocParser | null>;
|
|
84
|
+
/**
|
|
85
|
+
* Check if pandoc is available in current environment
|
|
86
|
+
*/
|
|
87
|
+
static isAvailable(): Promise<boolean>;
|
|
88
|
+
/**
|
|
89
|
+
* Get environment info for debugging
|
|
90
|
+
*/
|
|
91
|
+
static getEnvironmentInfo(): {
|
|
92
|
+
environment: 'node' | 'browser';
|
|
93
|
+
pandocWasmLoaded: boolean;
|
|
94
|
+
pandocWasmInstance: any;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=pandoc-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pandoc-factory.d.ts","sourceRoot":"","sources":["../../src/parsers/pandoc-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAK9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa;IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;WACU,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAwB9E;;OAEG;WACU,gBAAgB,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAW/B;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS5C;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI;QAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,gBAAgB,EAAE,OAAO,CAAC;QAC1B,kBAAkB,EAAE,GAAG,CAAC;KACzB;CAWF"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PandocFactory = void 0;
|
|
4
|
+
const pandoc_loader_1 = require("./pandoc-loader");
|
|
5
|
+
const pandoc_native_1 = require("./implementations/pandoc-native");
|
|
6
|
+
const pandoc_wasm_1 = require("./implementations/pandoc-wasm");
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview Pandoc Parser Factory for Cross-Platform Document Processing
|
|
9
|
+
*
|
|
10
|
+
* This module provides a factory pattern implementation for creating appropriate
|
|
11
|
+
* Pandoc parser instances based on the runtime environment. It automatically
|
|
12
|
+
* selects between native Pandoc (Node.js) and WASM-based Pandoc (browser)
|
|
13
|
+
* implementations to enable document conversion across platforms.
|
|
14
|
+
*
|
|
15
|
+
* Features:
|
|
16
|
+
* - Environment-aware parser selection (Node.js vs Browser)
|
|
17
|
+
* - Native Pandoc integration for server-side processing
|
|
18
|
+
* - WASM Pandoc support for client-side processing
|
|
19
|
+
* - Graceful fallback handling when Pandoc is unavailable
|
|
20
|
+
* - Lazy loading of WASM modules for performance
|
|
21
|
+
* - Unified interface across different implementations
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { PandocFactory } from './pandoc-factory';
|
|
26
|
+
*
|
|
27
|
+
* // Create a parser instance appropriate for the environment
|
|
28
|
+
* const parser = await PandocFactory.create({
|
|
29
|
+
* from: 'rst',
|
|
30
|
+
* to: 'json'
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* if (parser) {
|
|
34
|
+
* const result = await parser.parse(content);
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* Factory class for creating appropriate Pandoc parser instances
|
|
40
|
+
*
|
|
41
|
+
* Provides static methods to create Pandoc parser instances based on the
|
|
42
|
+
* runtime environment, automatically choosing between native and WASM
|
|
43
|
+
* implementations for optimal performance and compatibility.
|
|
44
|
+
*
|
|
45
|
+
* @class PandocFactory
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* // Server-side usage (Node.js)
|
|
49
|
+
* const nodeParser = await PandocFactory.create({ from: 'latex' });
|
|
50
|
+
*
|
|
51
|
+
* // Client-side usage (Browser)
|
|
52
|
+
* const wasmParser = await PandocFactory.create({ from: 'rst' });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
class PandocFactory {
|
|
56
|
+
/**
|
|
57
|
+
* Creates a Pandoc parser instance based on the runtime environment
|
|
58
|
+
*
|
|
59
|
+
* Automatically selects the appropriate implementation:
|
|
60
|
+
* - Node.js: Uses native Pandoc binary via child process
|
|
61
|
+
* - Browser: Uses Pandoc WASM module for client-side processing
|
|
62
|
+
* Returns null if no suitable parser can be created.
|
|
63
|
+
*
|
|
64
|
+
* @static
|
|
65
|
+
* @async
|
|
66
|
+
* @param {PandocOptions} [options={}] - Configuration options for the parser
|
|
67
|
+
* @returns {Promise<PandocParser | null>} A promise that resolves to a parser instance or null
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* // Create parser for RST to JSON conversion
|
|
71
|
+
* const parser = await PandocFactory.create({
|
|
72
|
+
* from: 'rst',
|
|
73
|
+
* to: 'json'
|
|
74
|
+
* });
|
|
75
|
+
*
|
|
76
|
+
* if (parser) {
|
|
77
|
+
* const ast = await parser.parse(rstContent);
|
|
78
|
+
* console.log('Parsed AST:', ast);
|
|
79
|
+
* } else {
|
|
80
|
+
* console.log('Pandoc not available in this environment');
|
|
81
|
+
* }
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
static async create(options = {}) {
|
|
85
|
+
if (typeof window === 'undefined') {
|
|
86
|
+
// Node.js environment - use native pandoc
|
|
87
|
+
return new pandoc_native_1.PandocNative(options);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// Browser environment - try to load pandoc-wasm
|
|
91
|
+
const pandocWasm = pandoc_loader_1.PandocLoader.getPandocWasm();
|
|
92
|
+
if (pandocWasm) {
|
|
93
|
+
return new pandoc_wasm_1.PandocWasm(pandocWasm, options);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// Try to load pandoc-wasm if not already loaded
|
|
97
|
+
const loaded = await pandoc_loader_1.PandocLoader.loadIfNeeded('# dummy content to trigger loading');
|
|
98
|
+
if (loaded) {
|
|
99
|
+
const wasmInstance = pandoc_loader_1.PandocLoader.getPandocWasm();
|
|
100
|
+
if (wasmInstance) {
|
|
101
|
+
return new pandoc_wasm_1.PandocWasm(wasmInstance, options);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create parser for specific content if pandoc is available
|
|
110
|
+
*/
|
|
111
|
+
static async createForContent(content, options = {}) {
|
|
112
|
+
// Try to load pandoc only if content needs it
|
|
113
|
+
const loaded = await pandoc_loader_1.PandocLoader.loadIfNeeded(content);
|
|
114
|
+
if (!loaded) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return this.create(options);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Check if pandoc is available in current environment
|
|
121
|
+
*/
|
|
122
|
+
static async isAvailable() {
|
|
123
|
+
try {
|
|
124
|
+
const parser = await this.create();
|
|
125
|
+
return parser !== null;
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get environment info for debugging
|
|
133
|
+
*/
|
|
134
|
+
static getEnvironmentInfo() {
|
|
135
|
+
const environment = typeof window === 'undefined' ? 'node' : 'browser';
|
|
136
|
+
const pandocWasmInstance = pandoc_loader_1.PandocLoader.getPandocWasm();
|
|
137
|
+
const pandocWasmLoaded = pandocWasmInstance !== null;
|
|
138
|
+
return {
|
|
139
|
+
environment,
|
|
140
|
+
pandocWasmLoaded,
|
|
141
|
+
pandocWasmInstance,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.PandocFactory = PandocFactory;
|
|
146
|
+
//# sourceMappingURL=pandoc-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pandoc-factory.js","sourceRoot":"","sources":["../../src/parsers/pandoc-factory.ts"],"names":[],"mappings":";;;AACA,mDAA+C;AAC/C,mEAA+D;AAC/D,+DAA2D;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,aAAa;IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAyB,EAAE;QAC7C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,0CAA0C;YAC1C,OAAO,IAAI,4BAAY,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,gDAAgD;YAChD,MAAM,UAAU,GAAG,4BAAY,CAAC,aAAa,EAAE,CAAC;YAEhD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,IAAI,wBAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,MAAM,MAAM,GAAG,MAAM,4BAAY,CAAC,YAAY,CAAC,oCAAoC,CAAC,CAAC;gBACrF,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,YAAY,GAAG,4BAAY,CAAC,aAAa,EAAE,CAAC;oBAClD,IAAI,YAAY,EAAE,CAAC;wBACjB,OAAO,IAAI,wBAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,OAAe,EACf,UAAyB,EAAE;QAE3B,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM,4BAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO,MAAM,KAAK,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB;QAKvB,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,MAAM,kBAAkB,GAAG,4BAAY,CAAC,aAAa,EAAE,CAAC;QACxD,MAAM,gBAAgB,GAAG,kBAAkB,KAAK,IAAI,CAAC;QAErD,OAAO;YACL,WAAW;YACX,gBAAgB;YAChB,kBAAkB;SACnB,CAAC;IACJ,CAAC;CACF;AApGD,sCAoGC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic pandoc loader with conditional loading
|
|
3
|
+
*/
|
|
4
|
+
export declare class PandocLoader {
|
|
5
|
+
private static pandocWasm;
|
|
6
|
+
private static loadingPromise;
|
|
7
|
+
/**
|
|
8
|
+
* Loads pandoc only if content needs it
|
|
9
|
+
*/
|
|
10
|
+
static loadIfNeeded(content: string): Promise<boolean>;
|
|
11
|
+
/**
|
|
12
|
+
* Get loaded pandoc instance
|
|
13
|
+
*/
|
|
14
|
+
static getPandocWasm(): any;
|
|
15
|
+
/**
|
|
16
|
+
* Load pandoc-wasm module
|
|
17
|
+
*/
|
|
18
|
+
private static loadPandocWasm;
|
|
19
|
+
/**
|
|
20
|
+
* Reset loader state (mainly for testing)
|
|
21
|
+
*/
|
|
22
|
+
static reset(): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=pandoc-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pandoc-loader.d.ts","sourceRoot":"","sources":["../../src/parsers/pandoc-loader.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAa;IACtC,OAAO,CAAC,MAAM,CAAC,cAAc,CAA6B;IAE1D;;OAEG;WACU,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuC5D;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,GAAG;IAI3B;;OAEG;mBACkB,cAAc;IAuBnC;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAIrB"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.PandocLoader = void 0;
|
|
37
|
+
const content_detector_1 = require("./content-detector");
|
|
38
|
+
/**
|
|
39
|
+
* Dynamic pandoc loader with conditional loading
|
|
40
|
+
*/
|
|
41
|
+
class PandocLoader {
|
|
42
|
+
/**
|
|
43
|
+
* Loads pandoc only if content needs it
|
|
44
|
+
*/
|
|
45
|
+
static async loadIfNeeded(content) {
|
|
46
|
+
if (!content_detector_1.ContentDetector.needsPandoc(content)) {
|
|
47
|
+
return false; // No necesita pandoc
|
|
48
|
+
}
|
|
49
|
+
if (typeof window === 'undefined') {
|
|
50
|
+
// Node.js environment - assume pandoc is available
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
// Browser environment - load pandoc-wasm
|
|
54
|
+
if (this.pandocWasm) {
|
|
55
|
+
return true; // Already loaded
|
|
56
|
+
}
|
|
57
|
+
if (this.loadingPromise) {
|
|
58
|
+
// Loading in progress, wait for it
|
|
59
|
+
try {
|
|
60
|
+
await this.loadingPromise;
|
|
61
|
+
return this.pandocWasm !== null;
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Start loading
|
|
68
|
+
this.loadingPromise = this.loadPandocWasm();
|
|
69
|
+
try {
|
|
70
|
+
this.pandocWasm = await this.loadingPromise;
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
console.warn('Failed to load pandoc-wasm:', error);
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
this.loadingPromise = null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get loaded pandoc instance
|
|
83
|
+
*/
|
|
84
|
+
static getPandocWasm() {
|
|
85
|
+
return this.pandocWasm;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Load pandoc-wasm module
|
|
89
|
+
*/
|
|
90
|
+
static async loadPandocWasm() {
|
|
91
|
+
try {
|
|
92
|
+
// Dynamic import for pandoc-wasm
|
|
93
|
+
const pandocModule = await Promise.resolve().then(() => __importStar(require('pandoc-wasm')));
|
|
94
|
+
// Initialize pandoc-wasm - different pandoc-wasm versions have different APIs
|
|
95
|
+
if (typeof pandocModule.init === 'function') {
|
|
96
|
+
return await pandocModule.init();
|
|
97
|
+
}
|
|
98
|
+
else if (typeof pandocModule.default === 'function') {
|
|
99
|
+
return await pandocModule.default();
|
|
100
|
+
}
|
|
101
|
+
else if (typeof pandocModule.default === 'object' &&
|
|
102
|
+
pandocModule.default.convert) {
|
|
103
|
+
return pandocModule.default;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
return pandocModule;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
throw new Error(`Failed to load pandoc-wasm: ${error.message}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Reset loader state (mainly for testing)
|
|
115
|
+
*/
|
|
116
|
+
static reset() {
|
|
117
|
+
this.pandocWasm = null;
|
|
118
|
+
this.loadingPromise = null;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.PandocLoader = PandocLoader;
|
|
122
|
+
PandocLoader.pandocWasm = null;
|
|
123
|
+
PandocLoader.loadingPromise = null;
|
|
124
|
+
//# sourceMappingURL=pandoc-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pandoc-loader.js","sourceRoot":"","sources":["../../src/parsers/pandoc-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAqD;AAErD;;GAEG;AACH,MAAa,YAAY;IAIvB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,OAAe;QACvC,IAAI,CAAC,kCAAe,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,CAAC,qBAAqB;QACrC,CAAC;QAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,mDAAmD;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yCAAyC;QACzC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,CAAC,iBAAiB;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,mCAAmC;YACnC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,CAAC;gBAC1B,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5C,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,cAAc;QACjC,IAAI,CAAC;YACH,iCAAiC;YACjC,MAAM,YAAY,GAAG,wDAAa,aAAa,GAAC,CAAC;YAEjD,8EAA8E;YAC9E,IAAI,OAAQ,YAAoB,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACrD,OAAO,MAAO,YAAoB,CAAC,IAAI,EAAE,CAAC;YAC5C,CAAC;iBAAM,IAAI,OAAQ,YAAoB,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC/D,OAAO,MAAO,YAAoB,CAAC,OAAO,EAAE,CAAC;YAC/C,CAAC;iBAAM,IACL,OAAQ,YAAoB,CAAC,OAAO,KAAK,QAAQ;gBAChD,YAAoB,CAAC,OAAO,CAAC,OAAO,EACrC,CAAC;gBACD,OAAQ,YAAoB,CAAC,OAAO,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;;AArFH,oCAsFC;AArFgB,uBAAU,GAAQ,IAAI,CAAC;AACvB,2BAAc,GAAwB,IAAI,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common interface for pandoc parsers
|
|
3
|
+
*/
|
|
4
|
+
export interface PandocParser {
|
|
5
|
+
/**
|
|
6
|
+
* Convert content from one format to another
|
|
7
|
+
*/
|
|
8
|
+
convert(content: string, from: 'rst' | 'latex', to: 'markdown'): Promise<string>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Parser configuration options
|
|
12
|
+
*/
|
|
13
|
+
export interface PandocOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Additional pandoc arguments
|
|
16
|
+
*/
|
|
17
|
+
args?: string[];
|
|
18
|
+
/**
|
|
19
|
+
* Timeout for conversion in milliseconds
|
|
20
|
+
*/
|
|
21
|
+
timeout?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Enable verbose output
|
|
24
|
+
*/
|
|
25
|
+
verbose?: boolean;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=pandoc-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pandoc-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/pandoc-parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAClF;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pandoc-parser.js","sourceRoot":"","sources":["../../src/parsers/pandoc-parser.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/* Default CSS for Legal Markdown HTML Generation */
|
|
2
|
+
|
|
3
|
+
/* Base styles */
|
|
4
|
+
body {
|
|
5
|
+
font-family: -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
6
|
+
line-height: 1.6;
|
|
7
|
+
color: #333;
|
|
8
|
+
max-width: 800px;
|
|
9
|
+
margin: 0 auto;
|
|
10
|
+
padding: 20px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* Print styles */
|
|
14
|
+
@media print {
|
|
15
|
+
body {
|
|
16
|
+
max-width: 100%;
|
|
17
|
+
margin: 0;
|
|
18
|
+
padding: 0;
|
|
19
|
+
}
|
|
20
|
+
.no-break {
|
|
21
|
+
page-break-inside: avoid;
|
|
22
|
+
}
|
|
23
|
+
.page-break-before {
|
|
24
|
+
page-break-before: always;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Table responsiveness */
|
|
29
|
+
.table-responsive {
|
|
30
|
+
overflow-x: auto;
|
|
31
|
+
-webkit-overflow-scrolling: touch;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
table {
|
|
35
|
+
border-collapse: collapse;
|
|
36
|
+
width: 100%;
|
|
37
|
+
margin: 1em 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
th,
|
|
41
|
+
td {
|
|
42
|
+
border: 1px solid #ddd;
|
|
43
|
+
padding: 8px;
|
|
44
|
+
text-align: left;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
th {
|
|
48
|
+
background-color: #f5f5f5;
|
|
49
|
+
font-weight: bold;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Code blocks */
|
|
53
|
+
pre {
|
|
54
|
+
background-color: #f5f5f5;
|
|
55
|
+
padding: 1em;
|
|
56
|
+
border-radius: 4px;
|
|
57
|
+
overflow-x: auto;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
code {
|
|
61
|
+
background-color: #f5f5f5;
|
|
62
|
+
padding: 0.2em 0.4em;
|
|
63
|
+
border-radius: 3px;
|
|
64
|
+
font-size: 0.9em;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* Lists */
|
|
68
|
+
ul,
|
|
69
|
+
ol {
|
|
70
|
+
margin: 1em 0;
|
|
71
|
+
padding-left: 2em;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Links */
|
|
75
|
+
a {
|
|
76
|
+
color: #0066cc;
|
|
77
|
+
text-decoration: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
a:hover {
|
|
81
|
+
text-decoration: underline;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* Headings */
|
|
85
|
+
h1,
|
|
86
|
+
h2,
|
|
87
|
+
h3,
|
|
88
|
+
h4,
|
|
89
|
+
h5,
|
|
90
|
+
h6,
|
|
91
|
+
.legal-header-level-1,
|
|
92
|
+
.legal-header-level-2,
|
|
93
|
+
.legal-header-level-3,
|
|
94
|
+
.legal-header-level-4,
|
|
95
|
+
.legal-header-level-5,
|
|
96
|
+
.legal-header-level-6 {
|
|
97
|
+
margin-top: 1.5em;
|
|
98
|
+
margin-bottom: 0.5em;
|
|
99
|
+
font-weight: 600;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
h1,
|
|
103
|
+
.legal-header-level-1 {
|
|
104
|
+
font-size: 2em;
|
|
105
|
+
}
|
|
106
|
+
h2,
|
|
107
|
+
.legal-header-level-2 {
|
|
108
|
+
font-size: 1.5em;
|
|
109
|
+
}
|
|
110
|
+
h3,
|
|
111
|
+
.legal-header-level-3 {
|
|
112
|
+
font-size: 1.25em;
|
|
113
|
+
}
|
|
114
|
+
h4,
|
|
115
|
+
.legal-header-level-4 {
|
|
116
|
+
font-size: 1.1em;
|
|
117
|
+
}
|
|
118
|
+
h5,
|
|
119
|
+
.legal-header-level-5 {
|
|
120
|
+
font-size: 1em;
|
|
121
|
+
}
|
|
122
|
+
h6,
|
|
123
|
+
.legal-header-level-6 {
|
|
124
|
+
font-size: 0.9em;
|
|
125
|
+
}
|