@inkandswitch/patchwork-pkg-base 0.0.123 → 0.0.124
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/module-settings-url +1 -1
- package/package.json +1 -1
- package/packages/codemirror-markdown/dist/{chunk-IJCIGXUN.js → chunk-3U6A6M3C.js} +3 -3
- package/packages/codemirror-markdown/dist/{chunk-IJCIGXUN.js.map → chunk-3U6A6M3C.js.map} +2 -2
- package/packages/codemirror-markdown/dist/{chunk-DQNB5ERJ.js → chunk-AOCXO46Z.js} +4 -4
- package/packages/codemirror-markdown/dist/{chunk-4ZTKTN2T.js → chunk-BK6BYU4X.js} +3 -3
- package/packages/codemirror-markdown/dist/{chunk-4RNBFSBX.js → chunk-JCGWNVO7.js} +2 -2
- package/packages/codemirror-markdown/dist/{chunk-6JHOS434.js → chunk-ZMDZRV6X.js} +2 -2
- package/packages/codemirror-markdown/dist/{dist-5FW47RX2.js → dist-3WYN573Y.js} +2 -2
- package/packages/codemirror-markdown/dist/{dist-XVLR6T5U.js → dist-4STDX7WZ.js} +5 -5
- package/packages/codemirror-markdown/dist/{dist-PAVPWBMY.js → dist-66V2OZNR.js} +2 -2
- package/packages/codemirror-markdown/dist/{dist-D27NTZAI.js → dist-7EHN4UZA.js} +5 -5
- package/packages/codemirror-markdown/dist/{dist-STDOJSRA.js → dist-D4E7IXYD.js} +5 -5
- package/packages/codemirror-markdown/dist/{dist-EG4ZREHT.js → dist-E6QAN4VQ.js} +2 -2
- package/packages/codemirror-markdown/dist/{dist-4N6A6FHO.js → dist-E72K6GKZ.js} +2 -2
- package/packages/codemirror-markdown/dist/{dist-B5G4LYVR.js → dist-EVYTVY4T.js} +5 -5
- package/packages/codemirror-markdown/dist/{dist-6BZJTPMQ.js → dist-ITLHNFUL.js} +2 -2
- package/packages/codemirror-markdown/dist/{dist-YSRXNTXV.js → dist-KLLOFSEO.js} +3 -3
- package/packages/codemirror-markdown/dist/{dist-6NY2CMU2.js → dist-LCUXA5AJ.js} +3 -3
- package/packages/codemirror-markdown/dist/{dist-HB4M34TX.js → dist-NFD5VVC6.js} +6 -6
- package/packages/codemirror-markdown/dist/{dist-SFP5SWTJ.js → dist-O6G7IUZY.js} +2 -2
- package/packages/codemirror-markdown/dist/{dist-TYTABVEN.js → dist-OU44YTSZ.js} +2 -2
- package/packages/codemirror-markdown/dist/{dist-XM4FBMZA.js → dist-RCBHVDL7.js} +2 -2
- package/packages/codemirror-markdown/dist/{dist-DX7TJIOI.js → dist-RUK5SWS5.js} +2 -2
- package/packages/codemirror-markdown/dist/{dist-VYHSBFVD.js → dist-TFWDIHAP.js} +5 -5
- package/packages/codemirror-markdown/dist/{dist-BYFOH52X.js → dist-VBHD2NRU.js} +3 -3
- package/packages/codemirror-markdown/dist/{dist-TV5CSRQ2.js → dist-XL62MJER.js} +5 -5
- package/packages/codemirror-markdown/dist/{dist-ITGX4OZJ.js → dist-YK6XD4UJ.js} +3 -3
- package/packages/codemirror-markdown/dist/{dist-KBGGPCDW.js → dist-YNO26IAD.js} +2 -2
- package/packages/codemirror-markdown/dist/extensions/links.js +6 -1
- package/packages/codemirror-markdown/dist/extensions/links.js.map +2 -2
- package/packages/codemirror-markdown/dist/extensions/markdown.js +328 -161
- package/packages/codemirror-markdown/dist/extensions/markdown.js.map +4 -4
- package/packages/codemirror-markdown/package.json +1 -1
- package/plugin-registry-url +1 -1
- /package/packages/codemirror-markdown/dist/{chunk-DQNB5ERJ.js.map → chunk-AOCXO46Z.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{chunk-4ZTKTN2T.js.map → chunk-BK6BYU4X.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{chunk-4RNBFSBX.js.map → chunk-JCGWNVO7.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{chunk-6JHOS434.js.map → chunk-ZMDZRV6X.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-5FW47RX2.js.map → dist-3WYN573Y.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-HB4M34TX.js.map → dist-4STDX7WZ.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-PAVPWBMY.js.map → dist-66V2OZNR.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-D27NTZAI.js.map → dist-7EHN4UZA.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-STDOJSRA.js.map → dist-D4E7IXYD.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-EG4ZREHT.js.map → dist-E6QAN4VQ.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-4N6A6FHO.js.map → dist-E72K6GKZ.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-B5G4LYVR.js.map → dist-EVYTVY4T.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-6BZJTPMQ.js.map → dist-ITLHNFUL.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-ITGX4OZJ.js.map → dist-KLLOFSEO.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-6NY2CMU2.js.map → dist-LCUXA5AJ.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-XVLR6T5U.js.map → dist-NFD5VVC6.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-SFP5SWTJ.js.map → dist-O6G7IUZY.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-TYTABVEN.js.map → dist-OU44YTSZ.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-XM4FBMZA.js.map → dist-RCBHVDL7.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-DX7TJIOI.js.map → dist-RUK5SWS5.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-VYHSBFVD.js.map → dist-TFWDIHAP.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-BYFOH52X.js.map → dist-VBHD2NRU.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-TV5CSRQ2.js.map → dist-XL62MJER.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-YSRXNTXV.js.map → dist-YK6XD4UJ.js.map} +0 -0
- /package/packages/codemirror-markdown/dist/{dist-KBGGPCDW.js.map → dist-YNO26IAD.js.map} +0 -0
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
markdown,
|
|
3
3
|
markdownLanguage
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-BK6BYU4X.js";
|
|
5
|
+
import "../chunk-AOCXO46Z.js";
|
|
6
|
+
import "../chunk-JCGWNVO7.js";
|
|
7
|
+
import "../chunk-ZMDZRV6X.js";
|
|
8
8
|
import {
|
|
9
9
|
completionKeymap
|
|
10
10
|
} from "../chunk-UQ2NFKSJ.js";
|
|
11
11
|
import {
|
|
12
|
+
styleTags,
|
|
12
13
|
tags
|
|
13
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-3U6A6M3C.js";
|
|
14
15
|
|
|
15
16
|
// src/extensions/markdown.ts
|
|
16
17
|
import { defaultKeymap, indentWithTab } from "@codemirror/commands";
|
|
@@ -22,7 +23,7 @@ function legacy(parser) {
|
|
|
22
23
|
return new LanguageSupport(StreamLanguage.define(parser));
|
|
23
24
|
}
|
|
24
25
|
function sql(dialectName) {
|
|
25
|
-
return import("../dist-
|
|
26
|
+
return import("../dist-3WYN573Y.js").then((m) => m.sql({ dialect: m[dialectName] }));
|
|
26
27
|
}
|
|
27
28
|
var languages = [
|
|
28
29
|
// New-style language modes
|
|
@@ -30,7 +31,7 @@ var languages = [
|
|
|
30
31
|
name: "C",
|
|
31
32
|
extensions: ["c", "h", "ino"],
|
|
32
33
|
load() {
|
|
33
|
-
return import("../dist-
|
|
34
|
+
return import("../dist-66V2OZNR.js").then((m) => m.cpp());
|
|
34
35
|
}
|
|
35
36
|
}),
|
|
36
37
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -38,7 +39,7 @@ var languages = [
|
|
|
38
39
|
alias: ["cpp"],
|
|
39
40
|
extensions: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"],
|
|
40
41
|
load() {
|
|
41
|
-
return import("../dist-
|
|
42
|
+
return import("../dist-66V2OZNR.js").then((m) => m.cpp());
|
|
42
43
|
}
|
|
43
44
|
}),
|
|
44
45
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -53,14 +54,14 @@ var languages = [
|
|
|
53
54
|
name: "CSS",
|
|
54
55
|
extensions: ["css"],
|
|
55
56
|
load() {
|
|
56
|
-
return import("../dist-
|
|
57
|
+
return import("../dist-YK6XD4UJ.js").then((m) => m.css());
|
|
57
58
|
}
|
|
58
59
|
}),
|
|
59
60
|
/* @__PURE__ */ LanguageDescription.of({
|
|
60
61
|
name: "Go",
|
|
61
62
|
extensions: ["go"],
|
|
62
63
|
load() {
|
|
63
|
-
return import("../dist-
|
|
64
|
+
return import("../dist-ITLHNFUL.js").then((m) => m.go());
|
|
64
65
|
}
|
|
65
66
|
}),
|
|
66
67
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -68,14 +69,14 @@ var languages = [
|
|
|
68
69
|
alias: ["xhtml"],
|
|
69
70
|
extensions: ["html", "htm", "handlebars", "hbs"],
|
|
70
71
|
load() {
|
|
71
|
-
return import("../dist-
|
|
72
|
+
return import("../dist-4STDX7WZ.js").then((m) => m.html());
|
|
72
73
|
}
|
|
73
74
|
}),
|
|
74
75
|
/* @__PURE__ */ LanguageDescription.of({
|
|
75
76
|
name: "Java",
|
|
76
77
|
extensions: ["java"],
|
|
77
78
|
load() {
|
|
78
|
-
return import("../dist-
|
|
79
|
+
return import("../dist-OU44YTSZ.js").then((m) => m.java());
|
|
79
80
|
}
|
|
80
81
|
}),
|
|
81
82
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -83,14 +84,14 @@ var languages = [
|
|
|
83
84
|
alias: ["ecmascript", "js", "node"],
|
|
84
85
|
extensions: ["js", "mjs", "cjs"],
|
|
85
86
|
load() {
|
|
86
|
-
return import("../dist-
|
|
87
|
+
return import("../dist-KLLOFSEO.js").then((m) => m.javascript());
|
|
87
88
|
}
|
|
88
89
|
}),
|
|
89
90
|
/* @__PURE__ */ LanguageDescription.of({
|
|
90
91
|
name: "Jinja",
|
|
91
92
|
extensions: ["j2", "jinja", "jinja2"],
|
|
92
93
|
load() {
|
|
93
|
-
return import("../dist-
|
|
94
|
+
return import("../dist-EVYTVY4T.js").then((m) => m.jinja());
|
|
94
95
|
}
|
|
95
96
|
}),
|
|
96
97
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -98,28 +99,28 @@ var languages = [
|
|
|
98
99
|
alias: ["json5"],
|
|
99
100
|
extensions: ["json", "map"],
|
|
100
101
|
load() {
|
|
101
|
-
return import("../dist-
|
|
102
|
+
return import("../dist-YNO26IAD.js").then((m) => m.json());
|
|
102
103
|
}
|
|
103
104
|
}),
|
|
104
105
|
/* @__PURE__ */ LanguageDescription.of({
|
|
105
106
|
name: "JSX",
|
|
106
107
|
extensions: ["jsx"],
|
|
107
108
|
load() {
|
|
108
|
-
return import("../dist-
|
|
109
|
+
return import("../dist-KLLOFSEO.js").then((m) => m.javascript({ jsx: true }));
|
|
109
110
|
}
|
|
110
111
|
}),
|
|
111
112
|
/* @__PURE__ */ LanguageDescription.of({
|
|
112
113
|
name: "LESS",
|
|
113
114
|
extensions: ["less"],
|
|
114
115
|
load() {
|
|
115
|
-
return import("../dist-
|
|
116
|
+
return import("../dist-VBHD2NRU.js").then((m) => m.less());
|
|
116
117
|
}
|
|
117
118
|
}),
|
|
118
119
|
/* @__PURE__ */ LanguageDescription.of({
|
|
119
120
|
name: "Liquid",
|
|
120
121
|
extensions: ["liquid"],
|
|
121
122
|
load() {
|
|
122
|
-
return import("../dist-
|
|
123
|
+
return import("../dist-7EHN4UZA.js").then((m) => m.liquid());
|
|
123
124
|
}
|
|
124
125
|
}),
|
|
125
126
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -132,7 +133,7 @@ var languages = [
|
|
|
132
133
|
name: "Markdown",
|
|
133
134
|
extensions: ["md", "markdown", "mkd"],
|
|
134
135
|
load() {
|
|
135
|
-
return import("../dist-
|
|
136
|
+
return import("../dist-NFD5VVC6.js").then((m) => m.markdown());
|
|
136
137
|
}
|
|
137
138
|
}),
|
|
138
139
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -151,7 +152,7 @@ var languages = [
|
|
|
151
152
|
name: "PHP",
|
|
152
153
|
extensions: ["php", "php3", "php4", "php5", "php7", "phtml"],
|
|
153
154
|
load() {
|
|
154
|
-
return import("../dist-
|
|
155
|
+
return import("../dist-XL62MJER.js").then((m) => m.php());
|
|
155
156
|
}
|
|
156
157
|
}),
|
|
157
158
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -172,28 +173,28 @@ var languages = [
|
|
|
172
173
|
extensions: ["BUILD", "bzl", "py", "pyw"],
|
|
173
174
|
filename: /^(BUCK|BUILD)$/,
|
|
174
175
|
load() {
|
|
175
|
-
return import("../dist-
|
|
176
|
+
return import("../dist-RUK5SWS5.js").then((m) => m.python());
|
|
176
177
|
}
|
|
177
178
|
}),
|
|
178
179
|
/* @__PURE__ */ LanguageDescription.of({
|
|
179
180
|
name: "Rust",
|
|
180
181
|
extensions: ["rs"],
|
|
181
182
|
load() {
|
|
182
|
-
return import("../dist-
|
|
183
|
+
return import("../dist-O6G7IUZY.js").then((m) => m.rust());
|
|
183
184
|
}
|
|
184
185
|
}),
|
|
185
186
|
/* @__PURE__ */ LanguageDescription.of({
|
|
186
187
|
name: "Sass",
|
|
187
188
|
extensions: ["sass"],
|
|
188
189
|
load() {
|
|
189
|
-
return import("../dist-
|
|
190
|
+
return import("../dist-LCUXA5AJ.js").then((m) => m.sass({ indented: true }));
|
|
190
191
|
}
|
|
191
192
|
}),
|
|
192
193
|
/* @__PURE__ */ LanguageDescription.of({
|
|
193
194
|
name: "SCSS",
|
|
194
195
|
extensions: ["scss"],
|
|
195
196
|
load() {
|
|
196
|
-
return import("../dist-
|
|
197
|
+
return import("../dist-LCUXA5AJ.js").then((m) => m.sass());
|
|
197
198
|
}
|
|
198
199
|
}),
|
|
199
200
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -213,7 +214,7 @@ var languages = [
|
|
|
213
214
|
name: "TSX",
|
|
214
215
|
extensions: ["tsx"],
|
|
215
216
|
load() {
|
|
216
|
-
return import("../dist-
|
|
217
|
+
return import("../dist-KLLOFSEO.js").then((m) => m.javascript({ jsx: true, typescript: true }));
|
|
217
218
|
}
|
|
218
219
|
}),
|
|
219
220
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -221,14 +222,14 @@ var languages = [
|
|
|
221
222
|
alias: ["ts"],
|
|
222
223
|
extensions: ["ts", "mts", "cts"],
|
|
223
224
|
load() {
|
|
224
|
-
return import("../dist-
|
|
225
|
+
return import("../dist-KLLOFSEO.js").then((m) => m.javascript({ typescript: true }));
|
|
225
226
|
}
|
|
226
227
|
}),
|
|
227
228
|
/* @__PURE__ */ LanguageDescription.of({
|
|
228
229
|
name: "WebAssembly",
|
|
229
230
|
extensions: ["wat", "wast"],
|
|
230
231
|
load() {
|
|
231
|
-
return import("../dist-
|
|
232
|
+
return import("../dist-RCBHVDL7.js").then((m) => m.wast());
|
|
232
233
|
}
|
|
233
234
|
}),
|
|
234
235
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -236,7 +237,7 @@ var languages = [
|
|
|
236
237
|
alias: ["rss", "wsdl", "xsd"],
|
|
237
238
|
extensions: ["xml", "xsl", "xsd", "svg"],
|
|
238
239
|
load() {
|
|
239
|
-
return import("../dist-
|
|
240
|
+
return import("../dist-E72K6GKZ.js").then((m) => m.xml());
|
|
240
241
|
}
|
|
241
242
|
}),
|
|
242
243
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -244,7 +245,7 @@ var languages = [
|
|
|
244
245
|
alias: ["yml"],
|
|
245
246
|
extensions: ["yaml", "yml"],
|
|
246
247
|
load() {
|
|
247
|
-
return import("../dist-
|
|
248
|
+
return import("../dist-E6QAN4VQ.js").then((m) => m.yaml());
|
|
248
249
|
}
|
|
249
250
|
}),
|
|
250
251
|
// Legacy modes ported from CodeMirror 5
|
|
@@ -1033,13 +1034,13 @@ var languages = [
|
|
|
1033
1034
|
name: "Vue",
|
|
1034
1035
|
extensions: ["vue"],
|
|
1035
1036
|
load() {
|
|
1036
|
-
return import("../dist-
|
|
1037
|
+
return import("../dist-TFWDIHAP.js").then((m) => m.vue());
|
|
1037
1038
|
}
|
|
1038
1039
|
}),
|
|
1039
1040
|
/* @__PURE__ */ LanguageDescription.of({
|
|
1040
1041
|
name: "Angular Template",
|
|
1041
1042
|
load() {
|
|
1042
|
-
return import("../dist-
|
|
1043
|
+
return import("../dist-D4E7IXYD.js").then((m) => m.angular());
|
|
1043
1044
|
}
|
|
1044
1045
|
})
|
|
1045
1046
|
];
|
|
@@ -2065,7 +2066,7 @@ var searchExtensions = [
|
|
|
2065
2066
|
];
|
|
2066
2067
|
|
|
2067
2068
|
// src/extensions/markdown.ts
|
|
2068
|
-
import { EditorView as
|
|
2069
|
+
import { EditorView as EditorView6, keymap as keymap2 } from "@codemirror/view";
|
|
2069
2070
|
|
|
2070
2071
|
// src/extensions/formatting.ts
|
|
2071
2072
|
import { EditorSelection as EditorSelection2 } from "@codemirror/state";
|
|
@@ -2225,6 +2226,245 @@ var taskCheckboxes = ViewPlugin2.fromClass(
|
|
|
2225
2226
|
{ decorations: (v) => v.decorations }
|
|
2226
2227
|
);
|
|
2227
2228
|
|
|
2229
|
+
// src/extensions/margin.ts
|
|
2230
|
+
import { syntaxTree as syntaxTree2 } from "@codemirror/language";
|
|
2231
|
+
import {
|
|
2232
|
+
Decoration as Decoration3,
|
|
2233
|
+
EditorView as EditorView3,
|
|
2234
|
+
ViewPlugin as ViewPlugin3,
|
|
2235
|
+
WidgetType as WidgetType2
|
|
2236
|
+
} from "@codemirror/view";
|
|
2237
|
+
var hangMark = Decoration3.mark({ class: "cm-md-hang" });
|
|
2238
|
+
var numberMark = Decoration3.mark({ class: "cm-md-hang cm-md-hang-number" });
|
|
2239
|
+
var quoteMark = Decoration3.mark({ class: "cm-md-hang cm-md-hang-quote" });
|
|
2240
|
+
var hidden = Decoration3.replace({});
|
|
2241
|
+
var taskMark = Decoration3.mark({ class: "cm-md-hang", inclusive: true });
|
|
2242
|
+
var HeadingLabel = class extends WidgetType2 {
|
|
2243
|
+
constructor(level) {
|
|
2244
|
+
super();
|
|
2245
|
+
this.level = level;
|
|
2246
|
+
}
|
|
2247
|
+
eq(other) {
|
|
2248
|
+
return other.level === this.level;
|
|
2249
|
+
}
|
|
2250
|
+
toDOM() {
|
|
2251
|
+
const span = document.createElement("span");
|
|
2252
|
+
span.className = "cm-md-hang cm-md-heading-label";
|
|
2253
|
+
span.setAttribute("aria-hidden", "true");
|
|
2254
|
+
const n = document.createElement("span");
|
|
2255
|
+
n.className = "cm-md-heading-level";
|
|
2256
|
+
n.textContent = String(this.level);
|
|
2257
|
+
span.append("H", n);
|
|
2258
|
+
return span;
|
|
2259
|
+
}
|
|
2260
|
+
};
|
|
2261
|
+
var Bullet = class extends WidgetType2 {
|
|
2262
|
+
eq() {
|
|
2263
|
+
return true;
|
|
2264
|
+
}
|
|
2265
|
+
toDOM() {
|
|
2266
|
+
const span = document.createElement("span");
|
|
2267
|
+
span.className = "cm-md-hang";
|
|
2268
|
+
const dot = document.createElement("span");
|
|
2269
|
+
dot.className = "cm-bullet";
|
|
2270
|
+
span.append(dot);
|
|
2271
|
+
return span;
|
|
2272
|
+
}
|
|
2273
|
+
};
|
|
2274
|
+
function caretLines(state) {
|
|
2275
|
+
const lines = /* @__PURE__ */ new Set();
|
|
2276
|
+
for (const r of state.selection.ranges) {
|
|
2277
|
+
const first = state.doc.lineAt(r.from).number;
|
|
2278
|
+
const last = state.doc.lineAt(r.to).number;
|
|
2279
|
+
for (let n = first; n <= last; n++) lines.add(n);
|
|
2280
|
+
}
|
|
2281
|
+
return lines;
|
|
2282
|
+
}
|
|
2283
|
+
function skipSpaces(state, pos) {
|
|
2284
|
+
const line = state.doc.lineAt(pos);
|
|
2285
|
+
while (pos < line.to && state.doc.sliceString(pos, pos + 1) === " ") pos++;
|
|
2286
|
+
return pos;
|
|
2287
|
+
}
|
|
2288
|
+
function build2(view) {
|
|
2289
|
+
const { state } = view;
|
|
2290
|
+
const { doc } = state;
|
|
2291
|
+
const editing = caretLines(state);
|
|
2292
|
+
const decos = [];
|
|
2293
|
+
for (const { from, to } of view.visibleRanges) {
|
|
2294
|
+
syntaxTree2(state).iterate({
|
|
2295
|
+
from,
|
|
2296
|
+
to,
|
|
2297
|
+
enter: (node) => {
|
|
2298
|
+
const name = node.name;
|
|
2299
|
+
const heading = /^ATXHeading(\d)$/.exec(name);
|
|
2300
|
+
if (heading) {
|
|
2301
|
+
const mark = node.node.firstChild;
|
|
2302
|
+
if (!mark || mark.name !== "HeaderMark" || mark.from !== node.from)
|
|
2303
|
+
return;
|
|
2304
|
+
const end = skipSpaces(state, mark.to);
|
|
2305
|
+
if (editing.has(doc.lineAt(node.from).number)) {
|
|
2306
|
+
decos.push(hangMark.range(mark.from, end));
|
|
2307
|
+
} else {
|
|
2308
|
+
decos.push(
|
|
2309
|
+
Decoration3.replace({
|
|
2310
|
+
widget: new HeadingLabel(Number(heading[1]))
|
|
2311
|
+
}).range(mark.from, end)
|
|
2312
|
+
);
|
|
2313
|
+
}
|
|
2314
|
+
return;
|
|
2315
|
+
}
|
|
2316
|
+
if (name === "ListMark") {
|
|
2317
|
+
const end = skipSpaces(state, node.to);
|
|
2318
|
+
const char = doc.sliceString(node.from, node.to);
|
|
2319
|
+
const bullet = ["-", "+", "*"].includes(char);
|
|
2320
|
+
const task = node.node.nextSibling?.firstChild;
|
|
2321
|
+
const isTask = bullet && task?.name === "TaskMarker" && doc.sliceString(end, task.from).trim() === "";
|
|
2322
|
+
if (isTask && task) {
|
|
2323
|
+
if (end > node.from) decos.push(hidden.range(node.from, end));
|
|
2324
|
+
decos.push(taskMark.range(task.from, skipSpaces(state, task.to)));
|
|
2325
|
+
return;
|
|
2326
|
+
}
|
|
2327
|
+
if (bullet) {
|
|
2328
|
+
decos.push(
|
|
2329
|
+
Decoration3.replace({ widget: new Bullet() }).range(node.from, end)
|
|
2330
|
+
);
|
|
2331
|
+
} else {
|
|
2332
|
+
decos.push(numberMark.range(node.from, end));
|
|
2333
|
+
}
|
|
2334
|
+
return;
|
|
2335
|
+
}
|
|
2336
|
+
if (name === "Blockquote") {
|
|
2337
|
+
for (let p = node.node.parent; p; p = p.parent)
|
|
2338
|
+
if (p.name === "Blockquote") return;
|
|
2339
|
+
const first = doc.lineAt(node.from).number;
|
|
2340
|
+
const last = doc.lineAt(node.to).number;
|
|
2341
|
+
for (let n = first; n <= last; n++) {
|
|
2342
|
+
const line = doc.line(n);
|
|
2343
|
+
const classes = ["cm-md-quote"];
|
|
2344
|
+
if (n === first) classes.push("cm-md-quote-first");
|
|
2345
|
+
if (n === last) classes.push("cm-md-quote-last");
|
|
2346
|
+
decos.push(
|
|
2347
|
+
Decoration3.line({ class: classes.join(" ") }).range(line.from)
|
|
2348
|
+
);
|
|
2349
|
+
}
|
|
2350
|
+
return;
|
|
2351
|
+
}
|
|
2352
|
+
if (name === "QuoteMark") {
|
|
2353
|
+
const line = doc.lineAt(node.from);
|
|
2354
|
+
const before = doc.sliceString(line.from, node.from);
|
|
2355
|
+
if (before.trim() !== "") return;
|
|
2356
|
+
let end = node.to;
|
|
2357
|
+
for (; ; ) {
|
|
2358
|
+
const next = skipSpaces(state, end);
|
|
2359
|
+
if (doc.sliceString(next, next + 1) !== ">") break;
|
|
2360
|
+
end = next + 1;
|
|
2361
|
+
}
|
|
2362
|
+
end = skipSpaces(state, end);
|
|
2363
|
+
decos.push(
|
|
2364
|
+
(editing.has(line.number) ? quoteMark : hidden).range(
|
|
2365
|
+
line.from,
|
|
2366
|
+
end
|
|
2367
|
+
)
|
|
2368
|
+
);
|
|
2369
|
+
}
|
|
2370
|
+
}
|
|
2371
|
+
});
|
|
2372
|
+
}
|
|
2373
|
+
return Decoration3.set(decos, true);
|
|
2374
|
+
}
|
|
2375
|
+
var marginPlugin = ViewPlugin3.fromClass(
|
|
2376
|
+
class {
|
|
2377
|
+
decorations;
|
|
2378
|
+
constructor(view) {
|
|
2379
|
+
this.decorations = build2(view);
|
|
2380
|
+
}
|
|
2381
|
+
update(update) {
|
|
2382
|
+
if (update.docChanged || update.selectionSet || update.viewportChanged || syntaxTree2(update.startState) !== syntaxTree2(update.state)) {
|
|
2383
|
+
this.decorations = build2(update.view);
|
|
2384
|
+
}
|
|
2385
|
+
}
|
|
2386
|
+
},
|
|
2387
|
+
{ decorations: (v) => v.decorations }
|
|
2388
|
+
);
|
|
2389
|
+
var zoomed = (length) => `calc(${length} * var(--markdown-zoom, 1))`;
|
|
2390
|
+
var marginTheme = EditorView3.baseTheme({
|
|
2391
|
+
".cm-content": {
|
|
2392
|
+
"--markdown-hang": zoomed("2.5rem")
|
|
2393
|
+
},
|
|
2394
|
+
".cm-md-hang": {
|
|
2395
|
+
display: "inline-flex",
|
|
2396
|
+
justifyContent: "flex-end",
|
|
2397
|
+
alignItems: "baseline",
|
|
2398
|
+
boxSizing: "border-box",
|
|
2399
|
+
width: "var(--markdown-hang)",
|
|
2400
|
+
marginLeft: "calc(-1 * var(--markdown-hang))",
|
|
2401
|
+
paddingRight: zoomed("0.6rem"),
|
|
2402
|
+
whiteSpace: "pre",
|
|
2403
|
+
// a heading's raw `## ` shrinks to label size so it fits the margin.
|
|
2404
|
+
fontSize: zoomed("0.8rem"),
|
|
2405
|
+
color: "var(--text-editor-line-offset-40, #999)",
|
|
2406
|
+
fontWeight: "normal",
|
|
2407
|
+
fontStyle: "normal",
|
|
2408
|
+
textDecoration: "none"
|
|
2409
|
+
},
|
|
2410
|
+
// highlight spans inside the box (a heading's `##`) keep their own size and
|
|
2411
|
+
// margins otherwise, and as flex items those margins would push the line.
|
|
2412
|
+
".cm-md-hang *": {
|
|
2413
|
+
fontSize: "inherit",
|
|
2414
|
+
margin: "0"
|
|
2415
|
+
},
|
|
2416
|
+
".cm-md-hang-number": {
|
|
2417
|
+
fontSize: "inherit",
|
|
2418
|
+
color: "inherit",
|
|
2419
|
+
fontVariantNumeric: "tabular-nums"
|
|
2420
|
+
},
|
|
2421
|
+
".cm-md-heading-label": {
|
|
2422
|
+
fontFamily: "var(--markdown-body-family, inherit)",
|
|
2423
|
+
letterSpacing: "0.02em"
|
|
2424
|
+
},
|
|
2425
|
+
".cm-md-heading-level": {
|
|
2426
|
+
fontSize: "0.75em",
|
|
2427
|
+
verticalAlign: "-0.15em"
|
|
2428
|
+
},
|
|
2429
|
+
".cm-md-hang .cm-bullet": {
|
|
2430
|
+
display: "inline-block",
|
|
2431
|
+
width: "0.4em",
|
|
2432
|
+
height: "0.4em",
|
|
2433
|
+
borderRadius: "50%",
|
|
2434
|
+
background: "var(--syntax-list-marker, currentColor)",
|
|
2435
|
+
color: "var(--text-editor-line)",
|
|
2436
|
+
alignSelf: "center"
|
|
2437
|
+
},
|
|
2438
|
+
".cm-md-hang .cm-task": {
|
|
2439
|
+
margin: "0"
|
|
2440
|
+
},
|
|
2441
|
+
".cm-md-quote": {
|
|
2442
|
+
position: "relative"
|
|
2443
|
+
},
|
|
2444
|
+
".cm-md-quote::before": {
|
|
2445
|
+
content: '""',
|
|
2446
|
+
position: "absolute",
|
|
2447
|
+
// centred in the left half of the margin, clear of a hung `>`.
|
|
2448
|
+
left: "calc(-0.5 * var(--markdown-hang))",
|
|
2449
|
+
top: "0",
|
|
2450
|
+
bottom: "0",
|
|
2451
|
+
width: "3px",
|
|
2452
|
+
background: "var(--syntax-quote-bar, var(--studio-link, currentColor))",
|
|
2453
|
+
opacity: "0.6"
|
|
2454
|
+
},
|
|
2455
|
+
".cm-md-quote-first::before": {
|
|
2456
|
+
top: "0.2em",
|
|
2457
|
+
borderTopLeftRadius: "3px",
|
|
2458
|
+
borderTopRightRadius: "3px"
|
|
2459
|
+
},
|
|
2460
|
+
".cm-md-quote-last::before": {
|
|
2461
|
+
bottom: "0.2em",
|
|
2462
|
+
borderBottomLeftRadius: "3px",
|
|
2463
|
+
borderBottomRightRadius: "3px"
|
|
2464
|
+
}
|
|
2465
|
+
});
|
|
2466
|
+
var margin = [marginPlugin, marginTheme];
|
|
2467
|
+
|
|
2228
2468
|
// src/extensions/zoom.ts
|
|
2229
2469
|
import { Prec as Prec2 } from "@codemirror/state";
|
|
2230
2470
|
import { keymap } from "@codemirror/view";
|
|
@@ -2233,10 +2473,10 @@ var FALLBACK_FONT_SIZE = 16;
|
|
|
2233
2473
|
var px = (value) => parseFloat(value) || FALLBACK_FONT_SIZE;
|
|
2234
2474
|
function baseSize(view) {
|
|
2235
2475
|
const { style } = view.dom;
|
|
2236
|
-
const
|
|
2476
|
+
const zoomed3 = style.fontSize;
|
|
2237
2477
|
style.fontSize = "";
|
|
2238
2478
|
const base = px(getComputedStyle(view.dom).fontSize);
|
|
2239
|
-
style.fontSize =
|
|
2479
|
+
style.fontSize = zoomed3;
|
|
2240
2480
|
return base;
|
|
2241
2481
|
}
|
|
2242
2482
|
function step(view, by) {
|
|
@@ -2268,20 +2508,10 @@ var markdownZoom = Prec2.high(
|
|
|
2268
2508
|
);
|
|
2269
2509
|
|
|
2270
2510
|
// src/themes/markdown.ts
|
|
2271
|
-
import {
|
|
2272
|
-
|
|
2273
|
-
syntaxHighlighting,
|
|
2274
|
-
syntaxTree as syntaxTree2
|
|
2275
|
-
} from "@codemirror/language";
|
|
2276
|
-
import { RangeSetBuilder as RangeSetBuilder3 } from "@codemirror/state";
|
|
2277
|
-
import {
|
|
2278
|
-
Decoration as Decoration3,
|
|
2279
|
-
EditorView as EditorView4,
|
|
2280
|
-
ViewPlugin as ViewPlugin3,
|
|
2281
|
-
WidgetType as WidgetType2
|
|
2282
|
-
} from "@codemirror/view";
|
|
2511
|
+
import { HighlightStyle, syntaxHighlighting } from "@codemirror/language";
|
|
2512
|
+
import { EditorView as EditorView5 } from "@codemirror/view";
|
|
2283
2513
|
var bodyFont = (style) => style == "serif" ? 'var(--text-editor-family-serif, "Merriweather", serif)' : "var(--text-editor-family-sans)";
|
|
2284
|
-
var
|
|
2514
|
+
var zoomed2 = (length) => `calc(${length} * var(--markdown-zoom, 1))`;
|
|
2285
2515
|
var markdownStyles = (style) => ({
|
|
2286
2516
|
"&": {},
|
|
2287
2517
|
"&.cm-editor.cm-focused": {
|
|
@@ -2301,20 +2531,24 @@ var markdownStyles = (style) => ({
|
|
|
2301
2531
|
background: "transparent"
|
|
2302
2532
|
},
|
|
2303
2533
|
".cm-content": {
|
|
2534
|
+
// for things outside the highlighter (the link widget) to match the text.
|
|
2535
|
+
"--markdown-body-family": bodyFont(style),
|
|
2304
2536
|
// Justified text makes it look more like the I&S web essay template,
|
|
2305
2537
|
// but doesn't feel right for most documents.
|
|
2306
2538
|
// textAlign: "justify",
|
|
2307
2539
|
textWrap: "pretty",
|
|
2308
2540
|
fontFamily: bodyFont(style),
|
|
2309
|
-
lineHeight:
|
|
2541
|
+
lineHeight: zoomed2("1.5rem"),
|
|
2310
2542
|
color: "var(--text-editor-line)",
|
|
2311
2543
|
caretColor: "var(--text-editor-cursor-fill)",
|
|
2312
2544
|
background: "var(--text-editor-fill)",
|
|
2313
|
-
marginBlock:
|
|
2545
|
+
marginBlock: zoomed2("2rem"),
|
|
2314
2546
|
marginInline: "auto",
|
|
2315
2547
|
// lol i guess this is the same as box-sizing: content-box
|
|
2316
|
-
maxWidth: `calc(var(--max-text-line-width, 100ex) - ${
|
|
2317
|
-
padding:
|
|
2548
|
+
maxWidth: `calc(var(--max-text-line-width, 100ex) - ${zoomed2("2rem")})`,
|
|
2549
|
+
padding: zoomed2("2rem"),
|
|
2550
|
+
// room for the markers hung in the margin (extensions/margin.ts).
|
|
2551
|
+
paddingLeft: `calc(${zoomed2("2rem")} + var(--markdown-hang, 0px))`,
|
|
2318
2552
|
boxShadow: "none",
|
|
2319
2553
|
marginBottom: "8em",
|
|
2320
2554
|
borderRadius: "8px"
|
|
@@ -2322,20 +2556,6 @@ var markdownStyles = (style) => ({
|
|
|
2322
2556
|
".cm-content li": {
|
|
2323
2557
|
marginBottom: 0
|
|
2324
2558
|
},
|
|
2325
|
-
".cm-bullet": {
|
|
2326
|
-
display: "inline-block",
|
|
2327
|
-
width: "1ch"
|
|
2328
|
-
},
|
|
2329
|
-
".cm-bullet::before": {
|
|
2330
|
-
content: '""',
|
|
2331
|
-
display: "inline-block",
|
|
2332
|
-
width: "0.4em",
|
|
2333
|
-
height: "0.4em",
|
|
2334
|
-
borderRadius: "50%",
|
|
2335
|
-
background: "currentColor",
|
|
2336
|
-
color: "var(--text-editor-line)",
|
|
2337
|
-
verticalAlign: "0.15em"
|
|
2338
|
-
},
|
|
2339
2559
|
".cm-task": {
|
|
2340
2560
|
margin: "0 0.1em",
|
|
2341
2561
|
verticalAlign: "-0.1em",
|
|
@@ -2351,7 +2571,7 @@ var markdownStyles = (style) => ({
|
|
|
2351
2571
|
backgroundColor: "inherit"
|
|
2352
2572
|
},
|
|
2353
2573
|
".frontmatter, .frontmatter *": {
|
|
2354
|
-
fontSize:
|
|
2574
|
+
fontSize: zoomed2("14px"),
|
|
2355
2575
|
fontFamily: "var(--text-editor-family-code)",
|
|
2356
2576
|
color: "var(--syntax-comment, #666)",
|
|
2357
2577
|
textDecoration: "none",
|
|
@@ -2380,9 +2600,6 @@ var markdownStyles = (style) => ({
|
|
|
2380
2600
|
},
|
|
2381
2601
|
".cm-folded-range": {
|
|
2382
2602
|
background: "var(--text-editor-fill)"
|
|
2383
|
-
},
|
|
2384
|
-
".codeblock": {
|
|
2385
|
-
background: "orange"
|
|
2386
2603
|
}
|
|
2387
2604
|
});
|
|
2388
2605
|
var baseHeadingStyles = {
|
|
@@ -2395,7 +2612,12 @@ var baseCodeStyles = {
|
|
|
2395
2612
|
fontSize: "1em"
|
|
2396
2613
|
};
|
|
2397
2614
|
var markdownSyntaxHighlighting = (style) => HighlightStyle.define([
|
|
2398
|
-
// this is how you ensure that codeblocks are still monospace
|
|
2615
|
+
// this is how you ensure that codeblocks are still monospace.
|
|
2616
|
+
// a node's own class *replaces* its parent's in the highlighter, so text
|
|
2617
|
+
// inside **bold**, *italic* and ~~struck~~ loses this one and falls back to
|
|
2618
|
+
// `.cm-content`, which the patchwork theme sets to the code font. those
|
|
2619
|
+
// rules set the body font again; inline code inside them still wins,
|
|
2620
|
+
// being later in this list.
|
|
2399
2621
|
{
|
|
2400
2622
|
tag: tags.content,
|
|
2401
2623
|
fontFamily: bodyFont(style)
|
|
@@ -2403,33 +2625,33 @@ var markdownSyntaxHighlighting = (style) => HighlightStyle.define([
|
|
|
2403
2625
|
{
|
|
2404
2626
|
tag: tags.heading1,
|
|
2405
2627
|
...baseHeadingStyles,
|
|
2406
|
-
fontSize: `var(--studio-heading-size-1, ${
|
|
2407
|
-
lineHeight:
|
|
2408
|
-
marginBottom:
|
|
2409
|
-
marginTop:
|
|
2628
|
+
fontSize: `var(--studio-heading-size-1, ${zoomed2("1.5rem")})`,
|
|
2629
|
+
lineHeight: zoomed2("2rem"),
|
|
2630
|
+
marginBottom: zoomed2("1rem"),
|
|
2631
|
+
marginTop: zoomed2("2rem")
|
|
2410
2632
|
},
|
|
2411
2633
|
{
|
|
2412
2634
|
tag: tags.heading2,
|
|
2413
2635
|
...baseHeadingStyles,
|
|
2414
|
-
fontSize: `var(--studio-heading-size-2, ${
|
|
2415
|
-
lineHeight:
|
|
2416
|
-
marginBottom:
|
|
2417
|
-
marginTop:
|
|
2636
|
+
fontSize: `var(--studio-heading-size-2, ${zoomed2("1.5rem")})`,
|
|
2637
|
+
lineHeight: zoomed2("2rem"),
|
|
2638
|
+
marginBottom: zoomed2("1rem"),
|
|
2639
|
+
marginTop: zoomed2("2rem")
|
|
2418
2640
|
},
|
|
2419
2641
|
{
|
|
2420
2642
|
tag: tags.heading3,
|
|
2421
2643
|
...baseHeadingStyles,
|
|
2422
|
-
fontSize: `var(--studio-heading-size-3, ${
|
|
2423
|
-
lineHeight:
|
|
2424
|
-
marginBottom:
|
|
2425
|
-
marginTop:
|
|
2644
|
+
fontSize: `var(--studio-heading-size-3, ${zoomed2("1.25rem")})`,
|
|
2645
|
+
lineHeight: zoomed2("1.75rem"),
|
|
2646
|
+
marginBottom: zoomed2("1rem"),
|
|
2647
|
+
marginTop: zoomed2("2rem")
|
|
2426
2648
|
},
|
|
2427
2649
|
{
|
|
2428
2650
|
tag: tags.heading4,
|
|
2429
2651
|
...baseHeadingStyles,
|
|
2430
|
-
fontSize: `var(--studio-heading-size-4, ${
|
|
2431
|
-
marginBottom:
|
|
2432
|
-
marginTop:
|
|
2652
|
+
fontSize: `var(--studio-heading-size-4, ${zoomed2("1.1rem")})`,
|
|
2653
|
+
marginBottom: zoomed2("1rem"),
|
|
2654
|
+
marginTop: zoomed2("2rem")
|
|
2433
2655
|
},
|
|
2434
2656
|
{
|
|
2435
2657
|
tag: tags.processingInstruction,
|
|
@@ -2443,14 +2665,17 @@ var markdownSyntaxHighlighting = (style) => HighlightStyle.define([
|
|
|
2443
2665
|
{ tag: tags.quote, fontStyle: "var(--syntax-style-quote, italic)" },
|
|
2444
2666
|
{
|
|
2445
2667
|
tag: tags.strong,
|
|
2668
|
+
fontFamily: bodyFont(style),
|
|
2446
2669
|
fontWeight: "var(--syntax-weight-strong, bold)"
|
|
2447
2670
|
},
|
|
2448
2671
|
{
|
|
2449
2672
|
tag: tags.emphasis,
|
|
2673
|
+
fontFamily: bodyFont(style),
|
|
2450
2674
|
fontStyle: "var(--syntax-style-emphasis, italic)"
|
|
2451
2675
|
},
|
|
2452
2676
|
{
|
|
2453
2677
|
tag: tags.strikethrough,
|
|
2678
|
+
fontFamily: bodyFont(style),
|
|
2454
2679
|
textDecoration: "line-through"
|
|
2455
2680
|
},
|
|
2456
2681
|
{
|
|
@@ -2499,81 +2724,9 @@ var markdownSyntaxHighlighting = (style) => HighlightStyle.define([
|
|
|
2499
2724
|
{ tag: tags.monospace, ...baseCodeStyles }
|
|
2500
2725
|
]);
|
|
2501
2726
|
var theme = (style) => [
|
|
2502
|
-
|
|
2503
|
-
syntaxHighlighting(markdownSyntaxHighlighting(style))
|
|
2504
|
-
bullets,
|
|
2505
|
-
codeblocks
|
|
2727
|
+
EditorView5.theme(markdownStyles(style)),
|
|
2728
|
+
syntaxHighlighting(markdownSyntaxHighlighting(style))
|
|
2506
2729
|
];
|
|
2507
|
-
var bullets = ViewPlugin3.fromClass(
|
|
2508
|
-
class {
|
|
2509
|
-
decorations;
|
|
2510
|
-
view;
|
|
2511
|
-
constructor(view) {
|
|
2512
|
-
this.view = view;
|
|
2513
|
-
this.decorations = this.build();
|
|
2514
|
-
}
|
|
2515
|
-
update(update) {
|
|
2516
|
-
if (update.docChanged || update.viewportChanged) {
|
|
2517
|
-
this.decorations = this.build();
|
|
2518
|
-
}
|
|
2519
|
-
}
|
|
2520
|
-
build() {
|
|
2521
|
-
const builder = new RangeSetBuilder3();
|
|
2522
|
-
const doc = this.view.state.doc;
|
|
2523
|
-
syntaxTree2(this.view.state).iterate({
|
|
2524
|
-
enter: ({ type, from }) => {
|
|
2525
|
-
if (type.name === "ListMark") {
|
|
2526
|
-
const char = doc.sliceString(from, from + 1);
|
|
2527
|
-
if (["-", "+", "*"].includes(char)) {
|
|
2528
|
-
builder.add(
|
|
2529
|
-
from,
|
|
2530
|
-
from + 1,
|
|
2531
|
-
Decoration3.replace({ widget: new BulletWidget() })
|
|
2532
|
-
);
|
|
2533
|
-
}
|
|
2534
|
-
}
|
|
2535
|
-
}
|
|
2536
|
-
});
|
|
2537
|
-
return builder.finish();
|
|
2538
|
-
}
|
|
2539
|
-
},
|
|
2540
|
-
{
|
|
2541
|
-
decorations: (v) => v.decorations
|
|
2542
|
-
}
|
|
2543
|
-
);
|
|
2544
|
-
var BulletWidget = class extends WidgetType2 {
|
|
2545
|
-
toDOM() {
|
|
2546
|
-
const span = document.createElement("span");
|
|
2547
|
-
span.className = "cm-bullet";
|
|
2548
|
-
return span;
|
|
2549
|
-
}
|
|
2550
|
-
};
|
|
2551
|
-
var codeblocks = ViewPlugin3.fromClass(
|
|
2552
|
-
class BlockquotePlugin {
|
|
2553
|
-
decorations = Decoration3.none;
|
|
2554
|
-
constructor(view) {
|
|
2555
|
-
this.buildDeco(view);
|
|
2556
|
-
}
|
|
2557
|
-
update(update) {
|
|
2558
|
-
this.buildDeco(update.view);
|
|
2559
|
-
}
|
|
2560
|
-
buildDeco(view) {
|
|
2561
|
-
const builder = new RangeSetBuilder3();
|
|
2562
|
-
view.viewportLineBlocks.forEach((line) => {
|
|
2563
|
-
const lineObj = view.state.doc.lineAt(line.from);
|
|
2564
|
-
const match = /^>.*/g.exec(lineObj.text);
|
|
2565
|
-
if (match && match[0]) {
|
|
2566
|
-
builder.add(
|
|
2567
|
-
line.from,
|
|
2568
|
-
line.from,
|
|
2569
|
-
Decoration3.line({ class: "codeblock" })
|
|
2570
|
-
);
|
|
2571
|
-
}
|
|
2572
|
-
});
|
|
2573
|
-
this.decorations = builder.finish();
|
|
2574
|
-
}
|
|
2575
|
-
}
|
|
2576
|
-
);
|
|
2577
2730
|
|
|
2578
2731
|
// src/extensions/markdown.ts
|
|
2579
2732
|
function markdownExtensions() {
|
|
@@ -2589,14 +2742,28 @@ function markdownExtensions() {
|
|
|
2589
2742
|
...completionKeymap,
|
|
2590
2743
|
indentWithTab
|
|
2591
2744
|
]),
|
|
2592
|
-
|
|
2745
|
+
EditorView6.lineWrapping,
|
|
2593
2746
|
// GFM base: task lists, tables, strikethrough, autolinks.
|
|
2594
|
-
markdown({
|
|
2747
|
+
markdown({
|
|
2748
|
+
base: markdownLanguage,
|
|
2749
|
+
codeLanguages: languages,
|
|
2750
|
+
extensions: [bareUrls]
|
|
2751
|
+
}),
|
|
2595
2752
|
taskCheckboxes,
|
|
2753
|
+
margin,
|
|
2596
2754
|
indentUnit.of(" ")
|
|
2597
2755
|
];
|
|
2598
2756
|
}
|
|
2757
|
+
var bareUrls = {
|
|
2758
|
+
props: [
|
|
2759
|
+
styleTags({
|
|
2760
|
+
URL: tags.link,
|
|
2761
|
+
"Link/URL Image/URL Autolink/URL LinkReference/URL": tags.url
|
|
2762
|
+
})
|
|
2763
|
+
]
|
|
2764
|
+
};
|
|
2599
2765
|
export {
|
|
2766
|
+
bareUrls,
|
|
2600
2767
|
markdownExtensions
|
|
2601
2768
|
};
|
|
2602
2769
|
//# sourceMappingURL=markdown.js.map
|