quikdown 1.0.2 → 1.0.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 +114 -17
- package/dist/quikdown-lex.cjs +810 -0
- package/dist/quikdown-lex.esm.js +808 -0
- package/dist/quikdown-lex.esm.min.js +8 -0
- package/dist/quikdown-lex.esm.min.js.map +1 -0
- package/dist/quikdown-lex.umd.js +816 -0
- package/dist/quikdown-lex.umd.min.js +8 -0
- package/dist/quikdown-lex.umd.min.js.map +1 -0
- package/dist/quikdown.cjs +164 -169
- package/dist/quikdown.d.ts +70 -0
- package/dist/quikdown.dark.css +115 -56
- package/dist/quikdown.dark.min.css +2 -0
- package/dist/quikdown.esm.js +164 -169
- package/dist/quikdown.esm.min.js +2 -2
- package/dist/quikdown.esm.min.js.map +1 -1
- package/dist/quikdown.light.css +84 -52
- package/dist/quikdown.light.min.css +2 -0
- package/dist/quikdown.umd.js +164 -169
- package/dist/quikdown.umd.min.js +2 -2
- package/dist/quikdown.umd.min.js.map +1 -1
- package/package.json +8 -3
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* quikdown - Lightweight Markdown Parser
|
|
3
|
+
* TypeScript definitions
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
declare module 'quikdown' {
|
|
7
|
+
/**
|
|
8
|
+
* Options for configuring the quikdown parser
|
|
9
|
+
*/
|
|
10
|
+
export interface QuikdownOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Custom renderer for fenced code blocks.
|
|
13
|
+
* Return undefined to use default rendering.
|
|
14
|
+
* @param content - The code block content (unescaped)
|
|
15
|
+
* @param language - The language identifier (or empty string)
|
|
16
|
+
* @returns HTML string or undefined for default rendering
|
|
17
|
+
*/
|
|
18
|
+
fence_plugin?: (content: string, language: string) => string | undefined;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* If true, uses inline styles instead of CSS classes.
|
|
22
|
+
* Useful for emails or environments without CSS support.
|
|
23
|
+
* @default false
|
|
24
|
+
*/
|
|
25
|
+
inline_styles?: boolean;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* If true, allows potentially unsafe URLs (javascript:, data:, etc).
|
|
29
|
+
* Only use with trusted content.
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
allow_unsafe_urls?: boolean;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Parse markdown to HTML
|
|
37
|
+
* @param markdown - The markdown source text
|
|
38
|
+
* @param options - Optional configuration
|
|
39
|
+
* @returns The rendered HTML string
|
|
40
|
+
*/
|
|
41
|
+
function quikdown(markdown: string, options?: QuikdownOptions): string;
|
|
42
|
+
|
|
43
|
+
namespace quikdown {
|
|
44
|
+
/**
|
|
45
|
+
* Generate CSS styles for quikdown classes with theme support
|
|
46
|
+
* @param prefix - CSS class prefix (default: 'quikdown-')
|
|
47
|
+
* @param theme - Theme name: 'light' (default) or 'dark'
|
|
48
|
+
* @returns CSS string with themed .quikdown-* styles
|
|
49
|
+
*/
|
|
50
|
+
export function emitStyles(prefix?: string, theme?: 'light' | 'dark'): string;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Create a configured parser function with preset options
|
|
54
|
+
* @param options - Configuration to apply to all parsing
|
|
55
|
+
* @returns A parser function with the options pre-applied
|
|
56
|
+
*/
|
|
57
|
+
export function configure(options: QuikdownOptions): (markdown: string) => string;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* The version of quikdown
|
|
61
|
+
*/
|
|
62
|
+
export const version: string;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export = quikdown;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// For ES6 module imports
|
|
69
|
+
export default quikdown;
|
|
70
|
+
export { QuikdownOptions };
|
package/dist/quikdown.dark.css
CHANGED
|
@@ -1,48 +1,69 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* QuikDown Dark Theme CSS
|
|
3
|
+
* Generated from quikdown.emitStyles('quikdown-', 'dark')
|
|
4
|
+
*
|
|
5
|
+
* Theme with container-based scoping.
|
|
6
|
+
* Usage: <div class="quikdown-dark">...content...</div>
|
|
7
|
+
*
|
|
8
|
+
* @generated 2025-08-17T11:14:25.791Z
|
|
9
|
+
* @source tools/generateThemeCSS.js
|
|
4
10
|
*/
|
|
5
11
|
|
|
6
|
-
/*
|
|
7
|
-
|
|
12
|
+
/* ============================================
|
|
13
|
+
QuikDown Dark Theme Styles
|
|
14
|
+
All selectors scoped to .quikdown-dark container
|
|
15
|
+
============================================ */
|
|
16
|
+
|
|
17
|
+
/* Primary heading */
|
|
18
|
+
.quikdown-dark .quikdown-h1 {
|
|
8
19
|
font-size: 2em;
|
|
9
20
|
font-weight: 600;
|
|
10
21
|
margin: 0.67em 0;
|
|
11
22
|
text-align: left;
|
|
23
|
+
color: #e0e0e0;
|
|
12
24
|
}
|
|
13
25
|
|
|
14
|
-
|
|
26
|
+
/* Secondary heading */
|
|
27
|
+
.quikdown-dark .quikdown-h2 {
|
|
15
28
|
font-size: 1.5em;
|
|
16
29
|
font-weight: 600;
|
|
17
30
|
margin: 0.83em 0;
|
|
31
|
+
color: #e0e0e0;
|
|
18
32
|
}
|
|
19
33
|
|
|
20
|
-
|
|
34
|
+
/* Tertiary heading */
|
|
35
|
+
.quikdown-dark .quikdown-h3 {
|
|
21
36
|
font-size: 1.25em;
|
|
22
37
|
font-weight: 600;
|
|
23
38
|
margin: 1em 0;
|
|
39
|
+
color: #e0e0e0;
|
|
24
40
|
}
|
|
25
41
|
|
|
26
|
-
|
|
42
|
+
/* Fourth level heading */
|
|
43
|
+
.quikdown-dark .quikdown-h4 {
|
|
27
44
|
font-size: 1em;
|
|
28
45
|
font-weight: 600;
|
|
29
46
|
margin: 1.33em 0;
|
|
47
|
+
color: #e0e0e0;
|
|
30
48
|
}
|
|
31
49
|
|
|
32
|
-
|
|
33
|
-
|
|
50
|
+
/* Fifth level heading */
|
|
51
|
+
.quikdown-dark .quikdown-h5 {
|
|
52
|
+
font-size: .875em;
|
|
34
53
|
font-weight: 600;
|
|
35
54
|
margin: 1.67em 0;
|
|
55
|
+
color: #e0e0e0;
|
|
36
56
|
}
|
|
37
57
|
|
|
38
|
-
|
|
39
|
-
|
|
58
|
+
/* Sixth level heading */
|
|
59
|
+
.quikdown-dark .quikdown-h6 {
|
|
60
|
+
font-size: .85em;
|
|
40
61
|
font-weight: 600;
|
|
41
62
|
margin: 2em 0;
|
|
63
|
+
color: #e0e0e0;
|
|
42
64
|
}
|
|
43
65
|
|
|
44
|
-
|
|
45
|
-
.quikdown-pre {
|
|
66
|
+
.quikdown-dark .quikdown-pre {
|
|
46
67
|
background: #2a2a2a;
|
|
47
68
|
padding: 10px;
|
|
48
69
|
border-radius: 4px;
|
|
@@ -50,89 +71,127 @@
|
|
|
50
71
|
margin: 1em 0;
|
|
51
72
|
}
|
|
52
73
|
|
|
53
|
-
.quikdown-code {
|
|
54
|
-
background: #
|
|
74
|
+
.quikdown-dark .quikdown-code {
|
|
75
|
+
background: #2a2a2a;
|
|
55
76
|
padding: 2px 4px;
|
|
56
77
|
border-radius: 3px;
|
|
57
78
|
font-family: monospace;
|
|
58
79
|
}
|
|
59
80
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
border-left: 4px solid #444;
|
|
81
|
+
.quikdown-dark .quikdown-blockquote {
|
|
82
|
+
border-left: 4px solid #3a3a3a;
|
|
63
83
|
margin-left: 0;
|
|
64
84
|
padding-left: 1em;
|
|
85
|
+
color: #e0e0e0;
|
|
65
86
|
}
|
|
66
87
|
|
|
67
|
-
|
|
68
|
-
.quikdown-table {
|
|
88
|
+
.quikdown-dark .quikdown-table {
|
|
69
89
|
border-collapse: collapse;
|
|
70
90
|
width: 100%;
|
|
71
91
|
margin: 1em 0;
|
|
72
92
|
}
|
|
73
93
|
|
|
74
|
-
.quikdown-th {
|
|
75
|
-
border: 1px solid #
|
|
94
|
+
.quikdown-dark .quikdown-th {
|
|
95
|
+
border: 1px solid #3a3a3a;
|
|
76
96
|
padding: 8px;
|
|
77
97
|
background-color: #2a2a2a;
|
|
78
98
|
font-weight: bold;
|
|
79
99
|
text-align: left;
|
|
80
100
|
}
|
|
81
101
|
|
|
82
|
-
.quikdown-td {
|
|
83
|
-
border: 1px solid #
|
|
102
|
+
.quikdown-dark .quikdown-td {
|
|
103
|
+
border: 1px solid #3a3a3a;
|
|
84
104
|
padding: 8px;
|
|
85
105
|
text-align: left;
|
|
106
|
+
color: #e0e0e0;
|
|
86
107
|
}
|
|
87
108
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
margin:
|
|
92
|
-
padding-left: 2em;
|
|
109
|
+
.quikdown-dark .quikdown-hr {
|
|
110
|
+
border: none;
|
|
111
|
+
border-top: 1px solid #3a3a3a;
|
|
112
|
+
margin: 1em 0;
|
|
93
113
|
}
|
|
94
114
|
|
|
95
|
-
.quikdown-
|
|
96
|
-
|
|
115
|
+
.quikdown-dark .quikdown-img {
|
|
116
|
+
max-width: 100%;
|
|
117
|
+
height: auto;
|
|
97
118
|
}
|
|
98
119
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
120
|
+
.quikdown-dark .quikdown-a {
|
|
121
|
+
color: #6db3f2;
|
|
122
|
+
text-decoration: underline;
|
|
102
123
|
}
|
|
103
124
|
|
|
104
|
-
.quikdown-
|
|
105
|
-
|
|
125
|
+
.quikdown-dark .quikdown-strong {
|
|
126
|
+
font-weight: bold;
|
|
106
127
|
}
|
|
107
128
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
color: #66b3ff;
|
|
111
|
-
text-decoration: underline;
|
|
129
|
+
.quikdown-dark .quikdown-em {
|
|
130
|
+
font-style: italic;
|
|
112
131
|
}
|
|
113
132
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
max-width: 100%;
|
|
117
|
-
height: auto;
|
|
133
|
+
.quikdown-dark .quikdown-del {
|
|
134
|
+
text-decoration: line-through;
|
|
118
135
|
}
|
|
119
136
|
|
|
120
|
-
|
|
121
|
-
.
|
|
122
|
-
|
|
123
|
-
border-top: 1px solid #444;
|
|
124
|
-
margin: 1em 0;
|
|
137
|
+
.quikdown-dark .quikdown-ul {
|
|
138
|
+
margin: 0.5em 0;
|
|
139
|
+
padding-left: 2em;
|
|
125
140
|
}
|
|
126
141
|
|
|
127
|
-
|
|
128
|
-
.
|
|
129
|
-
|
|
142
|
+
.quikdown-dark .quikdown-ol {
|
|
143
|
+
margin: 0.5em 0;
|
|
144
|
+
padding-left: 2em;
|
|
130
145
|
}
|
|
131
146
|
|
|
132
|
-
.quikdown-
|
|
133
|
-
|
|
147
|
+
.quikdown-dark .quikdown-li {
|
|
148
|
+
margin: 0.25em 0;
|
|
149
|
+
color: #e0e0e0;
|
|
134
150
|
}
|
|
135
151
|
|
|
136
|
-
.quikdown-
|
|
137
|
-
|
|
152
|
+
.quikdown-dark .quikdown-task-item {
|
|
153
|
+
list-style: none;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.quikdown-dark .quikdown-task-checkbox {
|
|
157
|
+
margin-right: .5em;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/* ============================================
|
|
161
|
+
Container Styling
|
|
162
|
+
============================================ */
|
|
163
|
+
|
|
164
|
+
.quikdown-dark {
|
|
165
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
|
|
166
|
+
line-height: 1.6;
|
|
167
|
+
color: #e0e0e0;
|
|
168
|
+
background: #1a1a1a;
|
|
169
|
+
padding: 1rem;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/* ============================================
|
|
173
|
+
Auto Dark Mode Support
|
|
174
|
+
============================================ */
|
|
175
|
+
|
|
176
|
+
@media (prefers-color-scheme: dark) {
|
|
177
|
+
.quikdown-auto {
|
|
178
|
+
color: #e0e0e0;
|
|
179
|
+
background: #1a1a1a;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* Auto-apply dark theme styles */
|
|
183
|
+
.quikdown-auto .quikdown-h1,
|
|
184
|
+
.quikdown-auto .quikdown-h2,
|
|
185
|
+
.quikdown-auto .quikdown-h3,
|
|
186
|
+
.quikdown-auto .quikdown-h4,
|
|
187
|
+
.quikdown-auto .quikdown-h5,
|
|
188
|
+
.quikdown-auto .quikdown-h6 { color: #e0e0e0; }
|
|
189
|
+
.quikdown-auto .quikdown-pre { background: #2a2a2a; }
|
|
190
|
+
.quikdown-auto .quikdown-code { background: #2a2a2a; }
|
|
191
|
+
.quikdown-auto .quikdown-blockquote { border-left-color: #3a3a3a; color: #e0e0e0; }
|
|
192
|
+
.quikdown-auto .quikdown-th { background-color: #2a2a2a; border-color: #3a3a3a; }
|
|
193
|
+
.quikdown-auto .quikdown-td { border-color: #3a3a3a; color: #e0e0e0; }
|
|
194
|
+
.quikdown-auto .quikdown-hr { border-top-color: #3a3a3a; }
|
|
195
|
+
.quikdown-auto .quikdown-a { color: #6db3f2; }
|
|
196
|
+
.quikdown-auto .quikdown-li { color: #e0e0e0; }
|
|
138
197
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* QuikDown Theme CSS (minified) */
|
|
2
|
+
.quikdown-dark .quikdown-h1{font-size:2em;font-weight:600;margin:.67em 0;text-align:left;color:#e0e0e0}.quikdown-dark .quikdown-h2{font-size:1.5em;font-weight:600;margin:.83em 0;color:#e0e0e0}.quikdown-dark .quikdown-h3{font-size:1.25em;font-weight:600;margin:1em 0;color:#e0e0e0}.quikdown-dark .quikdown-h4{font-size:1em;font-weight:600;margin:1.33em 0;color:#e0e0e0}.quikdown-dark .quikdown-h5{font-size:.875em;font-weight:600;margin:1.67em 0;color:#e0e0e0}.quikdown-dark .quikdown-h6{font-size:.85em;font-weight:600;margin:2em 0;color:#e0e0e0}.quikdown-dark .quikdown-pre{background:#2a2a2a;padding:10px;border-radius:4px;overflow-x:auto;margin:1em 0}.quikdown-dark .quikdown-code{background:#2a2a2a;padding:2px 4px;border-radius:3px;font-family:monospace}.quikdown-dark .quikdown-blockquote{border-left:4px solid #3a3a3a;margin-left:0;padding-left:1em;color:#e0e0e0}.quikdown-dark .quikdown-table{border-collapse:collapse;width:100%;margin:1em 0}.quikdown-dark .quikdown-th{border:1px solid #3a3a3a;padding:8px;background-color:#2a2a2a;font-weight:700;text-align:left}.quikdown-dark .quikdown-td{border:1px solid #3a3a3a;padding:8px;text-align:left;color:#e0e0e0}.quikdown-dark .quikdown-hr{border:none;border-top:1px solid #3a3a3a;margin:1em 0}.quikdown-dark .quikdown-img{max-width:100%;height:auto}.quikdown-dark .quikdown-a{color:#6db3f2;text-decoration:underline}.quikdown-dark .quikdown-strong{font-weight:700}.quikdown-dark .quikdown-em{font-style:italic}.quikdown-dark .quikdown-del{text-decoration:line-through}.quikdown-dark .quikdown-ol,.quikdown-dark .quikdown-ul{margin:.5em 0;padding-left:2em}.quikdown-dark .quikdown-li{margin:.25em 0;color:#e0e0e0}.quikdown-dark .quikdown-task-item{list-style:none}.quikdown-dark .quikdown-task-checkbox{margin-right:.5em}.quikdown-dark{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.6;color:#e0e0e0;background:#1a1a1a;padding:1rem}@media (prefers-color-scheme:dark){.quikdown-auto{color:#e0e0e0;background:#1a1a1a}.quikdown-auto .quikdown-h1,.quikdown-auto .quikdown-h2,.quikdown-auto .quikdown-h3,.quikdown-auto .quikdown-h4,.quikdown-auto .quikdown-h5,.quikdown-auto .quikdown-h6{color:#e0e0e0}.quikdown-auto .quikdown-code,.quikdown-auto .quikdown-pre{background:#2a2a2a}.quikdown-auto .quikdown-blockquote{border-left-color:#3a3a3a;color:#e0e0e0}.quikdown-auto .quikdown-th{background-color:#2a2a2a;border-color:#3a3a3a}.quikdown-auto .quikdown-td{border-color:#3a3a3a;color:#e0e0e0}.quikdown-auto .quikdown-hr{border-top-color:#3a3a3a}.quikdown-auto .quikdown-a{color:#6db3f2}.quikdown-auto .quikdown-li{color:#e0e0e0}}
|