quikdown 1.1.1 → 1.2.3
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 +39 -7
- package/dist/quikdown.cjs +23 -10
- package/dist/quikdown.dark.css +1 -1
- package/dist/quikdown.esm.js +23 -10
- package/dist/quikdown.esm.min.js +2 -2
- package/dist/quikdown.esm.min.js.gz +0 -0
- package/dist/quikdown.esm.min.js.map +1 -1
- package/dist/quikdown.light.css +1 -1
- package/dist/quikdown.umd.js +23 -10
- package/dist/quikdown.umd.min.js +2 -2
- package/dist/quikdown.umd.min.js.gz +0 -0
- 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.gz +0 -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.gz +0 -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.gz +0 -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.gz +0 -0
- package/dist/quikdown_ast_html.umd.min.js.map +1 -0
- package/dist/quikdown_bd.cjs +38 -19
- package/dist/quikdown_bd.esm.js +38 -19
- package/dist/quikdown_bd.esm.min.js +2 -2
- package/dist/quikdown_bd.esm.min.js.gz +0 -0
- package/dist/quikdown_bd.esm.min.js.map +1 -1
- package/dist/quikdown_bd.umd.js +38 -19
- package/dist/quikdown_bd.umd.min.js +2 -2
- package/dist/quikdown_bd.umd.min.js.gz +0 -0
- package/dist/quikdown_bd.umd.min.js.map +1 -1
- package/dist/quikdown_edit.cjs +836 -117
- package/dist/quikdown_edit.d.ts +123 -131
- package/dist/quikdown_edit.esm.js +836 -117
- package/dist/quikdown_edit.esm.min.js +3 -3
- package/dist/quikdown_edit.esm.min.js.gz +0 -0
- package/dist/quikdown_edit.esm.min.js.map +1 -1
- package/dist/quikdown_edit.umd.js +836 -117
- package/dist/quikdown_edit.umd.min.js +3 -3
- package/dist/quikdown_edit.umd.min.js.gz +0 -0
- 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.gz +0 -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.gz +0 -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.gz +0 -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.gz +0 -0
- package/dist/quikdown_yaml.umd.min.js.map +1 -0
- package/package.json +100 -45
package/dist/quikdown_edit.d.ts
CHANGED
|
@@ -8,188 +8,180 @@ 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 (legacy — prefer preloadFences) */
|
|
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
44
|
/**
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
|
|
45
|
+
* Preload fence-rendering libraries at construction time so the first
|
|
46
|
+
* encounter with a fence type renders instantly (no lazy-load delay).
|
|
47
|
+
*
|
|
48
|
+
* - `'all'` — preload every known library
|
|
49
|
+
* - `['highlightjs', 'mermaid', 'math', 'geojson', 'stl']` — specific list
|
|
50
|
+
* - `[{ name, script, css? }]` — custom library URL
|
|
51
|
+
* - `null` (default) — lazy-load on demand
|
|
52
|
+
*
|
|
53
|
+
* Trade-off: preloading uses more upfront network but eliminates the
|
|
54
|
+
* "loading..." flicker on first render of each fence type. Developer's
|
|
55
|
+
* choice — the editor itself stays ~70 KB minified either way.
|
|
56
|
+
*/
|
|
57
|
+
preloadFences?: 'all' | Array<string | { name?: string; script: string; css?: string }> | null;
|
|
58
|
+
/** Custom fence handlers keyed by language */
|
|
66
59
|
customFences?: {
|
|
67
60
|
[language: string]: (code: string, lang: string) => string;
|
|
68
61
|
};
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Callback fired when content changes
|
|
72
|
-
* @param markdown - Current markdown content
|
|
73
|
-
* @param html - Rendered HTML
|
|
74
|
-
*/
|
|
62
|
+
/** Callback fired when content changes */
|
|
75
63
|
onChange?: (markdown: string, html: string) => void;
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Callback fired when view mode changes
|
|
79
|
-
* @param mode - New view mode
|
|
80
|
-
*/
|
|
64
|
+
/** Callback fired when view mode changes */
|
|
81
65
|
onModeChange?: (mode: 'source' | 'split' | 'preview') => void;
|
|
82
66
|
}
|
|
83
67
|
|
|
84
68
|
/**
|
|
85
69
|
* QuikdownEditor class - Drop-in markdown editor control
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* import QuikdownEditor from 'quikdown/edit';
|
|
74
|
+
*
|
|
75
|
+
* const editor = new QuikdownEditor('#editor', {
|
|
76
|
+
* mode: 'split',
|
|
77
|
+
* showUndoRedo: true,
|
|
78
|
+
* showRemoveHR: true,
|
|
79
|
+
* onChange: (md, html) => console.log('Changed:', md.length)
|
|
80
|
+
* });
|
|
81
|
+
*
|
|
82
|
+
* editor.setMarkdown('# Hello\n\nWorld');
|
|
83
|
+
* editor.undo();
|
|
84
|
+
* editor.redo();
|
|
85
|
+
* ```
|
|
86
86
|
*/
|
|
87
87
|
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
88
|
constructor(container: HTMLElement | string, options?: QuikdownEditorOptions);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
* Get current markdown content
|
|
97
|
-
*/
|
|
89
|
+
|
|
90
|
+
// --- Properties ---
|
|
98
91
|
get markdown(): string;
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Set markdown content
|
|
102
|
-
*/
|
|
103
92
|
set markdown(value: string);
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Get rendered HTML (read-only)
|
|
107
|
-
*/
|
|
108
93
|
get html(): string;
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Get current view mode (read-only)
|
|
112
|
-
*/
|
|
113
94
|
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
|
-
*/
|
|
95
|
+
|
|
96
|
+
// --- Content ---
|
|
97
|
+
setMarkdown(markdown: string): Promise<void>;
|
|
125
98
|
getMarkdown(): string;
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Get rendered HTML
|
|
129
|
-
* @returns Rendered HTML
|
|
130
|
-
*/
|
|
131
99
|
getHTML(): string;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
* Change view mode
|
|
135
|
-
* @param mode - New view mode
|
|
136
|
-
*/
|
|
100
|
+
|
|
101
|
+
// --- View ---
|
|
137
102
|
setMode(mode: 'source' | 'split' | 'preview'): void;
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Enable/disable lazy linefeeds
|
|
141
|
-
* @param enabled - Whether to enable lazy linefeeds
|
|
142
|
-
*/
|
|
143
103
|
setLazyLinefeeds(enabled: boolean): void;
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Get lazy linefeeds setting
|
|
147
|
-
* @returns Current lazy linefeeds setting
|
|
148
|
-
*/
|
|
149
104
|
getLazyLinefeeds(): boolean;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
105
|
+
setDebounceDelay(delay: number): void;
|
|
106
|
+
getDebounceDelay(): number;
|
|
107
|
+
/** Change theme at runtime */
|
|
108
|
+
setTheme(theme: 'light' | 'dark' | 'auto'): void;
|
|
109
|
+
/** Get the currently configured theme */
|
|
110
|
+
getTheme(): 'light' | 'dark' | 'auto';
|
|
111
|
+
|
|
112
|
+
// --- Undo / Redo ---
|
|
113
|
+
/** Undo the last edit */
|
|
114
|
+
undo(): Promise<void>;
|
|
115
|
+
/** Redo the last undone edit */
|
|
116
|
+
redo(): Promise<void>;
|
|
117
|
+
/** Whether undo is available */
|
|
118
|
+
canUndo(): boolean;
|
|
119
|
+
/** Whether redo is available */
|
|
120
|
+
canRedo(): boolean;
|
|
121
|
+
/** Clear the undo/redo history */
|
|
122
|
+
clearHistory(): void;
|
|
123
|
+
|
|
124
|
+
// --- HR Removal ---
|
|
125
|
+
/** Remove all horizontal rules from the current markdown (fence/table-safe) */
|
|
126
|
+
removeHR(): Promise<void>;
|
|
127
|
+
|
|
128
|
+
// --- Lazy Linefeed Conversion ---
|
|
129
|
+
/** One-time transform: convert single newlines to paragraph breaks (idempotent) */
|
|
130
|
+
convertLazyLinefeeds(): Promise<void>;
|
|
131
|
+
|
|
132
|
+
// --- Static utilities (headless — no editor instance needed) ---
|
|
133
|
+
/** Remove HRs from markdown string (fence/table-safe) */
|
|
134
|
+
static removeHRFromMarkdown(markdown: string): string;
|
|
135
|
+
/** Convert lazy linefeeds in markdown string (idempotent) */
|
|
136
|
+
static convertLazyLinefeeds(markdown: string): string;
|
|
137
|
+
|
|
138
|
+
// --- Clipboard ---
|
|
139
|
+
copy(type: 'markdown' | 'html'): Promise<void>;
|
|
140
|
+
copyRendered(): Promise<void>;
|
|
141
|
+
|
|
142
|
+
// --- Plugin loading ---
|
|
143
|
+
loadScript(src: string): Promise<void>;
|
|
144
|
+
loadCSS(href: string): Promise<void>;
|
|
145
|
+
|
|
146
|
+
// --- Lifecycle ---
|
|
154
147
|
destroy(): void;
|
|
155
148
|
}
|
|
156
149
|
|
|
157
150
|
export default QuikdownEditor;
|
|
158
151
|
}
|
|
159
152
|
|
|
160
|
-
// For direct import
|
|
153
|
+
// For direct import (non-module usage)
|
|
161
154
|
declare class QuikdownEditor {
|
|
162
|
-
constructor(container: HTMLElement | string, options?: QuikdownEditorOptions);
|
|
155
|
+
constructor(container: HTMLElement | string, options?: import('quikdown/edit').QuikdownEditorOptions);
|
|
163
156
|
get markdown(): string;
|
|
164
157
|
set markdown(value: string);
|
|
165
158
|
get html(): string;
|
|
166
159
|
get mode(): 'source' | 'split' | 'preview';
|
|
167
|
-
setMarkdown(markdown: string): void
|
|
160
|
+
setMarkdown(markdown: string): Promise<void>;
|
|
168
161
|
getMarkdown(): string;
|
|
169
162
|
getHTML(): string;
|
|
170
163
|
setMode(mode: 'source' | 'split' | 'preview'): void;
|
|
171
164
|
setLazyLinefeeds(enabled: boolean): void;
|
|
172
165
|
getLazyLinefeeds(): boolean;
|
|
166
|
+
setDebounceDelay(delay: number): void;
|
|
167
|
+
getDebounceDelay(): number;
|
|
168
|
+
setTheme(theme: 'light' | 'dark' | 'auto'): void;
|
|
169
|
+
getTheme(): 'light' | 'dark' | 'auto';
|
|
170
|
+
undo(): Promise<void>;
|
|
171
|
+
redo(): Promise<void>;
|
|
172
|
+
canUndo(): boolean;
|
|
173
|
+
canRedo(): boolean;
|
|
174
|
+
clearHistory(): void;
|
|
175
|
+
removeHR(): Promise<void>;
|
|
176
|
+
convertLazyLinefeeds(): Promise<void>;
|
|
177
|
+
static removeHRFromMarkdown(markdown: string): string;
|
|
178
|
+
static convertLazyLinefeeds(markdown: string): string;
|
|
179
|
+
copy(type: 'markdown' | 'html'): Promise<void>;
|
|
180
|
+
copyRendered(): Promise<void>;
|
|
181
|
+
loadScript(src: string): Promise<void>;
|
|
182
|
+
loadCSS(href: string): Promise<void>;
|
|
173
183
|
destroy(): void;
|
|
174
184
|
}
|
|
175
185
|
|
|
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;
|
|
186
|
+
export default QuikdownEditor;
|
|
187
|
+
export { QuikdownEditorOptions } from 'quikdown/edit';
|