mossmd 0.8.1
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/CHANGELOG.md +87 -0
- package/LICENSE +21 -0
- package/README.md +336 -0
- package/dist/collab/index.d.ts +14 -0
- package/dist/collab/index.d.ts.map +1 -0
- package/dist/collab/index.js +6 -0
- package/dist/collab/index.js.map +1 -0
- package/dist/core/code-languages.d.ts +3 -0
- package/dist/core/code-languages.d.ts.map +1 -0
- package/dist/core/code-languages.js +130 -0
- package/dist/core/code-languages.js.map +1 -0
- package/dist/core/decoration-utils.d.ts +4 -0
- package/dist/core/decoration-utils.d.ts.map +1 -0
- package/dist/core/decoration-utils.js +25 -0
- package/dist/core/decoration-utils.js.map +1 -0
- package/dist/core/edit-helpers.d.ts +13 -0
- package/dist/core/edit-helpers.d.ts.map +1 -0
- package/dist/core/edit-helpers.js +318 -0
- package/dist/core/edit-helpers.js.map +1 -0
- package/dist/core/icons.d.ts +16 -0
- package/dist/core/icons.d.ts.map +1 -0
- package/dist/core/icons.js +86 -0
- package/dist/core/icons.js.map +1 -0
- package/dist/core/inline-preview.d.ts +32 -0
- package/dist/core/inline-preview.d.ts.map +1 -0
- package/dist/core/inline-preview.js +925 -0
- package/dist/core/inline-preview.js.map +1 -0
- package/dist/core/list-editing.d.ts +10 -0
- package/dist/core/list-editing.d.ts.map +1 -0
- package/dist/core/list-editing.js +244 -0
- package/dist/core/list-editing.js.map +1 -0
- package/dist/core/list-model.d.ts +40 -0
- package/dist/core/list-model.d.ts.map +1 -0
- package/dist/core/list-model.js +114 -0
- package/dist/core/list-model.js.map +1 -0
- package/dist/core/list-navigation.d.ts +3 -0
- package/dist/core/list-navigation.d.ts.map +1 -0
- package/dist/core/list-navigation.js +234 -0
- package/dist/core/list-navigation.js.map +1 -0
- package/dist/core/markdown-context.d.ts +3 -0
- package/dist/core/markdown-context.d.ts.map +1 -0
- package/dist/core/markdown-context.js +10 -0
- package/dist/core/markdown-context.js.map +1 -0
- package/dist/core/preview-activity.d.ts +18 -0
- package/dist/core/preview-activity.d.ts.map +1 -0
- package/dist/core/preview-activity.js +199 -0
- package/dist/core/preview-activity.js.map +1 -0
- package/dist/core/preview-widgets.d.ts +65 -0
- package/dist/core/preview-widgets.d.ts.map +1 -0
- package/dist/core/preview-widgets.js +359 -0
- package/dist/core/preview-widgets.js.map +1 -0
- package/dist/core/read-only.d.ts +26 -0
- package/dist/core/read-only.d.ts.map +1 -0
- package/dist/core/read-only.js +49 -0
- package/dist/core/read-only.js.map +1 -0
- package/dist/core/tree-progress.d.ts +29 -0
- package/dist/core/tree-progress.d.ts.map +1 -0
- package/dist/core/tree-progress.js +143 -0
- package/dist/core/tree-progress.js.map +1 -0
- package/dist/editor.d.ts +219 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/editor.js +551 -0
- package/dist/editor.js.map +1 -0
- package/dist/features/callout/index.d.ts +9 -0
- package/dist/features/callout/index.d.ts.map +1 -0
- package/dist/features/callout/index.js +223 -0
- package/dist/features/callout/index.js.map +1 -0
- package/dist/features/file-blocks/index.d.ts +12 -0
- package/dist/features/file-blocks/index.d.ts.map +1 -0
- package/dist/features/file-blocks/index.js +397 -0
- package/dist/features/file-blocks/index.js.map +1 -0
- package/dist/features/image/index.d.ts +28 -0
- package/dist/features/image/index.d.ts.map +1 -0
- package/dist/features/image/index.js +699 -0
- package/dist/features/image/index.js.map +1 -0
- package/dist/features/index.d.ts +17 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +9 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/search/index.d.ts +4 -0
- package/dist/features/search/index.d.ts.map +1 -0
- package/dist/features/search/index.js +131 -0
- package/dist/features/search/index.js.map +1 -0
- package/dist/features/slash-commands/index.d.ts +52 -0
- package/dist/features/slash-commands/index.d.ts.map +1 -0
- package/dist/features/slash-commands/index.js +422 -0
- package/dist/features/slash-commands/index.js.map +1 -0
- package/dist/features/table/index.d.ts +44 -0
- package/dist/features/table/index.d.ts.map +1 -0
- package/dist/features/table/index.js +1262 -0
- package/dist/features/table/index.js.map +1 -0
- package/dist/features/upload/index.d.ts +80 -0
- package/dist/features/upload/index.d.ts.map +1 -0
- package/dist/features/upload/index.js +790 -0
- package/dist/features/upload/index.js.map +1 -0
- package/dist/features/wiki-links/index.d.ts +27 -0
- package/dist/features/wiki-links/index.d.ts.map +1 -0
- package/dist/features/wiki-links/index.js +577 -0
- package/dist/features/wiki-links/index.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/content.css +247 -0
- package/dist/styles/inline-preview.css +2116 -0
- package/dist/styles/tokens.css +234 -0
- package/dist/syntax/highlight.d.ts +10 -0
- package/dist/syntax/highlight.d.ts.map +1 -0
- package/dist/syntax/highlight.js +75 -0
- package/dist/syntax/highlight.js.map +1 -0
- package/dist/syntax/index.d.ts +16 -0
- package/dist/syntax/index.d.ts.map +1 -0
- package/dist/syntax/index.js +29 -0
- package/dist/syntax/index.js.map +1 -0
- package/dist/theme/index.d.ts +6 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +204 -0
- package/dist/theme/index.js.map +1 -0
- package/package.json +237 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EditorView } from '@codemirror/view';
|
|
2
|
+
export declare const startAsteriskList: import("@codemirror/state").Extension;
|
|
3
|
+
export declare function startAsteriskListInput(view: EditorView, from: number, to: number, text: string): boolean;
|
|
4
|
+
export declare const extendEmphasisPair: import("@codemirror/state").Extension;
|
|
5
|
+
export declare const autoCloseCodeFence: import("@codemirror/state").Extension;
|
|
6
|
+
export declare const imeCompositionGuard: import("@codemirror/state").Extension;
|
|
7
|
+
export declare function autoCloseCodeFenceInput(view: EditorView, from: number, to: number, text: string): boolean;
|
|
8
|
+
export declare const separateHorizontalRule: import("@codemirror/state").Extension;
|
|
9
|
+
export declare function separateHorizontalRuleInput(view: EditorView, from: number, to: number, text: string): boolean;
|
|
10
|
+
export declare const normalizeDigitPunctuation: import("@codemirror/state").Extension;
|
|
11
|
+
export declare function normalizeDigitPunctuationInput(view: EditorView, from: number, to: number, text: string): boolean;
|
|
12
|
+
export declare function deleteEmptyOrderedListMarkerBackward(view: EditorView): boolean;
|
|
13
|
+
//# sourceMappingURL=edit-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit-helpers.d.ts","sourceRoot":"","sources":["../../src/core/edit-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQ9C,eAAO,MAAM,iBAAiB,uCAE7B,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GACX,OAAO,CA8BT;AAkBD,eAAO,MAAM,kBAAkB,uCAoB9B,CAAC;AAkBF,eAAO,MAAM,kBAAkB,uCAE9B,CAAC;AAiBF,eAAO,MAAM,mBAAmB,uCAoB/B,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GACX,OAAO,CAoBT;AAED,eAAO,MAAM,sBAAsB,uCAElC,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GACX,OAAO,CAyBT;AAyDD,eAAO,MAAM,yBAAyB,uCAsBrC,CAAC;AAwDF,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GACX,OAAO,CAoBT;AAMD,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAiB9E"}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
import { syntaxTree } from '@codemirror/language';
|
|
2
|
+
import { Prec } from '@codemirror/state';
|
|
3
|
+
import { EditorView } from '@codemirror/view';
|
|
4
|
+
// Resolve the ambiguity between an emphasis opener and an unordered-list
|
|
5
|
+
// marker. A lone `*` still auto-pairs so italic/bold typing keeps its current
|
|
6
|
+
// ergonomics. Once the next input is a space at a whitespace-only line
|
|
7
|
+
// prefix, the intent is unambiguously a list marker: consume the auto-added
|
|
8
|
+
// closer so `*|*` becomes `* |` before item text is entered.
|
|
9
|
+
export const startAsteriskList = Prec.highest(EditorView.inputHandler.of(startAsteriskListInput));
|
|
10
|
+
export function startAsteriskListInput(view, from, to, text) {
|
|
11
|
+
if (text !== ' ' || from !== to)
|
|
12
|
+
return false;
|
|
13
|
+
const { state } = view;
|
|
14
|
+
if (state.selection.ranges.length !== 1 || !state.selection.main.empty) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const line = state.doc.lineAt(from);
|
|
18
|
+
const before = state.doc.sliceString(line.from, from);
|
|
19
|
+
// Besides plain/nested list indentation, allow one or more CommonMark
|
|
20
|
+
// blockquote prefixes (`> * `, `> > * `). Other prose before the star
|
|
21
|
+
// remains emphasis and falls through untouched.
|
|
22
|
+
if (!/^(?:[ \t]{0,3}>[ \t]?)*[ \t]*\*$/.test(before))
|
|
23
|
+
return false;
|
|
24
|
+
if (state.doc.sliceString(from, from + 1) !== '*')
|
|
25
|
+
return false;
|
|
26
|
+
// Four-space indented and fenced code can legitimately begin with `* `.
|
|
27
|
+
// Do not reinterpret those literal characters as a Markdown list marker.
|
|
28
|
+
for (let node = syntaxTree(state).resolveInner(from, -1); node; node = node.parent) {
|
|
29
|
+
if (node.name === 'CodeBlock' || node.name === 'FencedCode')
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
view.dispatch({
|
|
33
|
+
changes: { from, to: from + 1, insert: ' ' },
|
|
34
|
+
selection: { anchor: from + 1 },
|
|
35
|
+
});
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
// Obsidian-style extension of emphasis pairs.
|
|
39
|
+
//
|
|
40
|
+
// Problem: CM6's built-in `closeBrackets()` handles single-char pairs
|
|
41
|
+
// well (type `*`, get `*|*`). Typing a second `*` with the cursor
|
|
42
|
+
// between them is treated as "step through the closer" and produces
|
|
43
|
+
// `**|` — which means writing bold (`**foo**`) is a 5-keystroke dance
|
|
44
|
+
// (star, star-step, content, star-new-pair, star-step).
|
|
45
|
+
//
|
|
46
|
+
// This handler fires when the user types `*` (or `_`) with the cursor
|
|
47
|
+
// sitting exactly between two matching characters — an empty pair
|
|
48
|
+
// that closeBrackets just inserted. Instead of stepping through, we
|
|
49
|
+
// extend the pair: `*|*` becomes `**|**`, ready for bold content. All
|
|
50
|
+
// other cases fall through to closeBrackets.
|
|
51
|
+
//
|
|
52
|
+
// Runs at Prec.high so it beats closeBrackets' input handler when
|
|
53
|
+
// both want to act on the keystroke.
|
|
54
|
+
export const extendEmphasisPair = Prec.high(EditorView.inputHandler.of((view, from, to, text) => {
|
|
55
|
+
if (text !== '*' && text !== '_')
|
|
56
|
+
return false;
|
|
57
|
+
const { state } = view;
|
|
58
|
+
const sel = state.selection.main;
|
|
59
|
+
if (!sel.empty || from !== to)
|
|
60
|
+
return false;
|
|
61
|
+
const before = state.doc.sliceString(Math.max(0, from - 1), from);
|
|
62
|
+
const after = state.doc.sliceString(from, Math.min(state.doc.length, from + 1));
|
|
63
|
+
if (before !== text || after !== text)
|
|
64
|
+
return false;
|
|
65
|
+
view.dispatch({
|
|
66
|
+
changes: { from, insert: text + text },
|
|
67
|
+
selection: { anchor: from + 1 },
|
|
68
|
+
});
|
|
69
|
+
return true;
|
|
70
|
+
}));
|
|
71
|
+
// Auto-close markdown code fences.
|
|
72
|
+
//
|
|
73
|
+
// When the user completes an opening fence at the start of a line:
|
|
74
|
+
//
|
|
75
|
+
// ```|
|
|
76
|
+
//
|
|
77
|
+
// immediately insert the matching closing fence below:
|
|
78
|
+
//
|
|
79
|
+
// ```|
|
|
80
|
+
// ```
|
|
81
|
+
//
|
|
82
|
+
// The cursor deliberately stays after the opening marker, not inside
|
|
83
|
+
// the block, so the user can still type an info string (`ts`, `rust`,
|
|
84
|
+
// etc.) and then press Enter into the fenced body. If the cursor is
|
|
85
|
+
// already inside an open fenced block, we do nothing — in that context
|
|
86
|
+
// typing ``` is likely the user's manual closing fence.
|
|
87
|
+
export const autoCloseCodeFence = Prec.highest(EditorView.inputHandler.of(autoCloseCodeFenceInput));
|
|
88
|
+
function isImeEnterKeyEvent(event) {
|
|
89
|
+
return ((event.isComposing &&
|
|
90
|
+
(event.key === 'Enter' || event.key === 'NumpadEnter')) ||
|
|
91
|
+
(event.keyCode === 229 &&
|
|
92
|
+
(event.key === 'Enter' || event.key === 'NumpadEnter')));
|
|
93
|
+
}
|
|
94
|
+
const imeCompositionEndedAt = new WeakMap();
|
|
95
|
+
// IME candidate confirmation can arrive as an Enter-like key event after
|
|
96
|
+
// compositionend. Keep it out of every editor keymap, not just list handling,
|
|
97
|
+
// so Markdown, search, and consumer keymaps cannot turn candidate selection
|
|
98
|
+
// into a newline.
|
|
99
|
+
export const imeCompositionGuard = Prec.highest(EditorView.domEventHandlers({
|
|
100
|
+
keydown(event, view) {
|
|
101
|
+
const recentlyEnded = view !== null &&
|
|
102
|
+
Date.now() - (imeCompositionEndedAt.get(view) ?? 0) < 120;
|
|
103
|
+
if (!isImeEnterKeyEvent(event) &&
|
|
104
|
+
!(recentlyEnded && (event.key === 'Enter' || event.key === 'NumpadEnter'))) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
event.stopPropagation();
|
|
108
|
+
return true;
|
|
109
|
+
},
|
|
110
|
+
compositionend(_event, view) {
|
|
111
|
+
imeCompositionEndedAt.set(view, Date.now());
|
|
112
|
+
return false;
|
|
113
|
+
},
|
|
114
|
+
}));
|
|
115
|
+
export function autoCloseCodeFenceInput(view, from, to, text) {
|
|
116
|
+
if (text !== '`' || from !== to)
|
|
117
|
+
return false;
|
|
118
|
+
const { state } = view;
|
|
119
|
+
const line = state.doc.lineAt(from);
|
|
120
|
+
const before = state.doc.sliceString(line.from, from);
|
|
121
|
+
const after = state.doc.sliceString(from, line.to);
|
|
122
|
+
const match = before.match(/^(\s{0,3})``$/);
|
|
123
|
+
if (!match)
|
|
124
|
+
return false;
|
|
125
|
+
if (after !== '' && after !== '`')
|
|
126
|
+
return false;
|
|
127
|
+
if (isInsideFencedCodeBeforeLine(state.doc.toString(), line.number))
|
|
128
|
+
return false;
|
|
129
|
+
const indent = match[1];
|
|
130
|
+
const replaceTo = after === '`' ? from + 1 : from;
|
|
131
|
+
const insert = '`\n' + indent + '```';
|
|
132
|
+
view.dispatch({
|
|
133
|
+
changes: { from, to: replaceTo, insert },
|
|
134
|
+
selection: { anchor: from + 1 },
|
|
135
|
+
});
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
export const separateHorizontalRule = Prec.highest(EditorView.inputHandler.of(separateHorizontalRuleInput));
|
|
139
|
+
export function separateHorizontalRuleInput(view, from, to, text) {
|
|
140
|
+
if (text !== '-' || from !== to)
|
|
141
|
+
return false;
|
|
142
|
+
const { state } = view;
|
|
143
|
+
if (state.selection.ranges.length !== 1 || !state.selection.main.empty) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
const line = state.doc.lineAt(from);
|
|
147
|
+
const before = state.doc.sliceString(line.from, from);
|
|
148
|
+
const after = state.doc.sliceString(from, line.to);
|
|
149
|
+
if (!/^ {0,3}--$/.test(before) || after.trim())
|
|
150
|
+
return false;
|
|
151
|
+
if (line.number === 1 || state.doc.line(line.number - 1).text.trim() === '') {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
if (isInsideMarkdownCode(state, from))
|
|
155
|
+
return false;
|
|
156
|
+
view.dispatch({
|
|
157
|
+
changes: [
|
|
158
|
+
{ from: line.from, insert: '\n' },
|
|
159
|
+
{ from, insert: '-' },
|
|
160
|
+
],
|
|
161
|
+
selection: { anchor: from + 2 },
|
|
162
|
+
});
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
function isInsideFencedCodeBeforeLine(doc, lineNumber) {
|
|
166
|
+
const lines = doc.split('\n');
|
|
167
|
+
let marker = null;
|
|
168
|
+
let markerLength = 0;
|
|
169
|
+
for (let i = 0; i < lineNumber - 1; i++) {
|
|
170
|
+
const match = lines[i].match(/^ {0,3}(`{3,}|~{3,})/);
|
|
171
|
+
if (!match)
|
|
172
|
+
continue;
|
|
173
|
+
const currentMarker = match[1][0];
|
|
174
|
+
const currentLength = match[1].length;
|
|
175
|
+
if (!marker) {
|
|
176
|
+
marker = currentMarker;
|
|
177
|
+
markerLength = currentLength;
|
|
178
|
+
}
|
|
179
|
+
else if (currentMarker === marker && currentLength >= markerLength) {
|
|
180
|
+
marker = null;
|
|
181
|
+
markerLength = 0;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return marker !== null;
|
|
185
|
+
}
|
|
186
|
+
function isInsideMarkdownCode(state, position) {
|
|
187
|
+
for (let node = syntaxTree(state).resolveInner(position, -1); node; node = node.parent) {
|
|
188
|
+
if (node.name === 'CodeBlock' ||
|
|
189
|
+
node.name === 'FencedCode' ||
|
|
190
|
+
node.name === 'InlineCode') {
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
const DIGIT_PUNCTUATION = {
|
|
197
|
+
'。': '.',
|
|
198
|
+
'.': '.',
|
|
199
|
+
'。': '.',
|
|
200
|
+
',': ',',
|
|
201
|
+
'、': ',',
|
|
202
|
+
':': ':',
|
|
203
|
+
';': ';',
|
|
204
|
+
'?': '?',
|
|
205
|
+
'!': '!',
|
|
206
|
+
};
|
|
207
|
+
export const normalizeDigitPunctuation = Prec.highest([
|
|
208
|
+
EditorView.inputHandler.of(normalizeDigitPunctuationInput),
|
|
209
|
+
EditorView.domEventHandlers({
|
|
210
|
+
input(_event, view) {
|
|
211
|
+
scheduleDigitPunctuationNormalization(view);
|
|
212
|
+
return false;
|
|
213
|
+
},
|
|
214
|
+
compositionstart(_event, view) {
|
|
215
|
+
const timer = digitPunctuationTimers.get(view);
|
|
216
|
+
if (timer !== undefined) {
|
|
217
|
+
window.clearTimeout(timer);
|
|
218
|
+
digitPunctuationTimers.delete(view);
|
|
219
|
+
}
|
|
220
|
+
return false;
|
|
221
|
+
},
|
|
222
|
+
compositionend(_event, view) {
|
|
223
|
+
scheduleDigitPunctuationNormalization(view);
|
|
224
|
+
return false;
|
|
225
|
+
},
|
|
226
|
+
}),
|
|
227
|
+
]);
|
|
228
|
+
const digitPunctuationTimers = new WeakMap();
|
|
229
|
+
const DIGIT_PUNCTUATION_NORMALIZE_DELAY = 120;
|
|
230
|
+
function scheduleDigitPunctuationNormalization(view) {
|
|
231
|
+
if (digitPunctuationTimers.has(view))
|
|
232
|
+
return;
|
|
233
|
+
const retry = () => {
|
|
234
|
+
digitPunctuationTimers.delete(view);
|
|
235
|
+
if (view.composing) {
|
|
236
|
+
digitPunctuationTimers.set(view, window.setTimeout(retry, 16));
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
normalizeDigitPunctuationAtCursor(view);
|
|
240
|
+
};
|
|
241
|
+
digitPunctuationTimers.set(view, window.setTimeout(retry, DIGIT_PUNCTUATION_NORMALIZE_DELAY));
|
|
242
|
+
}
|
|
243
|
+
function normalizeDigitPunctuationAtCursor(view) {
|
|
244
|
+
if (view.composing)
|
|
245
|
+
return;
|
|
246
|
+
const { state } = view;
|
|
247
|
+
if (state.selection.ranges.length !== 1 || !state.selection.main.empty) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const cursor = state.selection.main.head;
|
|
251
|
+
const line = state.doc.lineAt(cursor);
|
|
252
|
+
const before = state.doc.sliceString(line.from, cursor);
|
|
253
|
+
let punctuationFrom = -1;
|
|
254
|
+
let punctuation;
|
|
255
|
+
for (let index = before.length - 1; index > 0; index--) {
|
|
256
|
+
if (!/\d/.test(before[index - 1]))
|
|
257
|
+
continue;
|
|
258
|
+
const candidate = DIGIT_PUNCTUATION[before[index]];
|
|
259
|
+
if (candidate) {
|
|
260
|
+
punctuationFrom = line.from + index;
|
|
261
|
+
punctuation = candidate;
|
|
262
|
+
break;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
if (punctuationFrom < 0 || !punctuation)
|
|
266
|
+
return;
|
|
267
|
+
if (isInsideMarkdownCode(state, punctuationFrom))
|
|
268
|
+
return;
|
|
269
|
+
view.dispatch({
|
|
270
|
+
changes: { from: punctuationFrom, to: punctuationFrom + 1, insert: punctuation },
|
|
271
|
+
selection: { anchor: cursor },
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
export function normalizeDigitPunctuationInput(view, from, to, text) {
|
|
275
|
+
const sourcePunctuation = text[0];
|
|
276
|
+
const punctuation = sourcePunctuation ? DIGIT_PUNCTUATION[sourcePunctuation] : undefined;
|
|
277
|
+
if (!punctuation || from !== to || from === 0 || view.composing)
|
|
278
|
+
return false;
|
|
279
|
+
const { state } = view;
|
|
280
|
+
if (state.selection.ranges.length !== 1 || !state.selection.main.empty) {
|
|
281
|
+
return false;
|
|
282
|
+
}
|
|
283
|
+
if (!/\d/.test(state.doc.sliceString(from - 1, from)))
|
|
284
|
+
return false;
|
|
285
|
+
if (isInsideMarkdownCode(state, from))
|
|
286
|
+
return false;
|
|
287
|
+
const rest = text.slice(sourcePunctuation.length);
|
|
288
|
+
const insert = `${punctuation}${rest}`;
|
|
289
|
+
view.dispatch({
|
|
290
|
+
changes: { from, insert },
|
|
291
|
+
selection: { anchor: from + insert.length },
|
|
292
|
+
});
|
|
293
|
+
return true;
|
|
294
|
+
}
|
|
295
|
+
// Markdown's deleteMarkupBackward intentionally treats an empty list marker
|
|
296
|
+
// as one structural unit. For a just-typed numeric marker that makes the
|
|
297
|
+
// first Backspace erase `1. ` at once, so let the user remove its characters
|
|
298
|
+
// one at a time and naturally leave list syntax when any character is gone.
|
|
299
|
+
export function deleteEmptyOrderedListMarkerBackward(view) {
|
|
300
|
+
const { state } = view;
|
|
301
|
+
const selection = state.selection.main;
|
|
302
|
+
if (!selection.empty)
|
|
303
|
+
return false;
|
|
304
|
+
const line = state.doc.lineAt(selection.head);
|
|
305
|
+
if (!/^\s*\d{1,9}[.)]\s*$/.test(line.text))
|
|
306
|
+
return false;
|
|
307
|
+
const markerStart = line.from + (line.text.match(/^\s*/)?.[0].length ?? 0);
|
|
308
|
+
if (selection.head <= markerStart)
|
|
309
|
+
return false;
|
|
310
|
+
view.dispatch({
|
|
311
|
+
changes: { from: selection.head - 1, to: selection.head },
|
|
312
|
+
selection: { anchor: selection.head - 1 },
|
|
313
|
+
userEvent: 'delete.backward',
|
|
314
|
+
scrollIntoView: true,
|
|
315
|
+
});
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
//# sourceMappingURL=edit-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit-helpers.js","sourceRoot":"","sources":["../../src/core/edit-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { LucideIcon, LucideProps } from 'lucide-react';
|
|
2
|
+
export interface MossIconProps {
|
|
3
|
+
document: Document;
|
|
4
|
+
size?: number;
|
|
5
|
+
strokeWidth?: number;
|
|
6
|
+
className?: string;
|
|
7
|
+
fill?: string;
|
|
8
|
+
ariaHidden?: boolean;
|
|
9
|
+
title?: string;
|
|
10
|
+
}
|
|
11
|
+
export type MossIconRenderer = (props: MossIconProps) => Node;
|
|
12
|
+
export declare function renderLucideIcon(document: Document, Icon: LucideIcon, props?: LucideProps): SVGSVGElement;
|
|
13
|
+
export declare function mossLucideIcon(Icon: LucideIcon, defaults?: Omit<LucideProps, 'ref'>): MossIconRenderer;
|
|
14
|
+
export declare function renderMossIcon(icon: MossIconRenderer, props: MossIconProps): Node;
|
|
15
|
+
export declare function appendMossIcon(target: Element, icon: MossIconRenderer, props?: Omit<MossIconProps, 'document'>): void;
|
|
16
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/core/icons.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAItE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AA4E9D,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,EAChB,KAAK,GAAE,WAAgB,GACtB,aAAa,CAgBf;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAM,GACtC,gBAAgB,CAUlB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,aAAa,GACnB,IAAI,CASN;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,gBAAgB,EACtB,KAAK,GAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAM,GAC1C,IAAI,CAMN"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
function attrName(name) {
|
|
2
|
+
if (name === 'className')
|
|
3
|
+
return 'class';
|
|
4
|
+
if (name === 'viewBox')
|
|
5
|
+
return 'viewBox';
|
|
6
|
+
if (name === 'preserveAspectRatio')
|
|
7
|
+
return 'preserveAspectRatio';
|
|
8
|
+
return name.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);
|
|
9
|
+
}
|
|
10
|
+
function setAttr(element, name, value) {
|
|
11
|
+
if (value == null || name === 'key' || name === 'ref')
|
|
12
|
+
return;
|
|
13
|
+
element.setAttribute(attrName(name), String(value));
|
|
14
|
+
}
|
|
15
|
+
function mergeClassName(...values) {
|
|
16
|
+
return values.filter(Boolean).join(' ');
|
|
17
|
+
}
|
|
18
|
+
function iconNodeFromLucide(Icon) {
|
|
19
|
+
const render = Icon.render;
|
|
20
|
+
const element = render?.({}, null);
|
|
21
|
+
const iconNode = element?.props.iconNode;
|
|
22
|
+
return Array.isArray(iconNode) ? iconNode : [];
|
|
23
|
+
}
|
|
24
|
+
function lucideAttrs(props = {}) {
|
|
25
|
+
const { size = 24, color, fill = 'none', strokeWidth = 2, absoluteStrokeWidth, className, children: _children, ...rest } = props;
|
|
26
|
+
const numericSize = typeof size === 'number'
|
|
27
|
+
? size
|
|
28
|
+
: Number.parseFloat(String(size));
|
|
29
|
+
const resolvedStrokeWidth = absoluteStrokeWidth && Number.isFinite(numericSize) && numericSize > 0
|
|
30
|
+
? (Number(strokeWidth) * 24) / numericSize
|
|
31
|
+
: strokeWidth;
|
|
32
|
+
return {
|
|
33
|
+
xmlns: 'http://www.w3.org/2000/svg',
|
|
34
|
+
width: size,
|
|
35
|
+
height: size,
|
|
36
|
+
viewBox: '0 0 24 24',
|
|
37
|
+
fill,
|
|
38
|
+
stroke: color ?? 'currentColor',
|
|
39
|
+
strokeWidth: resolvedStrokeWidth,
|
|
40
|
+
strokeLinecap: 'round',
|
|
41
|
+
strokeLinejoin: 'round',
|
|
42
|
+
className: mergeClassName('cm-moss-icon', className),
|
|
43
|
+
...rest,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export function renderLucideIcon(document, Icon, props = {}) {
|
|
47
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
48
|
+
const attrs = lucideAttrs(props);
|
|
49
|
+
for (const [name, value] of Object.entries(attrs)) {
|
|
50
|
+
setAttr(svg, name, value);
|
|
51
|
+
}
|
|
52
|
+
for (const [tag, childAttrs] of iconNodeFromLucide(Icon)) {
|
|
53
|
+
const child = document.createElementNS('http://www.w3.org/2000/svg', tag);
|
|
54
|
+
for (const [name, value] of Object.entries(childAttrs)) {
|
|
55
|
+
setAttr(child, name, value);
|
|
56
|
+
}
|
|
57
|
+
svg.appendChild(child);
|
|
58
|
+
}
|
|
59
|
+
return svg;
|
|
60
|
+
}
|
|
61
|
+
export function mossLucideIcon(Icon, defaults = {}) {
|
|
62
|
+
return (props) => renderLucideIcon(props.document, Icon, {
|
|
63
|
+
...defaults,
|
|
64
|
+
size: props.size ?? defaults.size,
|
|
65
|
+
strokeWidth: props.strokeWidth ?? defaults.strokeWidth,
|
|
66
|
+
className: props.className ?? defaults.className,
|
|
67
|
+
fill: props.fill ?? defaults.fill,
|
|
68
|
+
'aria-hidden': props.ariaHidden ?? defaults['aria-hidden'],
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
export function renderMossIcon(icon, props) {
|
|
72
|
+
const node = icon(props);
|
|
73
|
+
if (node.nodeType === Node.ELEMENT_NODE &&
|
|
74
|
+
node.namespaceURI === 'http://www.w3.org/2000/svg') {
|
|
75
|
+
node.classList.add('cm-moss-icon');
|
|
76
|
+
}
|
|
77
|
+
return node;
|
|
78
|
+
}
|
|
79
|
+
export function appendMossIcon(target, icon, props = {}) {
|
|
80
|
+
const node = renderMossIcon(icon, {
|
|
81
|
+
document: target.ownerDocument,
|
|
82
|
+
...props,
|
|
83
|
+
});
|
|
84
|
+
target.replaceChildren(node);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/core/icons.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type Extension } from '@codemirror/state';
|
|
2
|
+
import { type MossTaskCheckboxStatus } from './preview-widgets';
|
|
3
|
+
export interface InlinePreviewConfig {
|
|
4
|
+
/**
|
|
5
|
+
* Called when the user plain-clicks a rendered link. Defaults to
|
|
6
|
+
* `window.open(url, '_blank', 'noopener,noreferrer')`. Consumers in
|
|
7
|
+
* platform-specific shells (Tauri, Electron, Capacitor) should pass
|
|
8
|
+
* their own opener so links route through the host's external-URL
|
|
9
|
+
* mechanism.
|
|
10
|
+
*/
|
|
11
|
+
onLinkClick?: (url: string) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Maps the status inside a task marker to its rendered icon and label.
|
|
14
|
+
* The built-in statuses can be overridden, and additional statuses can be
|
|
15
|
+
* added by consumers.
|
|
16
|
+
*/
|
|
17
|
+
taskCheckboxes?: Partial<Record<string, MossTaskCheckboxStatus>>;
|
|
18
|
+
}
|
|
19
|
+
export type MossInlinePreviewConfig = InlinePreviewConfig;
|
|
20
|
+
/**
|
|
21
|
+
* Assemble the inline-preview extension set. Call once per editor and
|
|
22
|
+
* include the result in your EditorState `extensions` list. Accepts an
|
|
23
|
+
* `onLinkClick` callback so consumers can route link opens through
|
|
24
|
+
* their platform's external-URL mechanism (Tauri IPC, Capacitor
|
|
25
|
+
* browser, etc.) instead of the default `window.open`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function inlinePreview(config?: InlinePreviewConfig): Extension;
|
|
28
|
+
export declare const mossInlinePreview: typeof inlinePreview;
|
|
29
|
+
export { dedentListItem, indentListItem, insertTightListItem, orderedListRenumberChanges, renumberOrderedLists, } from './list-editing';
|
|
30
|
+
export type { MossTaskCheckboxStatus } from './preview-widgets';
|
|
31
|
+
export { defaultOnLinkClick, setFrozen } from './preview-activity';
|
|
32
|
+
//# sourceMappingURL=inline-preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-preview.d.ts","sourceRoot":"","sources":["../../src/core/inline-preview.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,mBAAmB,CAAC;AAsB3B,OAAO,EAQL,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAqB3B,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;CAClE;AAED,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AA6jC1D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,mBAAwB,GAAG,SAAS,CAYzE;AAED,eAAO,MAAM,iBAAiB,sBAAgB,CAAC;AAE/C,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
|