quikdown 1.1.0 → 1.2.2
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/README.md +46 -6
- package/dist/quikdown.cjs +5 -5
- package/dist/quikdown.dark.css +1 -1
- package/dist/quikdown.esm.js +5 -5
- package/dist/quikdown.esm.min.js +2 -2
- package/dist/quikdown.esm.min.js.map +1 -1
- package/dist/quikdown.light.css +1 -1
- package/dist/quikdown.umd.js +5 -5
- package/dist/quikdown.umd.min.js +2 -2
- package/dist/quikdown.umd.min.js.map +1 -1
- package/dist/quikdown_ast.cjs +513 -0
- package/dist/quikdown_ast.d.ts +227 -0
- package/dist/quikdown_ast.esm.js +511 -0
- package/dist/quikdown_ast.esm.min.js +8 -0
- package/dist/quikdown_ast.esm.min.js.map +1 -0
- package/dist/quikdown_ast.umd.js +519 -0
- package/dist/quikdown_ast.umd.min.js +8 -0
- package/dist/quikdown_ast.umd.min.js.map +1 -0
- package/dist/quikdown_ast_html.cjs +1058 -0
- package/dist/quikdown_ast_html.d.ts +68 -0
- package/dist/quikdown_ast_html.esm.js +1056 -0
- package/dist/quikdown_ast_html.esm.min.js +8 -0
- package/dist/quikdown_ast_html.esm.min.js.map +1 -0
- package/dist/quikdown_ast_html.umd.js +1064 -0
- package/dist/quikdown_ast_html.umd.min.js +8 -0
- package/dist/quikdown_ast_html.umd.min.js.map +1 -0
- package/dist/quikdown_bd.cjs +12 -12
- package/dist/quikdown_bd.esm.js +12 -12
- package/dist/quikdown_bd.esm.min.js +2 -2
- package/dist/quikdown_bd.esm.min.js.map +1 -1
- package/dist/quikdown_bd.umd.js +12 -12
- package/dist/quikdown_bd.umd.min.js +2 -2
- package/dist/quikdown_bd.umd.min.js.map +1 -1
- package/dist/quikdown_edit.cjs +2297 -136
- package/dist/quikdown_edit.d.ts +110 -132
- package/dist/quikdown_edit.esm.js +2297 -136
- package/dist/quikdown_edit.esm.min.js +3 -4
- package/dist/quikdown_edit.esm.min.js.map +1 -1
- package/dist/quikdown_edit.umd.js +2298 -137
- package/dist/quikdown_edit.umd.min.js +3 -4
- package/dist/quikdown_edit.umd.min.js.map +1 -1
- package/dist/quikdown_json.cjs +556 -0
- package/dist/quikdown_json.d.ts +48 -0
- package/dist/quikdown_json.esm.js +554 -0
- package/dist/quikdown_json.esm.min.js +8 -0
- package/dist/quikdown_json.esm.min.js.map +1 -0
- package/dist/quikdown_json.umd.js +562 -0
- package/dist/quikdown_json.umd.min.js +8 -0
- package/dist/quikdown_json.umd.min.js.map +1 -0
- package/dist/quikdown_yaml.cjs +717 -0
- package/dist/quikdown_yaml.d.ts +51 -0
- package/dist/quikdown_yaml.esm.js +715 -0
- package/dist/quikdown_yaml.esm.min.js +8 -0
- package/dist/quikdown_yaml.esm.min.js.map +1 -0
- package/dist/quikdown_yaml.umd.js +723 -0
- package/dist/quikdown_yaml.umd.min.js +8 -0
- package/dist/quikdown_yaml.umd.min.js.map +1 -0
- package/package.json +92 -39
package/dist/quikdown_edit.d.ts
CHANGED
|
@@ -8,188 +8,166 @@ declare module 'quikdown/edit' {
|
|
|
8
8
|
* Options for configuring the QuikdownEditor
|
|
9
9
|
*/
|
|
10
10
|
export interface QuikdownEditorOptions {
|
|
11
|
-
/**
|
|
12
|
-
* Initial view mode
|
|
13
|
-
* @default 'split'
|
|
14
|
-
*/
|
|
11
|
+
/** Initial view mode @default 'split' */
|
|
15
12
|
mode?: 'source' | 'split' | 'preview';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Theme setting
|
|
19
|
-
* @default 'auto'
|
|
20
|
-
*/
|
|
13
|
+
/** Theme setting @default 'auto' */
|
|
21
14
|
theme?: 'light' | 'dark' | 'auto';
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Show/hide the toolbar
|
|
25
|
-
* @default true
|
|
26
|
-
*/
|
|
15
|
+
/** Show/hide the toolbar @default true */
|
|
27
16
|
showToolbar?: boolean;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
/** Show "Remove HR" toolbar button @default false */
|
|
18
|
+
showRemoveHR?: boolean;
|
|
19
|
+
/** Show "Fix Linefeeds" toolbar button @default false */
|
|
20
|
+
showLazyLinefeeds?: boolean;
|
|
21
|
+
/** Show undo/redo toolbar buttons @default false */
|
|
22
|
+
showUndoRedo?: boolean;
|
|
23
|
+
/** Enable lazy linefeeds (single \n becomes <br>) @default false */
|
|
33
24
|
lazy_linefeeds?: boolean;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
* @default 100
|
|
38
|
-
*/
|
|
25
|
+
/** Use inline styles instead of CSS classes @default false */
|
|
26
|
+
inline_styles?: boolean;
|
|
27
|
+
/** Debounce delay for updates in ms @default 20 */
|
|
39
28
|
debounceDelay?: number;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Placeholder text for empty editor
|
|
43
|
-
* @default 'Start typing markdown...'
|
|
44
|
-
*/
|
|
29
|
+
/** Placeholder text for empty editor */
|
|
45
30
|
placeholder?: string;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Initial markdown content
|
|
49
|
-
*/
|
|
31
|
+
/** Initial markdown content */
|
|
50
32
|
initialContent?: string;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
33
|
+
/** Maximum number of undo states to keep @default 100 */
|
|
34
|
+
undoStackSize?: number;
|
|
35
|
+
/** Enable complex fences (CSV, math, SVG, etc.) @default true */
|
|
36
|
+
enableComplexFences?: boolean;
|
|
37
|
+
/** Plugin configuration */
|
|
55
38
|
plugins?: {
|
|
56
39
|
/** Enable Highlight.js for syntax highlighting */
|
|
57
40
|
highlightjs?: boolean;
|
|
58
41
|
/** Enable Mermaid for diagrams */
|
|
59
42
|
mermaid?: boolean;
|
|
60
43
|
};
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Custom fence handlers
|
|
64
|
-
* Maps language identifiers to render functions
|
|
65
|
-
*/
|
|
44
|
+
/** Custom fence handlers keyed by language */
|
|
66
45
|
customFences?: {
|
|
67
46
|
[language: string]: (code: string, lang: string) => string;
|
|
68
47
|
};
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Callback fired when content changes
|
|
72
|
-
* @param markdown - Current markdown content
|
|
73
|
-
* @param html - Rendered HTML
|
|
74
|
-
*/
|
|
48
|
+
/** Callback fired when content changes */
|
|
75
49
|
onChange?: (markdown: string, html: string) => void;
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Callback fired when view mode changes
|
|
79
|
-
* @param mode - New view mode
|
|
80
|
-
*/
|
|
50
|
+
/** Callback fired when view mode changes */
|
|
81
51
|
onModeChange?: (mode: 'source' | 'split' | 'preview') => void;
|
|
82
52
|
}
|
|
83
53
|
|
|
84
54
|
/**
|
|
85
55
|
* QuikdownEditor class - Drop-in markdown editor control
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* import QuikdownEditor from 'quikdown/edit';
|
|
60
|
+
*
|
|
61
|
+
* const editor = new QuikdownEditor('#editor', {
|
|
62
|
+
* mode: 'split',
|
|
63
|
+
* showUndoRedo: true,
|
|
64
|
+
* showRemoveHR: true,
|
|
65
|
+
* onChange: (md, html) => console.log('Changed:', md.length)
|
|
66
|
+
* });
|
|
67
|
+
*
|
|
68
|
+
* editor.setMarkdown('# Hello\n\nWorld');
|
|
69
|
+
* editor.undo();
|
|
70
|
+
* editor.redo();
|
|
71
|
+
* ```
|
|
86
72
|
*/
|
|
87
73
|
export class QuikdownEditor {
|
|
88
|
-
/**
|
|
89
|
-
* Create a new QuikdownEditor instance
|
|
90
|
-
* @param container - DOM element or CSS selector for the container
|
|
91
|
-
* @param options - Editor configuration options
|
|
92
|
-
*/
|
|
93
74
|
constructor(container: HTMLElement | string, options?: QuikdownEditorOptions);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
* Get current markdown content
|
|
97
|
-
*/
|
|
75
|
+
|
|
76
|
+
// --- Properties ---
|
|
98
77
|
get markdown(): string;
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Set markdown content
|
|
102
|
-
*/
|
|
103
78
|
set markdown(value: string);
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Get rendered HTML (read-only)
|
|
107
|
-
*/
|
|
108
79
|
get html(): string;
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Get current view mode (read-only)
|
|
112
|
-
*/
|
|
113
80
|
get mode(): 'source' | 'split' | 'preview';
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
* @param markdown - Markdown text to set
|
|
118
|
-
*/
|
|
119
|
-
setMarkdown(markdown: string): void;
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Get current markdown content
|
|
123
|
-
* @returns Current markdown text
|
|
124
|
-
*/
|
|
81
|
+
|
|
82
|
+
// --- Content ---
|
|
83
|
+
setMarkdown(markdown: string): Promise<void>;
|
|
125
84
|
getMarkdown(): string;
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Get rendered HTML
|
|
129
|
-
* @returns Rendered HTML
|
|
130
|
-
*/
|
|
131
85
|
getHTML(): string;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
* Change view mode
|
|
135
|
-
* @param mode - New view mode
|
|
136
|
-
*/
|
|
86
|
+
|
|
87
|
+
// --- View ---
|
|
137
88
|
setMode(mode: 'source' | 'split' | 'preview'): void;
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Enable/disable lazy linefeeds
|
|
141
|
-
* @param enabled - Whether to enable lazy linefeeds
|
|
142
|
-
*/
|
|
143
89
|
setLazyLinefeeds(enabled: boolean): void;
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Get lazy linefeeds setting
|
|
147
|
-
* @returns Current lazy linefeeds setting
|
|
148
|
-
*/
|
|
149
90
|
getLazyLinefeeds(): boolean;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
91
|
+
setDebounceDelay(delay: number): void;
|
|
92
|
+
getDebounceDelay(): number;
|
|
93
|
+
/** Change theme at runtime */
|
|
94
|
+
setTheme(theme: 'light' | 'dark' | 'auto'): void;
|
|
95
|
+
/** Get the currently configured theme */
|
|
96
|
+
getTheme(): 'light' | 'dark' | 'auto';
|
|
97
|
+
|
|
98
|
+
// --- Undo / Redo ---
|
|
99
|
+
/** Undo the last edit */
|
|
100
|
+
undo(): Promise<void>;
|
|
101
|
+
/** Redo the last undone edit */
|
|
102
|
+
redo(): Promise<void>;
|
|
103
|
+
/** Whether undo is available */
|
|
104
|
+
canUndo(): boolean;
|
|
105
|
+
/** Whether redo is available */
|
|
106
|
+
canRedo(): boolean;
|
|
107
|
+
/** Clear the undo/redo history */
|
|
108
|
+
clearHistory(): void;
|
|
109
|
+
|
|
110
|
+
// --- HR Removal ---
|
|
111
|
+
/** Remove all horizontal rules from the current markdown (fence/table-safe) */
|
|
112
|
+
removeHR(): Promise<void>;
|
|
113
|
+
|
|
114
|
+
// --- Lazy Linefeed Conversion ---
|
|
115
|
+
/** One-time transform: convert single newlines to paragraph breaks (idempotent) */
|
|
116
|
+
convertLazyLinefeeds(): Promise<void>;
|
|
117
|
+
|
|
118
|
+
// --- Static utilities (headless — no editor instance needed) ---
|
|
119
|
+
/** Remove HRs from markdown string (fence/table-safe) */
|
|
120
|
+
static removeHRFromMarkdown(markdown: string): string;
|
|
121
|
+
/** Convert lazy linefeeds in markdown string (idempotent) */
|
|
122
|
+
static convertLazyLinefeeds(markdown: string): string;
|
|
123
|
+
|
|
124
|
+
// --- Clipboard ---
|
|
125
|
+
copy(type: 'markdown' | 'html'): Promise<void>;
|
|
126
|
+
copyRendered(): Promise<void>;
|
|
127
|
+
|
|
128
|
+
// --- Plugin loading ---
|
|
129
|
+
loadScript(src: string): Promise<void>;
|
|
130
|
+
loadCSS(href: string): Promise<void>;
|
|
131
|
+
|
|
132
|
+
// --- Lifecycle ---
|
|
154
133
|
destroy(): void;
|
|
155
134
|
}
|
|
156
135
|
|
|
157
136
|
export default QuikdownEditor;
|
|
158
137
|
}
|
|
159
138
|
|
|
160
|
-
// For direct import
|
|
139
|
+
// For direct import (non-module usage)
|
|
161
140
|
declare class QuikdownEditor {
|
|
162
|
-
constructor(container: HTMLElement | string, options?: QuikdownEditorOptions);
|
|
141
|
+
constructor(container: HTMLElement | string, options?: import('quikdown/edit').QuikdownEditorOptions);
|
|
163
142
|
get markdown(): string;
|
|
164
143
|
set markdown(value: string);
|
|
165
144
|
get html(): string;
|
|
166
145
|
get mode(): 'source' | 'split' | 'preview';
|
|
167
|
-
setMarkdown(markdown: string): void
|
|
146
|
+
setMarkdown(markdown: string): Promise<void>;
|
|
168
147
|
getMarkdown(): string;
|
|
169
148
|
getHTML(): string;
|
|
170
149
|
setMode(mode: 'source' | 'split' | 'preview'): void;
|
|
171
150
|
setLazyLinefeeds(enabled: boolean): void;
|
|
172
151
|
getLazyLinefeeds(): boolean;
|
|
152
|
+
setDebounceDelay(delay: number): void;
|
|
153
|
+
getDebounceDelay(): number;
|
|
154
|
+
setTheme(theme: 'light' | 'dark' | 'auto'): void;
|
|
155
|
+
getTheme(): 'light' | 'dark' | 'auto';
|
|
156
|
+
undo(): Promise<void>;
|
|
157
|
+
redo(): Promise<void>;
|
|
158
|
+
canUndo(): boolean;
|
|
159
|
+
canRedo(): boolean;
|
|
160
|
+
clearHistory(): void;
|
|
161
|
+
removeHR(): Promise<void>;
|
|
162
|
+
convertLazyLinefeeds(): Promise<void>;
|
|
163
|
+
static removeHRFromMarkdown(markdown: string): string;
|
|
164
|
+
static convertLazyLinefeeds(markdown: string): string;
|
|
165
|
+
copy(type: 'markdown' | 'html'): Promise<void>;
|
|
166
|
+
copyRendered(): Promise<void>;
|
|
167
|
+
loadScript(src: string): Promise<void>;
|
|
168
|
+
loadCSS(href: string): Promise<void>;
|
|
173
169
|
destroy(): void;
|
|
174
170
|
}
|
|
175
171
|
|
|
176
|
-
export
|
|
177
|
-
|
|
178
|
-
theme?: 'light' | 'dark' | 'auto';
|
|
179
|
-
showToolbar?: boolean;
|
|
180
|
-
lazy_linefeeds?: boolean;
|
|
181
|
-
debounceDelay?: number;
|
|
182
|
-
placeholder?: string;
|
|
183
|
-
initialContent?: string;
|
|
184
|
-
plugins?: {
|
|
185
|
-
highlightjs?: boolean;
|
|
186
|
-
mermaid?: boolean;
|
|
187
|
-
};
|
|
188
|
-
customFences?: {
|
|
189
|
-
[language: string]: (code: string, lang: string) => string;
|
|
190
|
-
};
|
|
191
|
-
onChange?: (markdown: string, html: string) => void;
|
|
192
|
-
onModeChange?: (mode: 'source' | 'split' | 'preview') => void;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
export default QuikdownEditor;
|
|
172
|
+
export default QuikdownEditor;
|
|
173
|
+
export { QuikdownEditorOptions } from 'quikdown/edit';
|