mdsquare 0.0.0-stage → 0.1.0
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/LICENSE +21 -0
- package/README.md +206 -2
- package/dist/callout.d.ts +17 -0
- package/dist/callout.js +541 -0
- package/dist/calloutHeader.d.ts +47 -0
- package/dist/calloutHeader.js +75 -0
- package/dist/codeBlock.d.ts +78 -0
- package/dist/codeBlock.js +686 -0
- package/dist/codeTheme.d.ts +47 -0
- package/dist/codeTheme.js +394 -0
- package/dist/delimiter.d.ts +20 -0
- package/dist/delimiter.js +73 -0
- package/dist/editor.d.ts +114 -0
- package/dist/editor.js +199 -0
- package/dist/emphasis.d.ts +6 -0
- package/dist/emphasis.js +101 -0
- package/dist/escape.d.ts +4 -0
- package/dist/escape.js +39 -0
- package/dist/extensions.d.ts +66 -0
- package/dist/extensions.js +79 -0
- package/dist/footnote.d.ts +24 -0
- package/dist/footnote.js +456 -0
- package/dist/footnoteSyntax.d.ts +23 -0
- package/dist/footnoteSyntax.js +107 -0
- package/dist/hashtag.d.ts +4 -0
- package/dist/hashtag.js +64 -0
- package/dist/hashtagSyntax.d.ts +36 -0
- package/dist/hashtagSyntax.js +99 -0
- package/dist/heading.d.ts +7 -0
- package/dist/heading.js +159 -0
- package/dist/highlight.d.ts +5 -0
- package/dist/highlight.js +6 -0
- package/dist/horizontalRule.d.ts +21 -0
- package/dist/horizontalRule.js +142 -0
- package/dist/image.d.ts +58 -0
- package/dist/image.js +344 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +16 -0
- package/dist/inlineCode.d.ts +4 -0
- package/dist/inlineCode.js +68 -0
- package/dist/link.d.ts +47 -0
- package/dist/link.js +217 -0
- package/dist/list.d.ts +14 -0
- package/dist/list.js +136 -0
- package/dist/listEnter.d.ts +20 -0
- package/dist/listEnter.js +72 -0
- package/dist/listIndent.d.ts +23 -0
- package/dist/listIndent.js +335 -0
- package/dist/markVision.d.ts +17 -0
- package/dist/markVision.js +56 -0
- package/dist/math.d.ts +45 -0
- package/dist/math.js +233 -0
- package/dist/mathSyntax.d.ts +24 -0
- package/dist/mathSyntax.js +179 -0
- package/dist/mention.d.ts +4 -0
- package/dist/mention.js +58 -0
- package/dist/mentionSyntax.d.ts +14 -0
- package/dist/mentionSyntax.js +71 -0
- package/dist/quote.d.ts +9 -0
- package/dist/quote.js +122 -0
- package/dist/setup.d.ts +13 -0
- package/dist/setup.js +40 -0
- package/dist/style.css +6 -0
- package/dist/style.css.d.ts +2 -0
- package/dist/table.d.ts +38 -0
- package/dist/table.js +960 -0
- package/dist/tableEdit.d.ts +30 -0
- package/dist/tableEdit.js +305 -0
- package/dist/tableMenu.d.ts +65 -0
- package/dist/tableMenu.js +1125 -0
- package/dist/tableModel.d.ts +168 -0
- package/dist/tableModel.js +433 -0
- package/dist/tableState.d.ts +36 -0
- package/dist/tableState.js +96 -0
- package/dist/task.d.ts +13 -0
- package/dist/task.js +179 -0
- package/dist/textMate.d.ts +49 -0
- package/dist/textMate.js +284 -0
- package/dist/tikz.d.ts +56 -0
- package/dist/tikz.js +343 -0
- package/dist/underline.d.ts +5 -0
- package/dist/underline.js +6 -0
- package/dist/utils/blockMargin.d.ts +6 -0
- package/dist/utils/blockMargin.js +6 -0
- package/dist/utils/codePoint.d.ts +13 -0
- package/dist/utils/codePoint.js +43 -0
- package/dist/utils/container.d.ts +10 -0
- package/dist/utils/container.js +10 -0
- package/dist/utils/reveal.d.ts +99 -0
- package/dist/utils/reveal.js +161 -0
- package/dist/utils/selection.d.ts +33 -0
- package/dist/utils/selection.js +45 -0
- package/dist/utils/syntaxTree.d.ts +18 -0
- package/dist/utils/syntaxTree.js +23 -0
- package/package.json +79 -4
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Language, LanguageDescription } from "@codemirror/language";
|
|
2
|
+
import { Facet, type EditorState, type Extension } from "@codemirror/state";
|
|
3
|
+
import { type SyntaxNode } from "@lezer/common";
|
|
4
|
+
import { type CodeTheme } from "./codeTheme.js";
|
|
5
|
+
/** 코드 본문 조각: 인용 안에서는 줄마다 `>`로, 목록 안에서는 들여쓰기로 나뉩니다. */
|
|
6
|
+
interface Piece {
|
|
7
|
+
/** 이어 붙인 코드 문자열에서의 시작 위치 */
|
|
8
|
+
readonly codeFrom: number;
|
|
9
|
+
/** 문서에서의 시작 위치 */
|
|
10
|
+
readonly docFrom: number;
|
|
11
|
+
readonly length: number;
|
|
12
|
+
}
|
|
13
|
+
export interface FencedCodeInfo {
|
|
14
|
+
readonly from: number;
|
|
15
|
+
readonly to: number;
|
|
16
|
+
/** 언어 (정보 문자열의 첫 단어, 소문자). 없으면 "" */
|
|
17
|
+
readonly lang: string;
|
|
18
|
+
/** 이어 붙인 코드 본문 (인용 기호/목록 들여쓰기 제외) */
|
|
19
|
+
readonly code: string;
|
|
20
|
+
readonly pieces: readonly Piece[];
|
|
21
|
+
readonly open: {
|
|
22
|
+
readonly from: number;
|
|
23
|
+
readonly to: number;
|
|
24
|
+
};
|
|
25
|
+
readonly close: {
|
|
26
|
+
readonly from: number;
|
|
27
|
+
readonly to: number;
|
|
28
|
+
} | null;
|
|
29
|
+
readonly info: {
|
|
30
|
+
readonly from: number;
|
|
31
|
+
readonly to: number;
|
|
32
|
+
} | null;
|
|
33
|
+
}
|
|
34
|
+
/** FencedCode 노드에서 언어, 코드 본문, 기호 위치를 읽습니다. */
|
|
35
|
+
export declare function readFencedCode(state: EditorState, node: SyntaxNode): FencedCodeInfo | null;
|
|
36
|
+
/**
|
|
37
|
+
* 코드 블록 언어 목록.
|
|
38
|
+
* - `LanguageDescription` 배열 (예: `@codemirror/language-data`의 `languages`): 필요할 때 불러옵니다.
|
|
39
|
+
* - 함수: 정보 문자열의 언어(소문자)를 받아 `Language` 또는 `LanguageDescription`을 돌려줍니다.
|
|
40
|
+
*/
|
|
41
|
+
export type CodeLanguages = readonly LanguageDescription[] | ((lang: string) => Language | LanguageDescription | null | undefined);
|
|
42
|
+
/** 코드 문자열 기준 토큰 구간과 클래스 */
|
|
43
|
+
interface TokenSpan {
|
|
44
|
+
readonly from: number;
|
|
45
|
+
readonly to: number;
|
|
46
|
+
readonly className: string;
|
|
47
|
+
}
|
|
48
|
+
/** Lezer 파서로 코드 전체를 파싱해 테마 클래스를 붙입니다. (최근 결과를 캐시) */
|
|
49
|
+
export declare function tokenize(language: Language, theme: CodeTheme, lang: string, code: string): readonly TokenSpan[];
|
|
50
|
+
/**
|
|
51
|
+
* 다른 확장이 그림 등으로 대신 그리는 코드 블록 언어 (예: tikz()의 "tikz").
|
|
52
|
+
* 이 언어의 블록은 커서가 밖에 있을 때 codeBlock()이 그리지 않고, 커서가 들어오면(원문) 코드 블록으로 그립니다.
|
|
53
|
+
*/
|
|
54
|
+
export declare const renderedCodeLanguages: Facet<readonly string[], ReadonlySet<string>>;
|
|
55
|
+
/** 도구 모음에 보여줄 언어 이름 */
|
|
56
|
+
export declare const languageLabel: (lang: string) => string;
|
|
57
|
+
export interface CodeBlockOptions {
|
|
58
|
+
/** 강조할 언어 목록 (예: `@codemirror/language-data`의 `languages`). 없으면 강조하지 않습니다. */
|
|
59
|
+
languages?: CodeLanguages;
|
|
60
|
+
/** 토큰 색 테마 (기본: GitHub 계열). VS Code 테마는 `vscodeTheme(json)` */
|
|
61
|
+
theme?: CodeTheme;
|
|
62
|
+
/** 복사 버튼을 보여줄지 (기본 true) */
|
|
63
|
+
copyButton?: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 펜스 코드 블록(```` ```lang ````)을 CodeMirror(Lezer) 언어 파서로 강조해 보여주는 확장입니다.
|
|
67
|
+
* - 언어: 정보 문자열의 첫 단어(별칭 포함, 예: ts, js, py). `languages`에서 찾고, 처음 쓰일 때 불러옵니다.
|
|
68
|
+
* ```ts
|
|
69
|
+
* import { languages } from "@codemirror/language-data";
|
|
70
|
+
* codeBlock({ languages, theme: vscodeTheme(themeJsonText) });
|
|
71
|
+
* ```
|
|
72
|
+
* - 코드 블록마다 따로 파싱하므로 문서 전체 구문 트리에 다른 언어가 섞이지 않습니다.
|
|
73
|
+
* lang-markdown의 `codeLanguages`와 함께 쓰면 두 강조가 겹치므로 함께 쓰지 마세요.
|
|
74
|
+
* - 커서가 블록 밖이면 펜스 줄을 숨기고, 안이면 펜스 원문을 보여줍니다.
|
|
75
|
+
* - 블록에 마우스를 올리면 오른쪽 위에 도구 모음(언어, 복사 버튼)을 보여줍니다.
|
|
76
|
+
*/
|
|
77
|
+
export declare function codeBlock(options?: CodeBlockOptions): Extension;
|
|
78
|
+
export {};
|