notra-editor 0.5.0 → 0.7.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/dist/components/blockquote-button/blockquote-button.d.cts +2 -2
- package/dist/components/blockquote-button/blockquote-button.d.ts +2 -2
- package/dist/components/code-block-button/code-block-button.d.cts +2 -2
- package/dist/components/code-block-button/code-block-button.d.ts +2 -2
- package/dist/components/code-block-view/code-block-shell.cjs +41 -0
- package/dist/components/code-block-view/code-block-shell.cjs.map +1 -0
- package/dist/components/code-block-view/code-block-shell.d.cts +11 -0
- package/dist/components/code-block-view/code-block-shell.d.ts +11 -0
- package/dist/components/code-block-view/code-block-shell.mjs +17 -0
- package/dist/components/code-block-view/code-block-shell.mjs.map +1 -0
- package/dist/components/{code-block-view.cjs → code-block-view/code-block-view.cjs} +16 -8
- package/dist/components/code-block-view/code-block-view.cjs.map +1 -0
- package/dist/components/code-block-view/code-block-view.d.cts +6 -0
- package/dist/components/code-block-view/code-block-view.d.ts +6 -0
- package/dist/components/code-block-view/code-block-view.mjs +26 -0
- package/dist/components/code-block-view/code-block-view.mjs.map +1 -0
- package/dist/components/code-block-view/language-select.cjs +91 -0
- package/dist/components/code-block-view/language-select.cjs.map +1 -0
- package/dist/components/code-block-view/language-select.d.cts +11 -0
- package/dist/components/code-block-view/language-select.d.ts +11 -0
- package/dist/components/code-block-view/language-select.mjs +74 -0
- package/dist/components/code-block-view/language-select.mjs.map +1 -0
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.d.cts +2 -2
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.d.ts +2 -2
- package/dist/components/heading-dropdown-menu/heading-menu-item.d.cts +2 -2
- package/dist/components/heading-dropdown-menu/heading-menu-item.d.ts +2 -2
- package/dist/components/image-popover/image-popover.d.cts +2 -2
- package/dist/components/image-popover/image-popover.d.ts +2 -2
- package/dist/components/image-popover/use-image-popover.d.cts +3 -3
- package/dist/components/image-popover/use-image-popover.d.ts +3 -3
- package/dist/components/link-popover/link-popover.d.cts +2 -2
- package/dist/components/link-popover/link-popover.d.ts +2 -2
- package/dist/components/link-popover/use-link-popover.d.cts +2 -2
- package/dist/components/link-popover/use-link-popover.d.ts +2 -2
- package/dist/components/list-dropdown-menu/list-dropdown-menu.d.cts +2 -2
- package/dist/components/list-dropdown-menu/list-dropdown-menu.d.ts +2 -2
- package/dist/components/list-dropdown-menu/list-menu-item.d.cts +2 -2
- package/dist/components/list-dropdown-menu/list-menu-item.d.ts +2 -2
- package/dist/components/mark-button/mark-button.d.cts +2 -2
- package/dist/components/mark-button/mark-button.d.ts +2 -2
- package/dist/components/toolbar/toolbar.d.cts +2 -2
- package/dist/components/toolbar/toolbar.d.ts +2 -2
- package/dist/components/ui/button.d.cts +2 -2
- package/dist/components/ui/button.d.ts +2 -2
- package/dist/components/ui/command.cjs +207 -0
- package/dist/components/ui/command.cjs.map +1 -0
- package/dist/components/ui/command.d.cts +22 -0
- package/dist/components/ui/command.d.ts +22 -0
- package/dist/components/ui/command.mjs +181 -0
- package/dist/components/ui/command.mjs.map +1 -0
- package/dist/components/ui/dialog.cjs +188 -0
- package/dist/components/ui/dialog.cjs.map +1 -0
- package/dist/components/ui/dialog.d.cts +20 -0
- package/dist/components/ui/dialog.d.ts +20 -0
- package/dist/components/ui/dialog.mjs +155 -0
- package/dist/components/ui/dialog.mjs.map +1 -0
- package/dist/components/ui/dropdown-menu.cjs +3 -2
- package/dist/components/ui/dropdown-menu.cjs.map +1 -1
- package/dist/components/ui/dropdown-menu.d.cts +16 -16
- package/dist/components/ui/dropdown-menu.d.ts +16 -16
- package/dist/components/ui/dropdown-menu.mjs +3 -2
- package/dist/components/ui/dropdown-menu.mjs.map +1 -1
- package/dist/components/ui/input-group.cjs +175 -0
- package/dist/components/ui/input-group.cjs.map +1 -0
- package/dist/components/ui/input-group.d.cts +20 -0
- package/dist/components/ui/input-group.d.ts +20 -0
- package/dist/components/ui/input-group.mjs +146 -0
- package/dist/components/ui/input-group.mjs.map +1 -0
- package/dist/components/ui/input.cjs +1 -1
- package/dist/components/ui/input.cjs.map +1 -1
- package/dist/components/ui/input.d.cts +2 -2
- package/dist/components/ui/input.d.ts +2 -2
- package/dist/components/ui/input.mjs +1 -1
- package/dist/components/ui/input.mjs.map +1 -1
- package/dist/components/ui/popover.cjs +46 -6
- package/dist/components/ui/popover.cjs.map +1 -1
- package/dist/components/ui/popover.d.cts +9 -6
- package/dist/components/ui/popover.d.ts +9 -6
- package/dist/components/ui/popover.mjs +43 -6
- package/dist/components/ui/popover.mjs.map +1 -1
- package/dist/components/ui/separator.cjs +2 -1
- package/dist/components/ui/separator.cjs.map +1 -1
- package/dist/components/ui/separator.d.cts +2 -2
- package/dist/components/ui/separator.d.ts +2 -2
- package/dist/components/ui/separator.mjs +2 -1
- package/dist/components/ui/separator.mjs.map +1 -1
- package/dist/components/ui/textarea.cjs +43 -0
- package/dist/components/ui/textarea.cjs.map +1 -0
- package/dist/components/ui/textarea.d.cts +6 -0
- package/dist/components/ui/textarea.d.ts +6 -0
- package/dist/components/ui/textarea.mjs +19 -0
- package/dist/components/ui/textarea.mjs.map +1 -0
- package/dist/components/undo-redo-button/undo-redo-button.d.cts +2 -2
- package/dist/components/undo-redo-button/undo-redo-button.d.ts +2 -2
- package/dist/components/undo-redo-button/use-undo-redo.d.cts +2 -2
- package/dist/components/undo-redo-button/use-undo-redo.d.ts +2 -2
- package/dist/extensions/code-block.cjs +76 -19
- package/dist/extensions/code-block.cjs.map +1 -1
- package/dist/extensions/code-block.d.cts +7 -3
- package/dist/extensions/code-block.d.ts +7 -3
- package/dist/extensions/code-block.mjs +73 -8
- package/dist/extensions/code-block.mjs.map +1 -1
- package/dist/extensions/editor.d.cts +3 -3
- package/dist/extensions/editor.d.ts +3 -3
- package/dist/extensions/index.d.cts +1 -1
- package/dist/extensions/index.d.ts +1 -1
- package/dist/extensions/shared.cjs +5 -1
- package/dist/extensions/shared.cjs.map +1 -1
- package/dist/extensions/shared.d.cts +2 -1
- package/dist/extensions/shared.d.ts +2 -1
- package/dist/extensions/shared.mjs +5 -1
- package/dist/extensions/shared.mjs.map +1 -1
- package/dist/index.cjs +20 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.mjs +16 -1
- package/dist/index.mjs.map +1 -1
- package/dist/lib/highlight-code-to-html.cjs +38 -0
- package/dist/lib/highlight-code-to-html.cjs.map +1 -0
- package/dist/lib/highlight-code-to-html.d.cts +6 -0
- package/dist/lib/highlight-code-to-html.d.ts +6 -0
- package/dist/lib/highlight-code-to-html.mjs +14 -0
- package/dist/lib/highlight-code-to-html.mjs.map +1 -0
- package/dist/lib/languages.cjs +181 -0
- package/dist/lib/languages.cjs.map +1 -0
- package/dist/lib/languages.d.cts +24 -0
- package/dist/lib/languages.d.ts +24 -0
- package/dist/lib/languages.mjs +155 -0
- package/dist/lib/languages.mjs.map +1 -0
- package/dist/notra-reader.cjs +32 -3
- package/dist/notra-reader.cjs.map +1 -1
- package/dist/notra-reader.d.cts +11 -1
- package/dist/notra-reader.d.ts +11 -1
- package/dist/notra-reader.mjs +32 -3
- package/dist/notra-reader.mjs.map +1 -1
- package/dist/styles/globals.css +1022 -165
- package/dist/themes/default/editor.css +69 -0
- package/dist/themes/default/shared.css +165 -5
- package/package.json +7 -1
- package/dist/components/code-block-view.cjs.map +0 -1
- package/dist/components/code-block-view.d.cts +0 -12
- package/dist/components/code-block-view.d.ts +0 -12
- package/dist/components/code-block-view.mjs +0 -17
- package/dist/components/code-block-view.mjs.map +0 -1
- package/dist/icons/redo-icon.cjs +0 -54
- package/dist/icons/redo-icon.cjs.map +0 -1
- package/dist/icons/redo-icon.d.cts +0 -7
- package/dist/icons/redo-icon.d.ts +0 -7
- package/dist/icons/redo-icon.mjs +0 -30
- package/dist/icons/redo-icon.mjs.map +0 -1
- package/dist/icons/undo-icon.cjs +0 -54
- package/dist/icons/undo-icon.cjs.map +0 -1
- package/dist/icons/undo-icon.d.cts +0 -7
- package/dist/icons/undo-icon.d.ts +0 -7
- package/dist/icons/undo-icon.mjs +0 -30
- package/dist/icons/undo-icon.mjs.map +0 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var languages_exports = {};
|
|
20
|
+
__export(languages_exports, {
|
|
21
|
+
LANGUAGES: () => LANGUAGES,
|
|
22
|
+
getLanguageLabel: () => getLanguageLabel,
|
|
23
|
+
normalizeLanguage: () => normalizeLanguage
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(languages_exports);
|
|
26
|
+
const LANGUAGES = [
|
|
27
|
+
{ label: "Auto", value: "auto" },
|
|
28
|
+
{ label: "Plain Text", value: "plaintext" },
|
|
29
|
+
{ label: "ABAP", value: "abap" },
|
|
30
|
+
{ label: "Agda", value: "agda" },
|
|
31
|
+
{ label: "Arduino", value: "arduino", aliases: ["ino"] },
|
|
32
|
+
{ label: "ASCII Art", value: "ascii" },
|
|
33
|
+
{ label: "Assembly", value: "x86asm" },
|
|
34
|
+
{ label: "Bash", value: "bash", aliases: ["sh", "zsh"] },
|
|
35
|
+
{ label: "BASIC", value: "basic" },
|
|
36
|
+
{ label: "BNF", value: "bnf" },
|
|
37
|
+
{ label: "C", value: "c", aliases: ["h"] },
|
|
38
|
+
{ label: "C#", value: "csharp", aliases: ["cs", "c#"] },
|
|
39
|
+
{
|
|
40
|
+
label: "C++",
|
|
41
|
+
value: "cpp",
|
|
42
|
+
aliases: ["cc", "c++", "h++", "hpp", "hh", "hxx", "cxx"]
|
|
43
|
+
},
|
|
44
|
+
{ label: "Clojure", value: "clojure", aliases: ["clj", "edn"] },
|
|
45
|
+
{
|
|
46
|
+
label: "CoffeeScript",
|
|
47
|
+
value: "coffeescript",
|
|
48
|
+
aliases: ["coffee", "cson", "iced"]
|
|
49
|
+
},
|
|
50
|
+
{ label: "Coq", value: "coq" },
|
|
51
|
+
{ label: "CSS", value: "css" },
|
|
52
|
+
{ label: "Dart", value: "dart" },
|
|
53
|
+
{ label: "Dhall", value: "dhall" },
|
|
54
|
+
{ label: "Diff", value: "diff", aliases: ["patch"] },
|
|
55
|
+
{ label: "Docker", value: "dockerfile", aliases: ["docker"] },
|
|
56
|
+
{ label: "EBNF", value: "ebnf" },
|
|
57
|
+
{ label: "Elixir", value: "elixir", aliases: ["ex", "exs"] },
|
|
58
|
+
{ label: "Elm", value: "elm" },
|
|
59
|
+
{ label: "Erlang", value: "erlang", aliases: ["erl"] },
|
|
60
|
+
{ label: "F#", value: "fsharp", aliases: ["fs", "f#"] },
|
|
61
|
+
{ label: "Flow", value: "flow" },
|
|
62
|
+
{ label: "Fortran", value: "fortran", aliases: ["f90", "f95"] },
|
|
63
|
+
{ label: "Gherkin", value: "gherkin", aliases: ["feature"] },
|
|
64
|
+
{ label: "GLSL", value: "glsl" },
|
|
65
|
+
{ label: "Go", value: "go", aliases: ["golang"] },
|
|
66
|
+
{ label: "GraphQL", value: "graphql", aliases: ["gql"] },
|
|
67
|
+
{ label: "Groovy", value: "groovy" },
|
|
68
|
+
{ label: "Haskell", value: "haskell", aliases: ["hs"] },
|
|
69
|
+
{ label: "HCL", value: "hcl" },
|
|
70
|
+
{ label: "HTML", value: "html" },
|
|
71
|
+
{ label: "Idris", value: "idris" },
|
|
72
|
+
{ label: "Java", value: "java", aliases: ["jsp"] },
|
|
73
|
+
{
|
|
74
|
+
label: "JavaScript",
|
|
75
|
+
value: "javascript",
|
|
76
|
+
aliases: ["js", "jsx", "mjs", "cjs"]
|
|
77
|
+
},
|
|
78
|
+
{ label: "JSON", value: "json", aliases: ["jsonc"] },
|
|
79
|
+
{ label: "Julia", value: "julia" },
|
|
80
|
+
{ label: "Kotlin", value: "kotlin", aliases: ["kt", "kts"] },
|
|
81
|
+
{ label: "LaTeX", value: "latex", aliases: ["tex"] },
|
|
82
|
+
{ label: "Less", value: "less" },
|
|
83
|
+
{ label: "Lisp", value: "lisp" },
|
|
84
|
+
{ label: "LiveScript", value: "livescript", aliases: ["ls"] },
|
|
85
|
+
{ label: "LLVM IR", value: "llvm" },
|
|
86
|
+
{ label: "Lua", value: "lua", aliases: ["pluto"] },
|
|
87
|
+
{ label: "Makefile", value: "makefile", aliases: ["mk", "mak", "make"] },
|
|
88
|
+
{ label: "Markdown", value: "markdown", aliases: ["md", "mkdown", "mkd"] },
|
|
89
|
+
{ label: "Markup", value: "markup" },
|
|
90
|
+
{ label: "MATLAB", value: "matlab" },
|
|
91
|
+
{ label: "Mathematica", value: "mathematica", aliases: ["mma", "wl"] },
|
|
92
|
+
{ label: "Mermaid", value: "mermaid" },
|
|
93
|
+
{ label: "Nix", value: "nix", aliases: ["nixos"] },
|
|
94
|
+
{ label: "Notion Formula", value: "notion" },
|
|
95
|
+
{
|
|
96
|
+
label: "Objective-C",
|
|
97
|
+
value: "objectivec",
|
|
98
|
+
aliases: ["mm", "objc", "obj-c", "obj-c++", "objective-c++"]
|
|
99
|
+
},
|
|
100
|
+
{ label: "OCaml", value: "ocaml", aliases: ["ml"] },
|
|
101
|
+
{ label: "Pascal", value: "pascal" },
|
|
102
|
+
{ label: "Perl", value: "perl", aliases: ["pl", "pm"] },
|
|
103
|
+
{ label: "PHP", value: "php" },
|
|
104
|
+
{ label: "PowerShell", value: "powershell", aliases: ["pwsh", "ps", "ps1"] },
|
|
105
|
+
{ label: "Prolog", value: "prolog" },
|
|
106
|
+
{ label: "Protocol Buffers", value: "protobuf", aliases: ["proto"] },
|
|
107
|
+
{ label: "PureScript", value: "purescript" },
|
|
108
|
+
{ label: "Python", value: "python", aliases: ["py", "gyp", "ipython"] },
|
|
109
|
+
{ label: "R", value: "r" },
|
|
110
|
+
{ label: "Racket", value: "racket" },
|
|
111
|
+
{ label: "Reason", value: "reasonml", aliases: ["re"] },
|
|
112
|
+
{
|
|
113
|
+
label: "Ruby",
|
|
114
|
+
value: "ruby",
|
|
115
|
+
aliases: ["rb", "gemspec", "podspec", "thor", "irb"]
|
|
116
|
+
},
|
|
117
|
+
{ label: "Rust", value: "rust", aliases: ["rs"] },
|
|
118
|
+
{ label: "Sass", value: "sass" },
|
|
119
|
+
{ label: "Scala", value: "scala" },
|
|
120
|
+
{ label: "Scheme", value: "scheme", aliases: ["scm"] },
|
|
121
|
+
{ label: "SCSS", value: "scss" },
|
|
122
|
+
{ label: "Shell", value: "shell", aliases: ["console", "shellsession"] },
|
|
123
|
+
{ label: "Smalltalk", value: "smalltalk", aliases: ["st"] },
|
|
124
|
+
{ label: "Solidity", value: "solidity" },
|
|
125
|
+
{ label: "SQL", value: "sql" },
|
|
126
|
+
{ label: "Swift", value: "swift" },
|
|
127
|
+
{ label: "TOML", value: "toml" },
|
|
128
|
+
{
|
|
129
|
+
label: "TypeScript",
|
|
130
|
+
value: "typescript",
|
|
131
|
+
aliases: ["ts", "tsx", "mts", "cts"]
|
|
132
|
+
},
|
|
133
|
+
{ label: "VB.Net", value: "vbnet", aliases: ["vb"] },
|
|
134
|
+
{ label: "Verilog", value: "verilog", aliases: ["v", "sv", "svh"] },
|
|
135
|
+
{ label: "VHDL", value: "vhdl" },
|
|
136
|
+
{ label: "Visual Basic", value: "visualbasic" },
|
|
137
|
+
{ label: "WebAssembly", value: "wasm" },
|
|
138
|
+
{
|
|
139
|
+
label: "XML",
|
|
140
|
+
value: "xml",
|
|
141
|
+
// Note: highlight.js also lists "html" here, but `html` is its own
|
|
142
|
+
// canonical entry above; including it would rewrite html → xml.
|
|
143
|
+
aliases: [
|
|
144
|
+
"xhtml",
|
|
145
|
+
"rss",
|
|
146
|
+
"atom",
|
|
147
|
+
"xjb",
|
|
148
|
+
"xsd",
|
|
149
|
+
"xsl",
|
|
150
|
+
"plist",
|
|
151
|
+
"wsf",
|
|
152
|
+
"svg"
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
{ label: "YAML", value: "yaml", aliases: ["yml"] }
|
|
156
|
+
];
|
|
157
|
+
const ALIAS_TO_CANONICAL = (() => {
|
|
158
|
+
const map = /* @__PURE__ */ new Map();
|
|
159
|
+
for (const lang of LANGUAGES) {
|
|
160
|
+
for (const alias of lang.aliases ?? []) {
|
|
161
|
+
map.set(alias, lang.value);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return map;
|
|
165
|
+
})();
|
|
166
|
+
function normalizeLanguage(input) {
|
|
167
|
+
if (!input) return "";
|
|
168
|
+
return ALIAS_TO_CANONICAL.get(input) ?? input;
|
|
169
|
+
}
|
|
170
|
+
function getLanguageLabel(value) {
|
|
171
|
+
if (!value) return "Auto";
|
|
172
|
+
const found = LANGUAGES.find((l) => l.value === value);
|
|
173
|
+
return found?.label ?? value;
|
|
174
|
+
}
|
|
175
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
176
|
+
0 && (module.exports = {
|
|
177
|
+
LANGUAGES,
|
|
178
|
+
getLanguageLabel,
|
|
179
|
+
normalizeLanguage
|
|
180
|
+
});
|
|
181
|
+
//# sourceMappingURL=languages.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/languages.ts"],"sourcesContent":["export interface Language {\n\tlabel: string;\n\tvalue: string;\n\t/**\n\t * Aliases recognized by highlight.js for this language. Used by\n\t * `normalizeLanguage` so the markdown input rule (e.g. ```js + Enter)\n\t * stores the canonical `value` instead of the raw alias. Only canonical\n\t * values are listed in this table; an alias that already exists as a\n\t * canonical `value` (e.g. `html` for `xml`) is intentionally excluded\n\t * to preserve the existing UI label.\n\t */\n\taliases?: string[];\n}\n\n// Curated set transcribed from demo/notra/components/editor/ui/language-select.tsx.\n// Keep the order: auto and plaintext first, then alphabetical by label.\n// `aliases` mirror the `aliases` field of the corresponding highlight.js\n// language module (highlight.js@11). Entries missing from highlight.js's\n// shipped languages have no aliases.\nexport const LANGUAGES: Language[] = [\n\t{ label: 'Auto', value: 'auto' },\n\t{ label: 'Plain Text', value: 'plaintext' },\n\t{ label: 'ABAP', value: 'abap' },\n\t{ label: 'Agda', value: 'agda' },\n\t{ label: 'Arduino', value: 'arduino', aliases: ['ino'] },\n\t{ label: 'ASCII Art', value: 'ascii' },\n\t{ label: 'Assembly', value: 'x86asm' },\n\t{ label: 'Bash', value: 'bash', aliases: ['sh', 'zsh'] },\n\t{ label: 'BASIC', value: 'basic' },\n\t{ label: 'BNF', value: 'bnf' },\n\t{ label: 'C', value: 'c', aliases: ['h'] },\n\t{ label: 'C#', value: 'csharp', aliases: ['cs', 'c#'] },\n\t{\n\t\tlabel: 'C++',\n\t\tvalue: 'cpp',\n\t\taliases: ['cc', 'c++', 'h++', 'hpp', 'hh', 'hxx', 'cxx']\n\t},\n\t{ label: 'Clojure', value: 'clojure', aliases: ['clj', 'edn'] },\n\t{\n\t\tlabel: 'CoffeeScript',\n\t\tvalue: 'coffeescript',\n\t\taliases: ['coffee', 'cson', 'iced']\n\t},\n\t{ label: 'Coq', value: 'coq' },\n\t{ label: 'CSS', value: 'css' },\n\t{ label: 'Dart', value: 'dart' },\n\t{ label: 'Dhall', value: 'dhall' },\n\t{ label: 'Diff', value: 'diff', aliases: ['patch'] },\n\t{ label: 'Docker', value: 'dockerfile', aliases: ['docker'] },\n\t{ label: 'EBNF', value: 'ebnf' },\n\t{ label: 'Elixir', value: 'elixir', aliases: ['ex', 'exs'] },\n\t{ label: 'Elm', value: 'elm' },\n\t{ label: 'Erlang', value: 'erlang', aliases: ['erl'] },\n\t{ label: 'F#', value: 'fsharp', aliases: ['fs', 'f#'] },\n\t{ label: 'Flow', value: 'flow' },\n\t{ label: 'Fortran', value: 'fortran', aliases: ['f90', 'f95'] },\n\t{ label: 'Gherkin', value: 'gherkin', aliases: ['feature'] },\n\t{ label: 'GLSL', value: 'glsl' },\n\t{ label: 'Go', value: 'go', aliases: ['golang'] },\n\t{ label: 'GraphQL', value: 'graphql', aliases: ['gql'] },\n\t{ label: 'Groovy', value: 'groovy' },\n\t{ label: 'Haskell', value: 'haskell', aliases: ['hs'] },\n\t{ label: 'HCL', value: 'hcl' },\n\t{ label: 'HTML', value: 'html' },\n\t{ label: 'Idris', value: 'idris' },\n\t{ label: 'Java', value: 'java', aliases: ['jsp'] },\n\t{\n\t\tlabel: 'JavaScript',\n\t\tvalue: 'javascript',\n\t\taliases: ['js', 'jsx', 'mjs', 'cjs']\n\t},\n\t{ label: 'JSON', value: 'json', aliases: ['jsonc'] },\n\t{ label: 'Julia', value: 'julia' },\n\t{ label: 'Kotlin', value: 'kotlin', aliases: ['kt', 'kts'] },\n\t{ label: 'LaTeX', value: 'latex', aliases: ['tex'] },\n\t{ label: 'Less', value: 'less' },\n\t{ label: 'Lisp', value: 'lisp' },\n\t{ label: 'LiveScript', value: 'livescript', aliases: ['ls'] },\n\t{ label: 'LLVM IR', value: 'llvm' },\n\t{ label: 'Lua', value: 'lua', aliases: ['pluto'] },\n\t{ label: 'Makefile', value: 'makefile', aliases: ['mk', 'mak', 'make'] },\n\t{ label: 'Markdown', value: 'markdown', aliases: ['md', 'mkdown', 'mkd'] },\n\t{ label: 'Markup', value: 'markup' },\n\t{ label: 'MATLAB', value: 'matlab' },\n\t{ label: 'Mathematica', value: 'mathematica', aliases: ['mma', 'wl'] },\n\t{ label: 'Mermaid', value: 'mermaid' },\n\t{ label: 'Nix', value: 'nix', aliases: ['nixos'] },\n\t{ label: 'Notion Formula', value: 'notion' },\n\t{\n\t\tlabel: 'Objective-C',\n\t\tvalue: 'objectivec',\n\t\taliases: ['mm', 'objc', 'obj-c', 'obj-c++', 'objective-c++']\n\t},\n\t{ label: 'OCaml', value: 'ocaml', aliases: ['ml'] },\n\t{ label: 'Pascal', value: 'pascal' },\n\t{ label: 'Perl', value: 'perl', aliases: ['pl', 'pm'] },\n\t{ label: 'PHP', value: 'php' },\n\t{ label: 'PowerShell', value: 'powershell', aliases: ['pwsh', 'ps', 'ps1'] },\n\t{ label: 'Prolog', value: 'prolog' },\n\t{ label: 'Protocol Buffers', value: 'protobuf', aliases: ['proto'] },\n\t{ label: 'PureScript', value: 'purescript' },\n\t{ label: 'Python', value: 'python', aliases: ['py', 'gyp', 'ipython'] },\n\t{ label: 'R', value: 'r' },\n\t{ label: 'Racket', value: 'racket' },\n\t{ label: 'Reason', value: 'reasonml', aliases: ['re'] },\n\t{\n\t\tlabel: 'Ruby',\n\t\tvalue: 'ruby',\n\t\taliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb']\n\t},\n\t{ label: 'Rust', value: 'rust', aliases: ['rs'] },\n\t{ label: 'Sass', value: 'sass' },\n\t{ label: 'Scala', value: 'scala' },\n\t{ label: 'Scheme', value: 'scheme', aliases: ['scm'] },\n\t{ label: 'SCSS', value: 'scss' },\n\t{ label: 'Shell', value: 'shell', aliases: ['console', 'shellsession'] },\n\t{ label: 'Smalltalk', value: 'smalltalk', aliases: ['st'] },\n\t{ label: 'Solidity', value: 'solidity' },\n\t{ label: 'SQL', value: 'sql' },\n\t{ label: 'Swift', value: 'swift' },\n\t{ label: 'TOML', value: 'toml' },\n\t{\n\t\tlabel: 'TypeScript',\n\t\tvalue: 'typescript',\n\t\taliases: ['ts', 'tsx', 'mts', 'cts']\n\t},\n\t{ label: 'VB.Net', value: 'vbnet', aliases: ['vb'] },\n\t{ label: 'Verilog', value: 'verilog', aliases: ['v', 'sv', 'svh'] },\n\t{ label: 'VHDL', value: 'vhdl' },\n\t{ label: 'Visual Basic', value: 'visualbasic' },\n\t{ label: 'WebAssembly', value: 'wasm' },\n\t{\n\t\tlabel: 'XML',\n\t\tvalue: 'xml',\n\t\t// Note: highlight.js also lists \"html\" here, but `html` is its own\n\t\t// canonical entry above; including it would rewrite html → xml.\n\t\taliases: [\n\t\t\t'xhtml',\n\t\t\t'rss',\n\t\t\t'atom',\n\t\t\t'xjb',\n\t\t\t'xsd',\n\t\t\t'xsl',\n\t\t\t'plist',\n\t\t\t'wsf',\n\t\t\t'svg'\n\t\t]\n\t},\n\t{ label: 'YAML', value: 'yaml', aliases: ['yml'] }\n];\n\nconst ALIAS_TO_CANONICAL = (() => {\n\tconst map = new Map<string, string>();\n\n\tfor (const lang of LANGUAGES) {\n\t\tfor (const alias of lang.aliases ?? []) {\n\t\t\tmap.set(alias, lang.value);\n\t\t}\n\t}\n\n\treturn map;\n})();\n\n/**\n * Resolve a user-supplied language identifier to a canonical LANGUAGES.value.\n * Aliases (e.g. `js`, `ts`, `py`) collapse to their canonical form\n * (`javascript`, `typescript`, `python`); unknown identifiers and canonical\n * values pass through unchanged. Empty / undefined input returns ''.\n */\nexport function normalizeLanguage(input: string | undefined | null): string {\n\tif (!input) return '';\n\n\treturn ALIAS_TO_CANONICAL.get(input) ?? input;\n}\n\nexport function getLanguageLabel(value: string | null | undefined): string {\n\tif (!value) return 'Auto';\n\n\tconst found = LANGUAGES.find((l) => l.value === value);\n\n\treturn found?.label ?? value;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface Language {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
/**
|
|
5
|
+
* Aliases recognized by highlight.js for this language. Used by
|
|
6
|
+
* `normalizeLanguage` so the markdown input rule (e.g. ```js + Enter)
|
|
7
|
+
* stores the canonical `value` instead of the raw alias. Only canonical
|
|
8
|
+
* values are listed in this table; an alias that already exists as a
|
|
9
|
+
* canonical `value` (e.g. `html` for `xml`) is intentionally excluded
|
|
10
|
+
* to preserve the existing UI label.
|
|
11
|
+
*/
|
|
12
|
+
aliases?: string[];
|
|
13
|
+
}
|
|
14
|
+
declare const LANGUAGES: Language[];
|
|
15
|
+
/**
|
|
16
|
+
* Resolve a user-supplied language identifier to a canonical LANGUAGES.value.
|
|
17
|
+
* Aliases (e.g. `js`, `ts`, `py`) collapse to their canonical form
|
|
18
|
+
* (`javascript`, `typescript`, `python`); unknown identifiers and canonical
|
|
19
|
+
* values pass through unchanged. Empty / undefined input returns ''.
|
|
20
|
+
*/
|
|
21
|
+
declare function normalizeLanguage(input: string | undefined | null): string;
|
|
22
|
+
declare function getLanguageLabel(value: string | null | undefined): string;
|
|
23
|
+
|
|
24
|
+
export { LANGUAGES, type Language, getLanguageLabel, normalizeLanguage };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface Language {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
/**
|
|
5
|
+
* Aliases recognized by highlight.js for this language. Used by
|
|
6
|
+
* `normalizeLanguage` so the markdown input rule (e.g. ```js + Enter)
|
|
7
|
+
* stores the canonical `value` instead of the raw alias. Only canonical
|
|
8
|
+
* values are listed in this table; an alias that already exists as a
|
|
9
|
+
* canonical `value` (e.g. `html` for `xml`) is intentionally excluded
|
|
10
|
+
* to preserve the existing UI label.
|
|
11
|
+
*/
|
|
12
|
+
aliases?: string[];
|
|
13
|
+
}
|
|
14
|
+
declare const LANGUAGES: Language[];
|
|
15
|
+
/**
|
|
16
|
+
* Resolve a user-supplied language identifier to a canonical LANGUAGES.value.
|
|
17
|
+
* Aliases (e.g. `js`, `ts`, `py`) collapse to their canonical form
|
|
18
|
+
* (`javascript`, `typescript`, `python`); unknown identifiers and canonical
|
|
19
|
+
* values pass through unchanged. Empty / undefined input returns ''.
|
|
20
|
+
*/
|
|
21
|
+
declare function normalizeLanguage(input: string | undefined | null): string;
|
|
22
|
+
declare function getLanguageLabel(value: string | null | undefined): string;
|
|
23
|
+
|
|
24
|
+
export { LANGUAGES, type Language, getLanguageLabel, normalizeLanguage };
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
const LANGUAGES = [
|
|
2
|
+
{ label: "Auto", value: "auto" },
|
|
3
|
+
{ label: "Plain Text", value: "plaintext" },
|
|
4
|
+
{ label: "ABAP", value: "abap" },
|
|
5
|
+
{ label: "Agda", value: "agda" },
|
|
6
|
+
{ label: "Arduino", value: "arduino", aliases: ["ino"] },
|
|
7
|
+
{ label: "ASCII Art", value: "ascii" },
|
|
8
|
+
{ label: "Assembly", value: "x86asm" },
|
|
9
|
+
{ label: "Bash", value: "bash", aliases: ["sh", "zsh"] },
|
|
10
|
+
{ label: "BASIC", value: "basic" },
|
|
11
|
+
{ label: "BNF", value: "bnf" },
|
|
12
|
+
{ label: "C", value: "c", aliases: ["h"] },
|
|
13
|
+
{ label: "C#", value: "csharp", aliases: ["cs", "c#"] },
|
|
14
|
+
{
|
|
15
|
+
label: "C++",
|
|
16
|
+
value: "cpp",
|
|
17
|
+
aliases: ["cc", "c++", "h++", "hpp", "hh", "hxx", "cxx"]
|
|
18
|
+
},
|
|
19
|
+
{ label: "Clojure", value: "clojure", aliases: ["clj", "edn"] },
|
|
20
|
+
{
|
|
21
|
+
label: "CoffeeScript",
|
|
22
|
+
value: "coffeescript",
|
|
23
|
+
aliases: ["coffee", "cson", "iced"]
|
|
24
|
+
},
|
|
25
|
+
{ label: "Coq", value: "coq" },
|
|
26
|
+
{ label: "CSS", value: "css" },
|
|
27
|
+
{ label: "Dart", value: "dart" },
|
|
28
|
+
{ label: "Dhall", value: "dhall" },
|
|
29
|
+
{ label: "Diff", value: "diff", aliases: ["patch"] },
|
|
30
|
+
{ label: "Docker", value: "dockerfile", aliases: ["docker"] },
|
|
31
|
+
{ label: "EBNF", value: "ebnf" },
|
|
32
|
+
{ label: "Elixir", value: "elixir", aliases: ["ex", "exs"] },
|
|
33
|
+
{ label: "Elm", value: "elm" },
|
|
34
|
+
{ label: "Erlang", value: "erlang", aliases: ["erl"] },
|
|
35
|
+
{ label: "F#", value: "fsharp", aliases: ["fs", "f#"] },
|
|
36
|
+
{ label: "Flow", value: "flow" },
|
|
37
|
+
{ label: "Fortran", value: "fortran", aliases: ["f90", "f95"] },
|
|
38
|
+
{ label: "Gherkin", value: "gherkin", aliases: ["feature"] },
|
|
39
|
+
{ label: "GLSL", value: "glsl" },
|
|
40
|
+
{ label: "Go", value: "go", aliases: ["golang"] },
|
|
41
|
+
{ label: "GraphQL", value: "graphql", aliases: ["gql"] },
|
|
42
|
+
{ label: "Groovy", value: "groovy" },
|
|
43
|
+
{ label: "Haskell", value: "haskell", aliases: ["hs"] },
|
|
44
|
+
{ label: "HCL", value: "hcl" },
|
|
45
|
+
{ label: "HTML", value: "html" },
|
|
46
|
+
{ label: "Idris", value: "idris" },
|
|
47
|
+
{ label: "Java", value: "java", aliases: ["jsp"] },
|
|
48
|
+
{
|
|
49
|
+
label: "JavaScript",
|
|
50
|
+
value: "javascript",
|
|
51
|
+
aliases: ["js", "jsx", "mjs", "cjs"]
|
|
52
|
+
},
|
|
53
|
+
{ label: "JSON", value: "json", aliases: ["jsonc"] },
|
|
54
|
+
{ label: "Julia", value: "julia" },
|
|
55
|
+
{ label: "Kotlin", value: "kotlin", aliases: ["kt", "kts"] },
|
|
56
|
+
{ label: "LaTeX", value: "latex", aliases: ["tex"] },
|
|
57
|
+
{ label: "Less", value: "less" },
|
|
58
|
+
{ label: "Lisp", value: "lisp" },
|
|
59
|
+
{ label: "LiveScript", value: "livescript", aliases: ["ls"] },
|
|
60
|
+
{ label: "LLVM IR", value: "llvm" },
|
|
61
|
+
{ label: "Lua", value: "lua", aliases: ["pluto"] },
|
|
62
|
+
{ label: "Makefile", value: "makefile", aliases: ["mk", "mak", "make"] },
|
|
63
|
+
{ label: "Markdown", value: "markdown", aliases: ["md", "mkdown", "mkd"] },
|
|
64
|
+
{ label: "Markup", value: "markup" },
|
|
65
|
+
{ label: "MATLAB", value: "matlab" },
|
|
66
|
+
{ label: "Mathematica", value: "mathematica", aliases: ["mma", "wl"] },
|
|
67
|
+
{ label: "Mermaid", value: "mermaid" },
|
|
68
|
+
{ label: "Nix", value: "nix", aliases: ["nixos"] },
|
|
69
|
+
{ label: "Notion Formula", value: "notion" },
|
|
70
|
+
{
|
|
71
|
+
label: "Objective-C",
|
|
72
|
+
value: "objectivec",
|
|
73
|
+
aliases: ["mm", "objc", "obj-c", "obj-c++", "objective-c++"]
|
|
74
|
+
},
|
|
75
|
+
{ label: "OCaml", value: "ocaml", aliases: ["ml"] },
|
|
76
|
+
{ label: "Pascal", value: "pascal" },
|
|
77
|
+
{ label: "Perl", value: "perl", aliases: ["pl", "pm"] },
|
|
78
|
+
{ label: "PHP", value: "php" },
|
|
79
|
+
{ label: "PowerShell", value: "powershell", aliases: ["pwsh", "ps", "ps1"] },
|
|
80
|
+
{ label: "Prolog", value: "prolog" },
|
|
81
|
+
{ label: "Protocol Buffers", value: "protobuf", aliases: ["proto"] },
|
|
82
|
+
{ label: "PureScript", value: "purescript" },
|
|
83
|
+
{ label: "Python", value: "python", aliases: ["py", "gyp", "ipython"] },
|
|
84
|
+
{ label: "R", value: "r" },
|
|
85
|
+
{ label: "Racket", value: "racket" },
|
|
86
|
+
{ label: "Reason", value: "reasonml", aliases: ["re"] },
|
|
87
|
+
{
|
|
88
|
+
label: "Ruby",
|
|
89
|
+
value: "ruby",
|
|
90
|
+
aliases: ["rb", "gemspec", "podspec", "thor", "irb"]
|
|
91
|
+
},
|
|
92
|
+
{ label: "Rust", value: "rust", aliases: ["rs"] },
|
|
93
|
+
{ label: "Sass", value: "sass" },
|
|
94
|
+
{ label: "Scala", value: "scala" },
|
|
95
|
+
{ label: "Scheme", value: "scheme", aliases: ["scm"] },
|
|
96
|
+
{ label: "SCSS", value: "scss" },
|
|
97
|
+
{ label: "Shell", value: "shell", aliases: ["console", "shellsession"] },
|
|
98
|
+
{ label: "Smalltalk", value: "smalltalk", aliases: ["st"] },
|
|
99
|
+
{ label: "Solidity", value: "solidity" },
|
|
100
|
+
{ label: "SQL", value: "sql" },
|
|
101
|
+
{ label: "Swift", value: "swift" },
|
|
102
|
+
{ label: "TOML", value: "toml" },
|
|
103
|
+
{
|
|
104
|
+
label: "TypeScript",
|
|
105
|
+
value: "typescript",
|
|
106
|
+
aliases: ["ts", "tsx", "mts", "cts"]
|
|
107
|
+
},
|
|
108
|
+
{ label: "VB.Net", value: "vbnet", aliases: ["vb"] },
|
|
109
|
+
{ label: "Verilog", value: "verilog", aliases: ["v", "sv", "svh"] },
|
|
110
|
+
{ label: "VHDL", value: "vhdl" },
|
|
111
|
+
{ label: "Visual Basic", value: "visualbasic" },
|
|
112
|
+
{ label: "WebAssembly", value: "wasm" },
|
|
113
|
+
{
|
|
114
|
+
label: "XML",
|
|
115
|
+
value: "xml",
|
|
116
|
+
// Note: highlight.js also lists "html" here, but `html` is its own
|
|
117
|
+
// canonical entry above; including it would rewrite html → xml.
|
|
118
|
+
aliases: [
|
|
119
|
+
"xhtml",
|
|
120
|
+
"rss",
|
|
121
|
+
"atom",
|
|
122
|
+
"xjb",
|
|
123
|
+
"xsd",
|
|
124
|
+
"xsl",
|
|
125
|
+
"plist",
|
|
126
|
+
"wsf",
|
|
127
|
+
"svg"
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{ label: "YAML", value: "yaml", aliases: ["yml"] }
|
|
131
|
+
];
|
|
132
|
+
const ALIAS_TO_CANONICAL = (() => {
|
|
133
|
+
const map = /* @__PURE__ */ new Map();
|
|
134
|
+
for (const lang of LANGUAGES) {
|
|
135
|
+
for (const alias of lang.aliases ?? []) {
|
|
136
|
+
map.set(alias, lang.value);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return map;
|
|
140
|
+
})();
|
|
141
|
+
function normalizeLanguage(input) {
|
|
142
|
+
if (!input) return "";
|
|
143
|
+
return ALIAS_TO_CANONICAL.get(input) ?? input;
|
|
144
|
+
}
|
|
145
|
+
function getLanguageLabel(value) {
|
|
146
|
+
if (!value) return "Auto";
|
|
147
|
+
const found = LANGUAGES.find((l) => l.value === value);
|
|
148
|
+
return found?.label ?? value;
|
|
149
|
+
}
|
|
150
|
+
export {
|
|
151
|
+
LANGUAGES,
|
|
152
|
+
getLanguageLabel,
|
|
153
|
+
normalizeLanguage
|
|
154
|
+
};
|
|
155
|
+
//# sourceMappingURL=languages.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/languages.ts"],"sourcesContent":["export interface Language {\n\tlabel: string;\n\tvalue: string;\n\t/**\n\t * Aliases recognized by highlight.js for this language. Used by\n\t * `normalizeLanguage` so the markdown input rule (e.g. ```js + Enter)\n\t * stores the canonical `value` instead of the raw alias. Only canonical\n\t * values are listed in this table; an alias that already exists as a\n\t * canonical `value` (e.g. `html` for `xml`) is intentionally excluded\n\t * to preserve the existing UI label.\n\t */\n\taliases?: string[];\n}\n\n// Curated set transcribed from demo/notra/components/editor/ui/language-select.tsx.\n// Keep the order: auto and plaintext first, then alphabetical by label.\n// `aliases` mirror the `aliases` field of the corresponding highlight.js\n// language module (highlight.js@11). Entries missing from highlight.js's\n// shipped languages have no aliases.\nexport const LANGUAGES: Language[] = [\n\t{ label: 'Auto', value: 'auto' },\n\t{ label: 'Plain Text', value: 'plaintext' },\n\t{ label: 'ABAP', value: 'abap' },\n\t{ label: 'Agda', value: 'agda' },\n\t{ label: 'Arduino', value: 'arduino', aliases: ['ino'] },\n\t{ label: 'ASCII Art', value: 'ascii' },\n\t{ label: 'Assembly', value: 'x86asm' },\n\t{ label: 'Bash', value: 'bash', aliases: ['sh', 'zsh'] },\n\t{ label: 'BASIC', value: 'basic' },\n\t{ label: 'BNF', value: 'bnf' },\n\t{ label: 'C', value: 'c', aliases: ['h'] },\n\t{ label: 'C#', value: 'csharp', aliases: ['cs', 'c#'] },\n\t{\n\t\tlabel: 'C++',\n\t\tvalue: 'cpp',\n\t\taliases: ['cc', 'c++', 'h++', 'hpp', 'hh', 'hxx', 'cxx']\n\t},\n\t{ label: 'Clojure', value: 'clojure', aliases: ['clj', 'edn'] },\n\t{\n\t\tlabel: 'CoffeeScript',\n\t\tvalue: 'coffeescript',\n\t\taliases: ['coffee', 'cson', 'iced']\n\t},\n\t{ label: 'Coq', value: 'coq' },\n\t{ label: 'CSS', value: 'css' },\n\t{ label: 'Dart', value: 'dart' },\n\t{ label: 'Dhall', value: 'dhall' },\n\t{ label: 'Diff', value: 'diff', aliases: ['patch'] },\n\t{ label: 'Docker', value: 'dockerfile', aliases: ['docker'] },\n\t{ label: 'EBNF', value: 'ebnf' },\n\t{ label: 'Elixir', value: 'elixir', aliases: ['ex', 'exs'] },\n\t{ label: 'Elm', value: 'elm' },\n\t{ label: 'Erlang', value: 'erlang', aliases: ['erl'] },\n\t{ label: 'F#', value: 'fsharp', aliases: ['fs', 'f#'] },\n\t{ label: 'Flow', value: 'flow' },\n\t{ label: 'Fortran', value: 'fortran', aliases: ['f90', 'f95'] },\n\t{ label: 'Gherkin', value: 'gherkin', aliases: ['feature'] },\n\t{ label: 'GLSL', value: 'glsl' },\n\t{ label: 'Go', value: 'go', aliases: ['golang'] },\n\t{ label: 'GraphQL', value: 'graphql', aliases: ['gql'] },\n\t{ label: 'Groovy', value: 'groovy' },\n\t{ label: 'Haskell', value: 'haskell', aliases: ['hs'] },\n\t{ label: 'HCL', value: 'hcl' },\n\t{ label: 'HTML', value: 'html' },\n\t{ label: 'Idris', value: 'idris' },\n\t{ label: 'Java', value: 'java', aliases: ['jsp'] },\n\t{\n\t\tlabel: 'JavaScript',\n\t\tvalue: 'javascript',\n\t\taliases: ['js', 'jsx', 'mjs', 'cjs']\n\t},\n\t{ label: 'JSON', value: 'json', aliases: ['jsonc'] },\n\t{ label: 'Julia', value: 'julia' },\n\t{ label: 'Kotlin', value: 'kotlin', aliases: ['kt', 'kts'] },\n\t{ label: 'LaTeX', value: 'latex', aliases: ['tex'] },\n\t{ label: 'Less', value: 'less' },\n\t{ label: 'Lisp', value: 'lisp' },\n\t{ label: 'LiveScript', value: 'livescript', aliases: ['ls'] },\n\t{ label: 'LLVM IR', value: 'llvm' },\n\t{ label: 'Lua', value: 'lua', aliases: ['pluto'] },\n\t{ label: 'Makefile', value: 'makefile', aliases: ['mk', 'mak', 'make'] },\n\t{ label: 'Markdown', value: 'markdown', aliases: ['md', 'mkdown', 'mkd'] },\n\t{ label: 'Markup', value: 'markup' },\n\t{ label: 'MATLAB', value: 'matlab' },\n\t{ label: 'Mathematica', value: 'mathematica', aliases: ['mma', 'wl'] },\n\t{ label: 'Mermaid', value: 'mermaid' },\n\t{ label: 'Nix', value: 'nix', aliases: ['nixos'] },\n\t{ label: 'Notion Formula', value: 'notion' },\n\t{\n\t\tlabel: 'Objective-C',\n\t\tvalue: 'objectivec',\n\t\taliases: ['mm', 'objc', 'obj-c', 'obj-c++', 'objective-c++']\n\t},\n\t{ label: 'OCaml', value: 'ocaml', aliases: ['ml'] },\n\t{ label: 'Pascal', value: 'pascal' },\n\t{ label: 'Perl', value: 'perl', aliases: ['pl', 'pm'] },\n\t{ label: 'PHP', value: 'php' },\n\t{ label: 'PowerShell', value: 'powershell', aliases: ['pwsh', 'ps', 'ps1'] },\n\t{ label: 'Prolog', value: 'prolog' },\n\t{ label: 'Protocol Buffers', value: 'protobuf', aliases: ['proto'] },\n\t{ label: 'PureScript', value: 'purescript' },\n\t{ label: 'Python', value: 'python', aliases: ['py', 'gyp', 'ipython'] },\n\t{ label: 'R', value: 'r' },\n\t{ label: 'Racket', value: 'racket' },\n\t{ label: 'Reason', value: 'reasonml', aliases: ['re'] },\n\t{\n\t\tlabel: 'Ruby',\n\t\tvalue: 'ruby',\n\t\taliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb']\n\t},\n\t{ label: 'Rust', value: 'rust', aliases: ['rs'] },\n\t{ label: 'Sass', value: 'sass' },\n\t{ label: 'Scala', value: 'scala' },\n\t{ label: 'Scheme', value: 'scheme', aliases: ['scm'] },\n\t{ label: 'SCSS', value: 'scss' },\n\t{ label: 'Shell', value: 'shell', aliases: ['console', 'shellsession'] },\n\t{ label: 'Smalltalk', value: 'smalltalk', aliases: ['st'] },\n\t{ label: 'Solidity', value: 'solidity' },\n\t{ label: 'SQL', value: 'sql' },\n\t{ label: 'Swift', value: 'swift' },\n\t{ label: 'TOML', value: 'toml' },\n\t{\n\t\tlabel: 'TypeScript',\n\t\tvalue: 'typescript',\n\t\taliases: ['ts', 'tsx', 'mts', 'cts']\n\t},\n\t{ label: 'VB.Net', value: 'vbnet', aliases: ['vb'] },\n\t{ label: 'Verilog', value: 'verilog', aliases: ['v', 'sv', 'svh'] },\n\t{ label: 'VHDL', value: 'vhdl' },\n\t{ label: 'Visual Basic', value: 'visualbasic' },\n\t{ label: 'WebAssembly', value: 'wasm' },\n\t{\n\t\tlabel: 'XML',\n\t\tvalue: 'xml',\n\t\t// Note: highlight.js also lists \"html\" here, but `html` is its own\n\t\t// canonical entry above; including it would rewrite html → xml.\n\t\taliases: [\n\t\t\t'xhtml',\n\t\t\t'rss',\n\t\t\t'atom',\n\t\t\t'xjb',\n\t\t\t'xsd',\n\t\t\t'xsl',\n\t\t\t'plist',\n\t\t\t'wsf',\n\t\t\t'svg'\n\t\t]\n\t},\n\t{ label: 'YAML', value: 'yaml', aliases: ['yml'] }\n];\n\nconst ALIAS_TO_CANONICAL = (() => {\n\tconst map = new Map<string, string>();\n\n\tfor (const lang of LANGUAGES) {\n\t\tfor (const alias of lang.aliases ?? []) {\n\t\t\tmap.set(alias, lang.value);\n\t\t}\n\t}\n\n\treturn map;\n})();\n\n/**\n * Resolve a user-supplied language identifier to a canonical LANGUAGES.value.\n * Aliases (e.g. `js`, `ts`, `py`) collapse to their canonical form\n * (`javascript`, `typescript`, `python`); unknown identifiers and canonical\n * values pass through unchanged. Empty / undefined input returns ''.\n */\nexport function normalizeLanguage(input: string | undefined | null): string {\n\tif (!input) return '';\n\n\treturn ALIAS_TO_CANONICAL.get(input) ?? input;\n}\n\nexport function getLanguageLabel(value: string | null | undefined): string {\n\tif (!value) return 'Auto';\n\n\tconst found = LANGUAGES.find((l) => l.value === value);\n\n\treturn found?.label ?? value;\n}\n"],"mappings":"AAmBO,MAAM,YAAwB;AAAA,EACpC,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,cAAc,OAAO,YAAY;AAAA,EAC1C,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,KAAK,EAAE;AAAA,EACvD,EAAE,OAAO,aAAa,OAAO,QAAQ;AAAA,EACrC,EAAE,OAAO,YAAY,OAAO,SAAS;AAAA,EACrC,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,MAAM,KAAK,EAAE;AAAA,EACvD,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,KAAK,OAAO,KAAK,SAAS,CAAC,GAAG,EAAE;AAAA,EACzC,EAAE,OAAO,MAAM,OAAO,UAAU,SAAS,CAAC,MAAM,IAAI,EAAE;AAAA,EACtD;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,KAAK;AAAA,EACxD;AAAA,EACA,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,OAAO,KAAK,EAAE;AAAA,EAC9D;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,UAAU,QAAQ,MAAM;AAAA,EACnC;AAAA,EACA,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,OAAO,EAAE;AAAA,EACnD,EAAE,OAAO,UAAU,OAAO,cAAc,SAAS,CAAC,QAAQ,EAAE;AAAA,EAC5D,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,UAAU,OAAO,UAAU,SAAS,CAAC,MAAM,KAAK,EAAE;AAAA,EAC3D,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,UAAU,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE;AAAA,EACrD,EAAE,OAAO,MAAM,OAAO,UAAU,SAAS,CAAC,MAAM,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,OAAO,KAAK,EAAE;AAAA,EAC9D,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,SAAS,EAAE;AAAA,EAC3D,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,MAAM,OAAO,MAAM,SAAS,CAAC,QAAQ,EAAE;AAAA,EAChD,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,KAAK,EAAE;AAAA,EACvD,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,KAAK,EAAE;AAAA,EACjD;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,MAAM,OAAO,OAAO,KAAK;AAAA,EACpC;AAAA,EACA,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,OAAO,EAAE;AAAA,EACnD,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,UAAU,OAAO,UAAU,SAAS,CAAC,MAAM,KAAK,EAAE;AAAA,EAC3D,EAAE,OAAO,SAAS,OAAO,SAAS,SAAS,CAAC,KAAK,EAAE;AAAA,EACnD,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,cAAc,OAAO,cAAc,SAAS,CAAC,IAAI,EAAE;AAAA,EAC5D,EAAE,OAAO,WAAW,OAAO,OAAO;AAAA,EAClC,EAAE,OAAO,OAAO,OAAO,OAAO,SAAS,CAAC,OAAO,EAAE;AAAA,EACjD,EAAE,OAAO,YAAY,OAAO,YAAY,SAAS,CAAC,MAAM,OAAO,MAAM,EAAE;AAAA,EACvE,EAAE,OAAO,YAAY,OAAO,YAAY,SAAS,CAAC,MAAM,UAAU,KAAK,EAAE;AAAA,EACzE,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,eAAe,OAAO,eAAe,SAAS,CAAC,OAAO,IAAI,EAAE;AAAA,EACrE,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,EACrC,EAAE,OAAO,OAAO,OAAO,OAAO,SAAS,CAAC,OAAO,EAAE;AAAA,EACjD,EAAE,OAAO,kBAAkB,OAAO,SAAS;AAAA,EAC3C;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,MAAM,QAAQ,SAAS,WAAW,eAAe;AAAA,EAC5D;AAAA,EACA,EAAE,OAAO,SAAS,OAAO,SAAS,SAAS,CAAC,IAAI,EAAE;AAAA,EAClD,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,MAAM,IAAI,EAAE;AAAA,EACtD,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,cAAc,OAAO,cAAc,SAAS,CAAC,QAAQ,MAAM,KAAK,EAAE;AAAA,EAC3E,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,oBAAoB,OAAO,YAAY,SAAS,CAAC,OAAO,EAAE;AAAA,EACnE,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,UAAU,OAAO,UAAU,SAAS,CAAC,MAAM,OAAO,SAAS,EAAE;AAAA,EACtE,EAAE,OAAO,KAAK,OAAO,IAAI;AAAA,EACzB,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,UAAU,OAAO,YAAY,SAAS,CAAC,IAAI,EAAE;AAAA,EACtD;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,MAAM,WAAW,WAAW,QAAQ,KAAK;AAAA,EACpD;AAAA,EACA,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,IAAI,EAAE;AAAA,EAChD,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,UAAU,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE;AAAA,EACrD,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,SAAS,OAAO,SAAS,SAAS,CAAC,WAAW,cAAc,EAAE;AAAA,EACvE,EAAE,OAAO,aAAa,OAAO,aAAa,SAAS,CAAC,IAAI,EAAE;AAAA,EAC1D,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,EAC7B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,CAAC,MAAM,OAAO,OAAO,KAAK;AAAA,EACpC;AAAA,EACA,EAAE,OAAO,UAAU,OAAO,SAAS,SAAS,CAAC,IAAI,EAAE;AAAA,EACnD,EAAE,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC,KAAK,MAAM,KAAK,EAAE;AAAA,EAClE,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC/B,EAAE,OAAO,gBAAgB,OAAO,cAAc;AAAA,EAC9C,EAAE,OAAO,eAAe,OAAO,OAAO;AAAA,EACtC;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA;AAAA;AAAA,IAGP,SAAS;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EACA,EAAE,OAAO,QAAQ,OAAO,QAAQ,SAAS,CAAC,KAAK,EAAE;AAClD;AAEA,MAAM,sBAAsB,MAAM;AACjC,QAAM,MAAM,oBAAI,IAAoB;AAEpC,aAAW,QAAQ,WAAW;AAC7B,eAAW,SAAS,KAAK,WAAW,CAAC,GAAG;AACvC,UAAI,IAAI,OAAO,KAAK,KAAK;AAAA,IAC1B;AAAA,EACD;AAEA,SAAO;AACR,GAAG;AAQI,SAAS,kBAAkB,OAA0C;AAC3E,MAAI,CAAC,MAAO,QAAO;AAEnB,SAAO,mBAAmB,IAAI,KAAK,KAAK;AACzC;AAEO,SAAS,iBAAiB,OAA0C;AAC1E,MAAI,CAAC,MAAO,QAAO;AAEnB,QAAM,QAAQ,UAAU,KAAK,CAAC,MAAM,EAAE,UAAU,KAAK;AAErD,SAAO,OAAO,SAAS;AACxB;","names":[]}
|
package/dist/notra-reader.cjs
CHANGED
|
@@ -23,17 +23,46 @@ __export(notra_reader_exports, {
|
|
|
23
23
|
module.exports = __toCommonJS(notra_reader_exports);
|
|
24
24
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
25
|
var import_react = require("@tiptap/static-renderer/pm/react");
|
|
26
|
-
var
|
|
26
|
+
var import_code_block_shell = require("./components/code-block-view/code-block-shell");
|
|
27
27
|
var import_extensions = require("./extensions");
|
|
28
|
+
var import_code_block = require("./extensions/code-block");
|
|
29
|
+
var import_highlight_code_to_html = require("./lib/highlight-code-to-html");
|
|
30
|
+
var import_languages = require("./lib/languages");
|
|
28
31
|
var import_markdown_to_json = require("./utils/markdown-to-json");
|
|
29
|
-
function NotraReader({
|
|
32
|
+
function NotraReader({
|
|
33
|
+
content,
|
|
34
|
+
className,
|
|
35
|
+
lowlight = import_code_block.defaultLowlight
|
|
36
|
+
}) {
|
|
30
37
|
const json = (0, import_markdown_to_json.markdownToJSON)(content);
|
|
31
38
|
const rendered = (0, import_react.renderToReactElement)({
|
|
32
39
|
extensions: import_extensions.sharedExtensions,
|
|
33
40
|
content: json,
|
|
34
41
|
options: {
|
|
35
42
|
nodeMapping: {
|
|
36
|
-
codeBlock: ({ node
|
|
43
|
+
codeBlock: ({ node }) => {
|
|
44
|
+
const language = node.attrs.language ?? "";
|
|
45
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
46
|
+
import_code_block_shell.CodeBlockShell,
|
|
47
|
+
{
|
|
48
|
+
languageSlot: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: (0, import_languages.getLanguageLabel)(language) }),
|
|
49
|
+
value: node.textContent,
|
|
50
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
51
|
+
"code",
|
|
52
|
+
{
|
|
53
|
+
dangerouslySetInnerHTML: {
|
|
54
|
+
__html: (0, import_highlight_code_to_html.highlightCodeToHtml)(
|
|
55
|
+
node.textContent,
|
|
56
|
+
language,
|
|
57
|
+
lowlight
|
|
58
|
+
)
|
|
59
|
+
},
|
|
60
|
+
className: "hljs"
|
|
61
|
+
}
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
);
|
|
65
|
+
}
|
|
37
66
|
}
|
|
38
67
|
}
|
|
39
68
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/notra-reader.tsx"],"sourcesContent":["import { renderToReactElement } from '@tiptap/static-renderer/pm/react';\n\nimport { CodeBlockShell } from './components/code-block-view';\nimport { sharedExtensions } from './extensions';\nimport { markdownToJSON } from './utils/markdown-to-json';\n\nexport interface NotraReaderProps {\n\t/** Markdown content to render */\n\tcontent: string;\n\t/** Additional CSS class on the wrapper element */\n\tclassName?: string;\n}\n\nexport function NotraReader({
|
|
1
|
+
{"version":3,"sources":["../src/notra-reader.tsx"],"sourcesContent":["import { renderToReactElement } from '@tiptap/static-renderer/pm/react';\nimport { type createLowlight } from 'lowlight';\n\nimport { CodeBlockShell } from './components/code-block-view/code-block-shell';\nimport { sharedExtensions } from './extensions';\nimport { defaultLowlight } from './extensions/code-block';\nimport { highlightCodeToHtml } from './lib/highlight-code-to-html';\nimport { getLanguageLabel } from './lib/languages';\nimport { markdownToJSON } from './utils/markdown-to-json';\n\ntype Lowlight = ReturnType<typeof createLowlight>;\n\nexport interface NotraReaderProps {\n\t/** Markdown content to render */\n\tcontent: string;\n\t/** Additional CSS class on the wrapper element */\n\tclassName?: string;\n\t/**\n\t * Optional lowlight instance for syntax highlighting. Defaults to the same\n\t * `defaultLowlight` (createLowlight(common)) used by `CodeBlockExtension`.\n\t * Pass a custom instance if you configured the editor with\n\t * `createCodeBlockExtension(myLowlight)` and want the reader to highlight\n\t * the same superset of languages.\n\t */\n\tlowlight?: Lowlight;\n}\n\nexport function NotraReader({\n\tcontent,\n\tclassName,\n\tlowlight = defaultLowlight\n}: NotraReaderProps) {\n\tconst json = markdownToJSON(content);\n\n\tconst rendered = renderToReactElement({\n\t\textensions: sharedExtensions,\n\t\tcontent: json,\n\t\toptions: {\n\t\t\tnodeMapping: {\n\t\t\t\tcodeBlock: ({ node }) => {\n\t\t\t\t\tconst language = (node.attrs.language as string) ?? '';\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CodeBlockShell\n\t\t\t\t\t\t\tlanguageSlot={<span>{getLanguageLabel(language)}</span>}\n\t\t\t\t\t\t\tvalue={node.textContent}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<code\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t\t\t__html: highlightCodeToHtml(\n\t\t\t\t\t\t\t\t\t\tnode.textContent,\n\t\t\t\t\t\t\t\t\t\tlanguage,\n\t\t\t\t\t\t\t\t\t\tlowlight\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tclassName=\"hljs\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</CodeBlockShell>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tconst classNames = ['notra', 'notra-reader', className]\n\t\t.filter(Boolean)\n\t\t.join(' ');\n\n\treturn <div className={classNames}>{rendered}</div>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4CqB;AA5CrB,mBAAqC;AAGrC,8BAA+B;AAC/B,wBAAiC;AACjC,wBAAgC;AAChC,oCAAoC;AACpC,uBAAiC;AACjC,8BAA+B;AAmBxB,SAAS,YAAY;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,WAAW;AACZ,GAAqB;AACpB,QAAM,WAAO,wCAAe,OAAO;AAEnC,QAAM,eAAW,mCAAqB;AAAA,IACrC,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,SAAS;AAAA,MACR,aAAa;AAAA,QACZ,WAAW,CAAC,EAAE,KAAK,MAAM;AACxB,gBAAM,WAAY,KAAK,MAAM,YAAuB;AAEpD,iBACC;AAAA,YAAC;AAAA;AAAA,cACA,cAAc,4CAAC,UAAM,iDAAiB,QAAQ,GAAE;AAAA,cAChD,OAAO,KAAK;AAAA,cAEZ;AAAA,gBAAC;AAAA;AAAA,kBACA,yBAAyB;AAAA,oBACxB,YAAQ;AAAA,sBACP,KAAK;AAAA,sBACL;AAAA,sBACA;AAAA,oBACD;AAAA,kBACD;AAAA,kBACA,WAAU;AAAA;AAAA,cACX;AAAA;AAAA,UACD;AAAA,QAEF;AAAA,MACD;AAAA,IACD;AAAA,EACD,CAAC;AAED,QAAM,aAAa,CAAC,SAAS,gBAAgB,SAAS,EACpD,OAAO,OAAO,EACd,KAAK,GAAG;AAEV,SAAO,4CAAC,SAAI,WAAW,YAAa,oBAAS;AAC9C;","names":[]}
|
package/dist/notra-reader.d.cts
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { createLowlight } from 'lowlight';
|
|
2
3
|
|
|
4
|
+
type Lowlight = ReturnType<typeof createLowlight>;
|
|
3
5
|
interface NotraReaderProps {
|
|
4
6
|
/** Markdown content to render */
|
|
5
7
|
content: string;
|
|
6
8
|
/** Additional CSS class on the wrapper element */
|
|
7
9
|
className?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Optional lowlight instance for syntax highlighting. Defaults to the same
|
|
12
|
+
* `defaultLowlight` (createLowlight(common)) used by `CodeBlockExtension`.
|
|
13
|
+
* Pass a custom instance if you configured the editor with
|
|
14
|
+
* `createCodeBlockExtension(myLowlight)` and want the reader to highlight
|
|
15
|
+
* the same superset of languages.
|
|
16
|
+
*/
|
|
17
|
+
lowlight?: Lowlight;
|
|
8
18
|
}
|
|
9
|
-
declare function NotraReader({ content, className }: NotraReaderProps): react_jsx_runtime.JSX.Element;
|
|
19
|
+
declare function NotraReader({ content, className, lowlight }: NotraReaderProps): react_jsx_runtime.JSX.Element;
|
|
10
20
|
|
|
11
21
|
export { NotraReader, type NotraReaderProps };
|
package/dist/notra-reader.d.ts
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { createLowlight } from 'lowlight';
|
|
2
3
|
|
|
4
|
+
type Lowlight = ReturnType<typeof createLowlight>;
|
|
3
5
|
interface NotraReaderProps {
|
|
4
6
|
/** Markdown content to render */
|
|
5
7
|
content: string;
|
|
6
8
|
/** Additional CSS class on the wrapper element */
|
|
7
9
|
className?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Optional lowlight instance for syntax highlighting. Defaults to the same
|
|
12
|
+
* `defaultLowlight` (createLowlight(common)) used by `CodeBlockExtension`.
|
|
13
|
+
* Pass a custom instance if you configured the editor with
|
|
14
|
+
* `createCodeBlockExtension(myLowlight)` and want the reader to highlight
|
|
15
|
+
* the same superset of languages.
|
|
16
|
+
*/
|
|
17
|
+
lowlight?: Lowlight;
|
|
8
18
|
}
|
|
9
|
-
declare function NotraReader({ content, className }: NotraReaderProps): react_jsx_runtime.JSX.Element;
|
|
19
|
+
declare function NotraReader({ content, className, lowlight }: NotraReaderProps): react_jsx_runtime.JSX.Element;
|
|
10
20
|
|
|
11
21
|
export { NotraReader, type NotraReaderProps };
|
package/dist/notra-reader.mjs
CHANGED
|
@@ -1,16 +1,45 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { renderToReactElement } from "@tiptap/static-renderer/pm/react";
|
|
3
|
-
import { CodeBlockShell } from "./components/code-block-view";
|
|
3
|
+
import { CodeBlockShell } from "./components/code-block-view/code-block-shell";
|
|
4
4
|
import { sharedExtensions } from "./extensions";
|
|
5
|
+
import { defaultLowlight } from "./extensions/code-block";
|
|
6
|
+
import { highlightCodeToHtml } from "./lib/highlight-code-to-html";
|
|
7
|
+
import { getLanguageLabel } from "./lib/languages";
|
|
5
8
|
import { markdownToJSON } from "./utils/markdown-to-json";
|
|
6
|
-
function NotraReader({
|
|
9
|
+
function NotraReader({
|
|
10
|
+
content,
|
|
11
|
+
className,
|
|
12
|
+
lowlight = defaultLowlight
|
|
13
|
+
}) {
|
|
7
14
|
const json = markdownToJSON(content);
|
|
8
15
|
const rendered = renderToReactElement({
|
|
9
16
|
extensions: sharedExtensions,
|
|
10
17
|
content: json,
|
|
11
18
|
options: {
|
|
12
19
|
nodeMapping: {
|
|
13
|
-
codeBlock: ({ node
|
|
20
|
+
codeBlock: ({ node }) => {
|
|
21
|
+
const language = node.attrs.language ?? "";
|
|
22
|
+
return /* @__PURE__ */ jsx(
|
|
23
|
+
CodeBlockShell,
|
|
24
|
+
{
|
|
25
|
+
languageSlot: /* @__PURE__ */ jsx("span", { children: getLanguageLabel(language) }),
|
|
26
|
+
value: node.textContent,
|
|
27
|
+
children: /* @__PURE__ */ jsx(
|
|
28
|
+
"code",
|
|
29
|
+
{
|
|
30
|
+
dangerouslySetInnerHTML: {
|
|
31
|
+
__html: highlightCodeToHtml(
|
|
32
|
+
node.textContent,
|
|
33
|
+
language,
|
|
34
|
+
lowlight
|
|
35
|
+
)
|
|
36
|
+
},
|
|
37
|
+
className: "hljs"
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
14
43
|
}
|
|
15
44
|
}
|
|
16
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/notra-reader.tsx"],"sourcesContent":["import { renderToReactElement } from '@tiptap/static-renderer/pm/react';\n\nimport { CodeBlockShell } from './components/code-block-view';\nimport { sharedExtensions } from './extensions';\nimport { markdownToJSON } from './utils/markdown-to-json';\n\nexport interface NotraReaderProps {\n\t/** Markdown content to render */\n\tcontent: string;\n\t/** Additional CSS class on the wrapper element */\n\tclassName?: string;\n}\n\nexport function NotraReader({
|
|
1
|
+
{"version":3,"sources":["../src/notra-reader.tsx"],"sourcesContent":["import { renderToReactElement } from '@tiptap/static-renderer/pm/react';\nimport { type createLowlight } from 'lowlight';\n\nimport { CodeBlockShell } from './components/code-block-view/code-block-shell';\nimport { sharedExtensions } from './extensions';\nimport { defaultLowlight } from './extensions/code-block';\nimport { highlightCodeToHtml } from './lib/highlight-code-to-html';\nimport { getLanguageLabel } from './lib/languages';\nimport { markdownToJSON } from './utils/markdown-to-json';\n\ntype Lowlight = ReturnType<typeof createLowlight>;\n\nexport interface NotraReaderProps {\n\t/** Markdown content to render */\n\tcontent: string;\n\t/** Additional CSS class on the wrapper element */\n\tclassName?: string;\n\t/**\n\t * Optional lowlight instance for syntax highlighting. Defaults to the same\n\t * `defaultLowlight` (createLowlight(common)) used by `CodeBlockExtension`.\n\t * Pass a custom instance if you configured the editor with\n\t * `createCodeBlockExtension(myLowlight)` and want the reader to highlight\n\t * the same superset of languages.\n\t */\n\tlowlight?: Lowlight;\n}\n\nexport function NotraReader({\n\tcontent,\n\tclassName,\n\tlowlight = defaultLowlight\n}: NotraReaderProps) {\n\tconst json = markdownToJSON(content);\n\n\tconst rendered = renderToReactElement({\n\t\textensions: sharedExtensions,\n\t\tcontent: json,\n\t\toptions: {\n\t\t\tnodeMapping: {\n\t\t\t\tcodeBlock: ({ node }) => {\n\t\t\t\t\tconst language = (node.attrs.language as string) ?? '';\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CodeBlockShell\n\t\t\t\t\t\t\tlanguageSlot={<span>{getLanguageLabel(language)}</span>}\n\t\t\t\t\t\t\tvalue={node.textContent}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<code\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t\t\t__html: highlightCodeToHtml(\n\t\t\t\t\t\t\t\t\t\tnode.textContent,\n\t\t\t\t\t\t\t\t\t\tlanguage,\n\t\t\t\t\t\t\t\t\t\tlowlight\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tclassName=\"hljs\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</CodeBlockShell>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tconst classNames = ['notra', 'notra-reader', className]\n\t\t.filter(Boolean)\n\t\t.join(' ');\n\n\treturn <div className={classNames}>{rendered}</div>;\n}\n"],"mappings":"AA4CqB;AA5CrB,SAAS,4BAA4B;AAGrC,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AACpC,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAmBxB,SAAS,YAAY;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,WAAW;AACZ,GAAqB;AACpB,QAAM,OAAO,eAAe,OAAO;AAEnC,QAAM,WAAW,qBAAqB;AAAA,IACrC,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,SAAS;AAAA,MACR,aAAa;AAAA,QACZ,WAAW,CAAC,EAAE,KAAK,MAAM;AACxB,gBAAM,WAAY,KAAK,MAAM,YAAuB;AAEpD,iBACC;AAAA,YAAC;AAAA;AAAA,cACA,cAAc,oBAAC,UAAM,2BAAiB,QAAQ,GAAE;AAAA,cAChD,OAAO,KAAK;AAAA,cAEZ;AAAA,gBAAC;AAAA;AAAA,kBACA,yBAAyB;AAAA,oBACxB,QAAQ;AAAA,sBACP,KAAK;AAAA,sBACL;AAAA,sBACA;AAAA,oBACD;AAAA,kBACD;AAAA,kBACA,WAAU;AAAA;AAAA,cACX;AAAA;AAAA,UACD;AAAA,QAEF;AAAA,MACD;AAAA,IACD;AAAA,EACD,CAAC;AAED,QAAM,aAAa,CAAC,SAAS,gBAAgB,SAAS,EACpD,OAAO,OAAO,EACd,KAAK,GAAG;AAEV,SAAO,oBAAC,SAAI,WAAW,YAAa,oBAAS;AAC9C;","names":[]}
|