vue-syntax-highlighter 1.0.0 → 1.0.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 +8 -0
- package/dist/chunks/{index-a55czNwo.js → index-Mb8zyIwS.js} +2 -2
- package/dist/chunks/{index-a55czNwo.js.map → index-Mb8zyIwS.js.map} +1 -1
- package/dist/chunks/{source-DxBCRqJY.js → source-BSZ04z5-.js} +22 -16
- package/dist/chunks/source-BSZ04z5-.js.map +1 -0
- package/dist/core/source.d.ts +6 -0
- package/dist/engines/highlightjs.js +1 -1
- package/dist/engines/lowlight.js +1 -1
- package/dist/engines/prism.js +1 -1
- package/dist/engines/shiki.js +1 -1
- package/dist/index.js +161 -161
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/source-DxBCRqJY.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented here. The format follows Keep a Changelog and the project uses semantic versioning.
|
|
4
4
|
|
|
5
|
+
## [1.0.1] - 2026-10-25
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- A single terminal line break no longer renders an extra empty row or line number. Deliberate blank lines are preserved, and `copy()` / `getCopyPayload()` still return the original trailing line break.
|
|
10
|
+
- `startLine` now accepts `0` instead of clamping the first displayed line number to `1`.
|
|
11
|
+
- Added regression coverage for terminal newlines, intentional trailing blank lines, zero-based line numbers, and the raw copy payload.
|
|
12
|
+
|
|
5
13
|
## [1.0.0] - 2026-10-25
|
|
6
14
|
|
|
7
15
|
Initial stable release.
|
|
@@ -2,7 +2,7 @@ var w = Object.defineProperty;
|
|
|
2
2
|
var x = (r, t, i) => t in r ? w(r, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : r[t] = i;
|
|
3
3
|
var o = (r, t, i) => x(r, typeof t != "symbol" ? t + "" : t, i);
|
|
4
4
|
import { createLowlight as v } from "lowlight";
|
|
5
|
-
import { c as y, n as k, r as L } from "./source-
|
|
5
|
+
import { c as y, n as k, r as L } from "./source-BSZ04z5-.js";
|
|
6
6
|
import { m as b } from "./token-types-B8veGO5e.js";
|
|
7
7
|
const S = {
|
|
8
8
|
apache: () => import("highlight.js/lib/languages/apache"),
|
|
@@ -185,4 +185,4 @@ function h(r) {
|
|
|
185
185
|
export {
|
|
186
186
|
_ as c
|
|
187
187
|
};
|
|
188
|
-
//# sourceMappingURL=index-
|
|
188
|
+
//# sourceMappingURL=index-Mb8zyIwS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-a55czNwo.js","sources":["../../src/engines/highlightjs/languages.ts","../../src/engines/highlightjs/index.ts"],"sourcesContent":["// Generated by scripts/generate-languages.mjs. Do not edit by hand.\r\n// Language registry for the lowlight/highlight.js adapter.\r\nexport const languageLoaders = {\r\n \"apache\": () => import(\"highlight.js/lib/languages/apache\"),\r\n \"c\": () => import(\"highlight.js/lib/languages/c\"),\r\n \"clojure\": () => import(\"highlight.js/lib/languages/clojure\"),\r\n \"cpp\": () => import(\"highlight.js/lib/languages/cpp\"),\r\n \"csharp\": () => import(\"highlight.js/lib/languages/csharp\"),\r\n \"css\": () => import(\"highlight.js/lib/languages/css\"),\r\n \"dart\": () => import(\"highlight.js/lib/languages/dart\"),\r\n \"diff\": () => import(\"highlight.js/lib/languages/diff\"),\r\n \"docker\": () => import(\"highlight.js/lib/languages/dockerfile\"),\r\n \"elixir\": () => import(\"highlight.js/lib/languages/elixir\"),\r\n \"erlang\": () => import(\"highlight.js/lib/languages/erlang\"),\r\n \"fortran\": () => import(\"highlight.js/lib/languages/fortran\"),\r\n \"fsharp\": () => import(\"highlight.js/lib/languages/fsharp\"),\r\n \"go\": () => import(\"highlight.js/lib/languages/go\"),\r\n \"graphql\": () => import(\"highlight.js/lib/languages/graphql\"),\r\n \"groovy\": () => import(\"highlight.js/lib/languages/groovy\"),\r\n \"haskell\": () => import(\"highlight.js/lib/languages/haskell\"),\r\n \"html\": () => import(\"highlight.js/lib/languages/xml\"),\r\n \"http\": () => import(\"highlight.js/lib/languages/http\"),\r\n \"ini\": () => import(\"highlight.js/lib/languages/ini\"),\r\n \"java\": () => import(\"highlight.js/lib/languages/java\"),\r\n \"javascript\": () => import(\"highlight.js/lib/languages/javascript\"),\r\n \"json\": () => import(\"highlight.js/lib/languages/json\"),\r\n \"julia\": () => import(\"highlight.js/lib/languages/julia\"),\r\n \"kotlin\": () => import(\"highlight.js/lib/languages/kotlin\"),\r\n \"latex\": () => import(\"highlight.js/lib/languages/latex\"),\r\n \"less\": () => import(\"highlight.js/lib/languages/less\"),\r\n \"lua\": () => import(\"highlight.js/lib/languages/lua\"),\r\n \"make\": () => import(\"highlight.js/lib/languages/makefile\"),\r\n \"markdown\": () => import(\"highlight.js/lib/languages/markdown\"),\r\n \"matlab\": () => import(\"highlight.js/lib/languages/matlab\"),\r\n \"nginx\": () => import(\"highlight.js/lib/languages/nginx\"),\r\n \"nix\": () => import(\"highlight.js/lib/languages/nix\"),\r\n \"objective-c\": () => import(\"highlight.js/lib/languages/objectivec\"),\r\n \"ocaml\": () => import(\"highlight.js/lib/languages/ocaml\"),\r\n \"perl\": () => import(\"highlight.js/lib/languages/perl\"),\r\n \"php\": () => import(\"highlight.js/lib/languages/php\"),\r\n \"powershell\": () => import(\"highlight.js/lib/languages/powershell\"),\r\n \"python\": () => import(\"highlight.js/lib/languages/python\"),\r\n \"r\": () => import(\"highlight.js/lib/languages/r\"),\r\n \"ruby\": () => import(\"highlight.js/lib/languages/ruby\"),\r\n \"rust\": () => import(\"highlight.js/lib/languages/rust\"),\r\n \"scala\": () => import(\"highlight.js/lib/languages/scala\"),\r\n \"scss\": () => import(\"highlight.js/lib/languages/scss\"),\r\n \"shellscript\": () => import(\"highlight.js/lib/languages/bash\"),\r\n \"sql\": () => import(\"highlight.js/lib/languages/sql\"),\r\n \"stylus\": () => import(\"highlight.js/lib/languages/stylus\"),\r\n \"swift\": () => import(\"highlight.js/lib/languages/swift\"),\r\n \"typescript\": () => import(\"highlight.js/lib/languages/typescript\"),\r\n \"wasm\": () => import(\"highlight.js/lib/languages/wasm\"),\r\n \"xml\": () => import(\"highlight.js/lib/languages/xml\"),\r\n \"yaml\": () => import(\"highlight.js/lib/languages/yaml\"),\r\n} satisfies Record<string, () => Promise<unknown>>\r\n\r\nexport const languageAliases: Readonly<Record<string, string>> = {\r\n \"c#\": \"csharp\",\r\n \"c++\": \"cpp\",\r\n \"cjs\": \"javascript\",\r\n \"cs\": \"csharp\",\r\n \"cts\": \"typescript\",\r\n \"cxx\": \"cpp\",\r\n \"dockerfile\": \"docker\",\r\n \"htm\": \"html\",\r\n \"js\": \"javascript\",\r\n \"makefile\": \"make\",\r\n \"md\": \"markdown\",\r\n \"mjs\": \"javascript\",\r\n \"mts\": \"typescript\",\r\n \"objc\": \"objective-c\",\r\n \"py\": \"python\",\r\n \"rb\": \"ruby\",\r\n \"sh\": \"shellscript\",\r\n \"shell\": \"shellscript\",\r\n \"ts\": \"typescript\",\r\n \"yml\": \"yaml\",\r\n \"zsh\": \"shellscript\",\r\n}\r\n\r\nexport const supportedLanguages: readonly string[] = [\"apache\",\"c\",\"clojure\",\"cpp\",\"csharp\",\"css\",\"dart\",\"diff\",\"docker\",\"elixir\",\"erlang\",\"fortran\",\"fsharp\",\"go\",\"graphql\",\"groovy\",\"haskell\",\"html\",\"http\",\"ini\",\"java\",\"javascript\",\"json\",\"julia\",\"kotlin\",\"latex\",\"less\",\"lua\",\"make\",\"markdown\",\"matlab\",\"nginx\",\"nix\",\"objective-c\",\"ocaml\",\"perl\",\"php\",\"powershell\",\"python\",\"r\",\"ruby\",\"rust\",\"scala\",\"scss\",\"shellscript\",\"sql\",\"stylus\",\"swift\",\"typescript\",\"wasm\",\"xml\",\"yaml\"]\r\n","import { createLowlight } from 'lowlight'\r\nimport type { LanguageFn } from 'highlight.js'\r\nimport type {\r\n EngineOptions,\r\n HighlightEngine,\r\n HighlightRequest,\r\n HighlightResult,\r\n HighlightToken,\r\n} from '../../types.js'\r\nimport { createPlainResult, normalizeSource, resultToSource } from '../../core/source.js'\r\nimport { mapHljsClasses } from '../../core/token-types.js'\r\nimport { languageAliases, languageLoaders, supportedLanguages } from './languages.js'\r\n\r\nconst PLAIN_LANGUAGES = new Set(['text', 'plain', 'plaintext', 'txt'])\r\n\r\ninterface HastText {\r\n type: 'text'\r\n value: string\r\n}\r\n\r\ninterface HastElement {\r\n type: 'element'\r\n properties?: { className?: unknown }\r\n children?: HastNode[]\r\n}\r\n\r\ninterface HastRoot {\r\n type: 'root'\r\n children?: HastNode[]\r\n}\r\n\r\ntype HastNode = HastText | HastElement | { type: string; children?: HastNode[] }\r\n\r\nexport type HighlightjsLanguageRegistration = LanguageFn\r\nexport type HighlightjsLanguageLoader = () => Promise<{ default: LanguageFn } | LanguageFn>\r\n\r\nexport interface HighlightjsEngine extends HighlightEngine {\r\n readonly id: 'highlightjs'\r\n readonly capabilities: { sync: true }\r\n hasLanguage(language: string): boolean\r\n loadLanguage(language: string): Promise<void>\r\n registerLanguage(\r\n name: string,\r\n language: HighlightjsLanguageRegistration | HighlightjsLanguageLoader,\r\n ): void\r\n readonly supportedLanguages: readonly string[]\r\n}\r\n\r\nexport interface HighlightjsEngineOptions {\r\n preload?: readonly string[]\r\n}\r\n\r\nexport async function createHighlightjsEngine(\r\n options: HighlightjsEngineOptions = {},\r\n): Promise<HighlightjsEngine> {\r\n const engine = new HighlightjsEngineImpl(options)\r\n if (options.preload?.length) {\r\n await Promise.allSettled(options.preload.map((language) => engine.loadLanguage(language)))\r\n }\r\n return engine\r\n}\r\n\r\nclass HighlightjsEngineImpl implements HighlightjsEngine {\r\n readonly id = 'highlightjs' as const\r\n readonly capabilities = { sync: true } as const\r\n readonly supportedLanguages = supportedLanguages\r\n\r\n private readonly lowlight = createLowlight()\r\n private readonly loaders = new Map<string, HighlightjsLanguageLoader>(\r\n Object.entries(languageLoaders) as [string, HighlightjsLanguageLoader][],\r\n )\r\n private readonly loaded = new Set<string>()\r\n private readonly loading = new Map<string, Promise<void>>()\r\n private disposed = false\r\n\r\n constructor(_options: HighlightjsEngineOptions) {}\r\n\r\n hasLanguage(language: string): boolean {\r\n const canonical = canonicalLanguage(language)\r\n if (PLAIN_LANGUAGES.has(canonical)) return true\r\n return this.loaded.has(canonical)\r\n }\r\n\r\n registerLanguage(\r\n name: string,\r\n language: HighlightjsLanguageRegistration | HighlightjsLanguageLoader,\r\n ): void {\r\n const canonical = canonicalLanguage(name)\r\n // highlight.js grammars are functions too. A zero-argument function is\r\n // treated as a loader; a grammar receives the highlight.js instance.\r\n if (typeof language === 'function' && language.length === 0) {\r\n this.loaders.set(canonical, language as HighlightjsLanguageLoader)\r\n this.loaded.delete(canonical)\r\n return\r\n }\r\n const grammar = language as HighlightjsLanguageRegistration\r\n this.lowlight.register(canonical, grammar)\r\n this.loaders.set(canonical, async () => grammar)\r\n this.loaded.add(canonical)\r\n }\r\n\r\n loadLanguage(language: string): Promise<void> {\r\n if (this.disposed) {\r\n return Promise.reject(\r\n new Error('[vue-syntax-highlighter] The highlight.js engine was disposed.'),\r\n )\r\n }\r\n const canonical = canonicalLanguage(language)\r\n if (PLAIN_LANGUAGES.has(canonical)) return Promise.resolve()\r\n if (this.loaded.has(canonical)) return Promise.resolve()\r\n const existing = this.loading.get(canonical)\r\n if (existing) return existing\r\n\r\n const loader = this.loaders.get(canonical)\r\n if (!loader) {\r\n return Promise.reject(\r\n new Error(\r\n `[vue-syntax-highlighter] Language \"${language}\" is not available in the highlight.js adapter. ` +\r\n 'Use a supported language or call engine.registerLanguage(name, grammar) first.',\r\n ),\r\n )\r\n }\r\n\r\n const promise = loader()\r\n .then((module) => {\r\n const grammar =\r\n typeof module === 'function'\r\n ? module\r\n : (module as { default: LanguageFn }).default\r\n this.lowlight.register(canonical, grammar)\r\n this.loaded.add(canonical)\r\n })\r\n .finally(() => {\r\n this.loading.delete(canonical)\r\n })\r\n this.loading.set(canonical, promise)\r\n return promise\r\n }\r\n\r\n highlight(\r\n request: HighlightRequest,\r\n _options?: EngineOptions,\r\n ): HighlightResult | Promise<HighlightResult> {\r\n const lang = canonicalLanguage(request.language)\r\n if (PLAIN_LANGUAGES.has(lang)) {\r\n return createPlainResult(request.code, request.language)\r\n }\r\n if (this.loaded.has(lang)) return this.highlightSync(request)\r\n return this.loadLanguage(lang).then(() => this.highlightSync(request))\r\n }\r\n\r\n private highlightSync(request: HighlightRequest): HighlightResult {\r\n if (this.disposed) {\r\n throw new Error('[vue-syntax-highlighter] The highlight.js engine was disposed.')\r\n }\r\n const code = normalizeSource(request.code)\r\n const lang = canonicalLanguage(request.language)\r\n const tree = this.lowlight.highlight(lang, code) as HastRoot\r\n\r\n const lines: HighlightToken[][] = [[]]\r\n const push = (text: string, type: HighlightToken['type']): void => {\r\n if (text.length === 0) return\r\n const parts = text.split('\\n')\r\n for (let index = 0; index < parts.length; index += 1) {\r\n if (index > 0) lines.push([])\r\n const part = parts[index] ?? ''\r\n if (part.length > 0) lines[lines.length - 1]!.push({ text: part, type })\r\n }\r\n }\r\n\r\n const walk = (node: HastNode, classes: unknown): void => {\r\n if (node.type === 'text') {\r\n push((node as HastText).value, mapHljsClasses(classes))\r\n return\r\n }\r\n const element = node as HastElement\r\n for (const child of element.children ?? []) {\r\n const childClasses =\r\n child.type === 'element'\r\n ? combineClasses(classes, (child as HastElement).properties?.className)\r\n : classes\r\n walk(child, childClasses)\r\n }\r\n }\r\n\r\n for (const child of tree.children ?? []) {\r\n const classes =\r\n child.type === 'element' ? (child as HastElement).properties?.className : undefined\r\n walk(child, classes)\r\n }\r\n\r\n const normalized: HighlightResult = { lines: lines.map((tokens) => ({ tokens })), language: request.language }\r\n if (resultToSource(normalized) !== code) {\r\n return createPlainResult(code, request.language)\r\n }\r\n return normalized\r\n }\r\n\r\n dispose(): void {\r\n if (this.disposed) return\r\n this.disposed = true\r\n this.loaded.clear()\r\n this.loading.clear()\r\n this.loaders.clear()\r\n }\r\n}\r\n\r\nfunction combineClasses(parent: unknown, own: unknown): unknown {\r\n if (own === undefined) return parent\r\n if (parent === undefined) return own\r\n return [...normalize(parent), ...normalize(own)]\r\n}\r\n\r\nfunction normalize(value: unknown): unknown[] {\r\n if (Array.isArray(value)) return value\r\n if (typeof value === 'string') return value.split(/\\s+/)\r\n return []\r\n}\r\n\r\nfunction canonicalLanguage(language: string): string {\r\n const normalized = language.trim().toLowerCase().replace(/^language-/, '')\r\n return languageAliases[normalized] ?? normalized\r\n}\r\n"],"names":["languageLoaders","languageAliases","supportedLanguages","PLAIN_LANGUAGES","createHighlightjsEngine","options","engine","HighlightjsEngineImpl","language","_options","__publicField","createLowlight","canonical","canonicalLanguage","name","grammar","existing","loader","promise","module","request","lang","createPlainResult","code","normalizeSource","tree","lines","push","text","type","parts","index","part","walk","node","classes","mapHljsClasses","element","child","childClasses","combineClasses","normalized","tokens","resultToSource","parent","own","normalize","value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-Mb8zyIwS.js","sources":["../../src/engines/highlightjs/languages.ts","../../src/engines/highlightjs/index.ts"],"sourcesContent":["// Generated by scripts/generate-languages.mjs. Do not edit by hand.\r\n// Language registry for the lowlight/highlight.js adapter.\r\nexport const languageLoaders = {\r\n \"apache\": () => import(\"highlight.js/lib/languages/apache\"),\r\n \"c\": () => import(\"highlight.js/lib/languages/c\"),\r\n \"clojure\": () => import(\"highlight.js/lib/languages/clojure\"),\r\n \"cpp\": () => import(\"highlight.js/lib/languages/cpp\"),\r\n \"csharp\": () => import(\"highlight.js/lib/languages/csharp\"),\r\n \"css\": () => import(\"highlight.js/lib/languages/css\"),\r\n \"dart\": () => import(\"highlight.js/lib/languages/dart\"),\r\n \"diff\": () => import(\"highlight.js/lib/languages/diff\"),\r\n \"docker\": () => import(\"highlight.js/lib/languages/dockerfile\"),\r\n \"elixir\": () => import(\"highlight.js/lib/languages/elixir\"),\r\n \"erlang\": () => import(\"highlight.js/lib/languages/erlang\"),\r\n \"fortran\": () => import(\"highlight.js/lib/languages/fortran\"),\r\n \"fsharp\": () => import(\"highlight.js/lib/languages/fsharp\"),\r\n \"go\": () => import(\"highlight.js/lib/languages/go\"),\r\n \"graphql\": () => import(\"highlight.js/lib/languages/graphql\"),\r\n \"groovy\": () => import(\"highlight.js/lib/languages/groovy\"),\r\n \"haskell\": () => import(\"highlight.js/lib/languages/haskell\"),\r\n \"html\": () => import(\"highlight.js/lib/languages/xml\"),\r\n \"http\": () => import(\"highlight.js/lib/languages/http\"),\r\n \"ini\": () => import(\"highlight.js/lib/languages/ini\"),\r\n \"java\": () => import(\"highlight.js/lib/languages/java\"),\r\n \"javascript\": () => import(\"highlight.js/lib/languages/javascript\"),\r\n \"json\": () => import(\"highlight.js/lib/languages/json\"),\r\n \"julia\": () => import(\"highlight.js/lib/languages/julia\"),\r\n \"kotlin\": () => import(\"highlight.js/lib/languages/kotlin\"),\r\n \"latex\": () => import(\"highlight.js/lib/languages/latex\"),\r\n \"less\": () => import(\"highlight.js/lib/languages/less\"),\r\n \"lua\": () => import(\"highlight.js/lib/languages/lua\"),\r\n \"make\": () => import(\"highlight.js/lib/languages/makefile\"),\r\n \"markdown\": () => import(\"highlight.js/lib/languages/markdown\"),\r\n \"matlab\": () => import(\"highlight.js/lib/languages/matlab\"),\r\n \"nginx\": () => import(\"highlight.js/lib/languages/nginx\"),\r\n \"nix\": () => import(\"highlight.js/lib/languages/nix\"),\r\n \"objective-c\": () => import(\"highlight.js/lib/languages/objectivec\"),\r\n \"ocaml\": () => import(\"highlight.js/lib/languages/ocaml\"),\r\n \"perl\": () => import(\"highlight.js/lib/languages/perl\"),\r\n \"php\": () => import(\"highlight.js/lib/languages/php\"),\r\n \"powershell\": () => import(\"highlight.js/lib/languages/powershell\"),\r\n \"python\": () => import(\"highlight.js/lib/languages/python\"),\r\n \"r\": () => import(\"highlight.js/lib/languages/r\"),\r\n \"ruby\": () => import(\"highlight.js/lib/languages/ruby\"),\r\n \"rust\": () => import(\"highlight.js/lib/languages/rust\"),\r\n \"scala\": () => import(\"highlight.js/lib/languages/scala\"),\r\n \"scss\": () => import(\"highlight.js/lib/languages/scss\"),\r\n \"shellscript\": () => import(\"highlight.js/lib/languages/bash\"),\r\n \"sql\": () => import(\"highlight.js/lib/languages/sql\"),\r\n \"stylus\": () => import(\"highlight.js/lib/languages/stylus\"),\r\n \"swift\": () => import(\"highlight.js/lib/languages/swift\"),\r\n \"typescript\": () => import(\"highlight.js/lib/languages/typescript\"),\r\n \"wasm\": () => import(\"highlight.js/lib/languages/wasm\"),\r\n \"xml\": () => import(\"highlight.js/lib/languages/xml\"),\r\n \"yaml\": () => import(\"highlight.js/lib/languages/yaml\"),\r\n} satisfies Record<string, () => Promise<unknown>>\r\n\r\nexport const languageAliases: Readonly<Record<string, string>> = {\r\n \"c#\": \"csharp\",\r\n \"c++\": \"cpp\",\r\n \"cjs\": \"javascript\",\r\n \"cs\": \"csharp\",\r\n \"cts\": \"typescript\",\r\n \"cxx\": \"cpp\",\r\n \"dockerfile\": \"docker\",\r\n \"htm\": \"html\",\r\n \"js\": \"javascript\",\r\n \"makefile\": \"make\",\r\n \"md\": \"markdown\",\r\n \"mjs\": \"javascript\",\r\n \"mts\": \"typescript\",\r\n \"objc\": \"objective-c\",\r\n \"py\": \"python\",\r\n \"rb\": \"ruby\",\r\n \"sh\": \"shellscript\",\r\n \"shell\": \"shellscript\",\r\n \"ts\": \"typescript\",\r\n \"yml\": \"yaml\",\r\n \"zsh\": \"shellscript\",\r\n}\r\n\r\nexport const supportedLanguages: readonly string[] = [\"apache\",\"c\",\"clojure\",\"cpp\",\"csharp\",\"css\",\"dart\",\"diff\",\"docker\",\"elixir\",\"erlang\",\"fortran\",\"fsharp\",\"go\",\"graphql\",\"groovy\",\"haskell\",\"html\",\"http\",\"ini\",\"java\",\"javascript\",\"json\",\"julia\",\"kotlin\",\"latex\",\"less\",\"lua\",\"make\",\"markdown\",\"matlab\",\"nginx\",\"nix\",\"objective-c\",\"ocaml\",\"perl\",\"php\",\"powershell\",\"python\",\"r\",\"ruby\",\"rust\",\"scala\",\"scss\",\"shellscript\",\"sql\",\"stylus\",\"swift\",\"typescript\",\"wasm\",\"xml\",\"yaml\"]\r\n","import { createLowlight } from 'lowlight'\r\nimport type { LanguageFn } from 'highlight.js'\r\nimport type {\r\n EngineOptions,\r\n HighlightEngine,\r\n HighlightRequest,\r\n HighlightResult,\r\n HighlightToken,\r\n} from '../../types.js'\r\nimport { createPlainResult, normalizeSource, resultToSource } from '../../core/source.js'\r\nimport { mapHljsClasses } from '../../core/token-types.js'\r\nimport { languageAliases, languageLoaders, supportedLanguages } from './languages.js'\r\n\r\nconst PLAIN_LANGUAGES = new Set(['text', 'plain', 'plaintext', 'txt'])\r\n\r\ninterface HastText {\r\n type: 'text'\r\n value: string\r\n}\r\n\r\ninterface HastElement {\r\n type: 'element'\r\n properties?: { className?: unknown }\r\n children?: HastNode[]\r\n}\r\n\r\ninterface HastRoot {\r\n type: 'root'\r\n children?: HastNode[]\r\n}\r\n\r\ntype HastNode = HastText | HastElement | { type: string; children?: HastNode[] }\r\n\r\nexport type HighlightjsLanguageRegistration = LanguageFn\r\nexport type HighlightjsLanguageLoader = () => Promise<{ default: LanguageFn } | LanguageFn>\r\n\r\nexport interface HighlightjsEngine extends HighlightEngine {\r\n readonly id: 'highlightjs'\r\n readonly capabilities: { sync: true }\r\n hasLanguage(language: string): boolean\r\n loadLanguage(language: string): Promise<void>\r\n registerLanguage(\r\n name: string,\r\n language: HighlightjsLanguageRegistration | HighlightjsLanguageLoader,\r\n ): void\r\n readonly supportedLanguages: readonly string[]\r\n}\r\n\r\nexport interface HighlightjsEngineOptions {\r\n preload?: readonly string[]\r\n}\r\n\r\nexport async function createHighlightjsEngine(\r\n options: HighlightjsEngineOptions = {},\r\n): Promise<HighlightjsEngine> {\r\n const engine = new HighlightjsEngineImpl(options)\r\n if (options.preload?.length) {\r\n await Promise.allSettled(options.preload.map((language) => engine.loadLanguage(language)))\r\n }\r\n return engine\r\n}\r\n\r\nclass HighlightjsEngineImpl implements HighlightjsEngine {\r\n readonly id = 'highlightjs' as const\r\n readonly capabilities = { sync: true } as const\r\n readonly supportedLanguages = supportedLanguages\r\n\r\n private readonly lowlight = createLowlight()\r\n private readonly loaders = new Map<string, HighlightjsLanguageLoader>(\r\n Object.entries(languageLoaders) as [string, HighlightjsLanguageLoader][],\r\n )\r\n private readonly loaded = new Set<string>()\r\n private readonly loading = new Map<string, Promise<void>>()\r\n private disposed = false\r\n\r\n constructor(_options: HighlightjsEngineOptions) {}\r\n\r\n hasLanguage(language: string): boolean {\r\n const canonical = canonicalLanguage(language)\r\n if (PLAIN_LANGUAGES.has(canonical)) return true\r\n return this.loaded.has(canonical)\r\n }\r\n\r\n registerLanguage(\r\n name: string,\r\n language: HighlightjsLanguageRegistration | HighlightjsLanguageLoader,\r\n ): void {\r\n const canonical = canonicalLanguage(name)\r\n // highlight.js grammars are functions too. A zero-argument function is\r\n // treated as a loader; a grammar receives the highlight.js instance.\r\n if (typeof language === 'function' && language.length === 0) {\r\n this.loaders.set(canonical, language as HighlightjsLanguageLoader)\r\n this.loaded.delete(canonical)\r\n return\r\n }\r\n const grammar = language as HighlightjsLanguageRegistration\r\n this.lowlight.register(canonical, grammar)\r\n this.loaders.set(canonical, async () => grammar)\r\n this.loaded.add(canonical)\r\n }\r\n\r\n loadLanguage(language: string): Promise<void> {\r\n if (this.disposed) {\r\n return Promise.reject(\r\n new Error('[vue-syntax-highlighter] The highlight.js engine was disposed.'),\r\n )\r\n }\r\n const canonical = canonicalLanguage(language)\r\n if (PLAIN_LANGUAGES.has(canonical)) return Promise.resolve()\r\n if (this.loaded.has(canonical)) return Promise.resolve()\r\n const existing = this.loading.get(canonical)\r\n if (existing) return existing\r\n\r\n const loader = this.loaders.get(canonical)\r\n if (!loader) {\r\n return Promise.reject(\r\n new Error(\r\n `[vue-syntax-highlighter] Language \"${language}\" is not available in the highlight.js adapter. ` +\r\n 'Use a supported language or call engine.registerLanguage(name, grammar) first.',\r\n ),\r\n )\r\n }\r\n\r\n const promise = loader()\r\n .then((module) => {\r\n const grammar =\r\n typeof module === 'function'\r\n ? module\r\n : (module as { default: LanguageFn }).default\r\n this.lowlight.register(canonical, grammar)\r\n this.loaded.add(canonical)\r\n })\r\n .finally(() => {\r\n this.loading.delete(canonical)\r\n })\r\n this.loading.set(canonical, promise)\r\n return promise\r\n }\r\n\r\n highlight(\r\n request: HighlightRequest,\r\n _options?: EngineOptions,\r\n ): HighlightResult | Promise<HighlightResult> {\r\n const lang = canonicalLanguage(request.language)\r\n if (PLAIN_LANGUAGES.has(lang)) {\r\n return createPlainResult(request.code, request.language)\r\n }\r\n if (this.loaded.has(lang)) return this.highlightSync(request)\r\n return this.loadLanguage(lang).then(() => this.highlightSync(request))\r\n }\r\n\r\n private highlightSync(request: HighlightRequest): HighlightResult {\r\n if (this.disposed) {\r\n throw new Error('[vue-syntax-highlighter] The highlight.js engine was disposed.')\r\n }\r\n const code = normalizeSource(request.code)\r\n const lang = canonicalLanguage(request.language)\r\n const tree = this.lowlight.highlight(lang, code) as HastRoot\r\n\r\n const lines: HighlightToken[][] = [[]]\r\n const push = (text: string, type: HighlightToken['type']): void => {\r\n if (text.length === 0) return\r\n const parts = text.split('\\n')\r\n for (let index = 0; index < parts.length; index += 1) {\r\n if (index > 0) lines.push([])\r\n const part = parts[index] ?? ''\r\n if (part.length > 0) lines[lines.length - 1]!.push({ text: part, type })\r\n }\r\n }\r\n\r\n const walk = (node: HastNode, classes: unknown): void => {\r\n if (node.type === 'text') {\r\n push((node as HastText).value, mapHljsClasses(classes))\r\n return\r\n }\r\n const element = node as HastElement\r\n for (const child of element.children ?? []) {\r\n const childClasses =\r\n child.type === 'element'\r\n ? combineClasses(classes, (child as HastElement).properties?.className)\r\n : classes\r\n walk(child, childClasses)\r\n }\r\n }\r\n\r\n for (const child of tree.children ?? []) {\r\n const classes =\r\n child.type === 'element' ? (child as HastElement).properties?.className : undefined\r\n walk(child, classes)\r\n }\r\n\r\n const normalized: HighlightResult = { lines: lines.map((tokens) => ({ tokens })), language: request.language }\r\n if (resultToSource(normalized) !== code) {\r\n return createPlainResult(code, request.language)\r\n }\r\n return normalized\r\n }\r\n\r\n dispose(): void {\r\n if (this.disposed) return\r\n this.disposed = true\r\n this.loaded.clear()\r\n this.loading.clear()\r\n this.loaders.clear()\r\n }\r\n}\r\n\r\nfunction combineClasses(parent: unknown, own: unknown): unknown {\r\n if (own === undefined) return parent\r\n if (parent === undefined) return own\r\n return [...normalize(parent), ...normalize(own)]\r\n}\r\n\r\nfunction normalize(value: unknown): unknown[] {\r\n if (Array.isArray(value)) return value\r\n if (typeof value === 'string') return value.split(/\\s+/)\r\n return []\r\n}\r\n\r\nfunction canonicalLanguage(language: string): string {\r\n const normalized = language.trim().toLowerCase().replace(/^language-/, '')\r\n return languageAliases[normalized] ?? normalized\r\n}\r\n"],"names":["languageLoaders","languageAliases","supportedLanguages","PLAIN_LANGUAGES","createHighlightjsEngine","options","engine","HighlightjsEngineImpl","language","_options","__publicField","createLowlight","canonical","canonicalLanguage","name","grammar","existing","loader","promise","module","request","lang","createPlainResult","code","normalizeSource","tree","lines","push","text","type","parts","index","part","walk","node","classes","mapHljsClasses","element","child","childClasses","combineClasses","normalized","tokens","resultToSource","parent","own","normalize","value"],"mappings":"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"}
|
|
@@ -1,26 +1,31 @@
|
|
|
1
|
-
import { T as
|
|
2
|
-
const
|
|
1
|
+
import { T as i } from "./types-DTo8JPWw.js";
|
|
2
|
+
const a = new Set(i);
|
|
3
3
|
function f(e) {
|
|
4
|
-
return typeof e == "string" &&
|
|
4
|
+
return typeof e == "string" && a.has(e);
|
|
5
5
|
}
|
|
6
|
-
function
|
|
6
|
+
function s(e) {
|
|
7
7
|
return e.replace(/\r\n?/g, `
|
|
8
8
|
`);
|
|
9
9
|
}
|
|
10
|
+
function p(e) {
|
|
11
|
+
const t = s(e);
|
|
12
|
+
return t.endsWith(`
|
|
13
|
+
`) ? t.slice(0, -1) : t;
|
|
14
|
+
}
|
|
10
15
|
function c(e) {
|
|
11
|
-
return
|
|
16
|
+
return s(e).split(`
|
|
12
17
|
`);
|
|
13
18
|
}
|
|
14
|
-
function
|
|
19
|
+
function g(e, t) {
|
|
15
20
|
return { lines: c(e).map((r) => ({
|
|
16
21
|
tokens: r.length > 0 ? [{ text: r, type: "plain" }] : []
|
|
17
22
|
})), language: t };
|
|
18
23
|
}
|
|
19
|
-
function
|
|
24
|
+
function y(e) {
|
|
20
25
|
return e.lines.map((t) => t.tokens.map((n) => n.text).join("")).join(`
|
|
21
26
|
`);
|
|
22
27
|
}
|
|
23
|
-
function
|
|
28
|
+
function h(e) {
|
|
24
29
|
let t = e.language.length;
|
|
25
30
|
for (const n of e.lines)
|
|
26
31
|
for (const r of n.tokens) t += r.text.length;
|
|
@@ -37,7 +42,7 @@ function l(e) {
|
|
|
37
42
|
}
|
|
38
43
|
return !0;
|
|
39
44
|
}
|
|
40
|
-
function
|
|
45
|
+
function m(e) {
|
|
41
46
|
const t = e.lines.map((n) => {
|
|
42
47
|
const r = n.tokens.map((o) => Object.freeze({ text: o.text, type: o.type }));
|
|
43
48
|
return Object.freeze({ tokens: Object.freeze(r) });
|
|
@@ -55,12 +60,13 @@ function j(e) {
|
|
|
55
60
|
);
|
|
56
61
|
}
|
|
57
62
|
export {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
63
|
+
h as a,
|
|
64
|
+
p as b,
|
|
65
|
+
g as c,
|
|
66
|
+
j as d,
|
|
67
|
+
m as f,
|
|
68
|
+
s as n,
|
|
69
|
+
y as r,
|
|
64
70
|
c as s
|
|
65
71
|
};
|
|
66
|
-
//# sourceMappingURL=source-
|
|
72
|
+
//# sourceMappingURL=source-BSZ04z5-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-BSZ04z5-.js","sources":["../../src/core/source.ts"],"sourcesContent":["import { TOKEN_TYPES, type HighlightLine, type HighlightResult, type TokenType } from '../types.js'\r\n\r\nconst TOKEN_TYPE_SET = new Set<string>(TOKEN_TYPES)\r\n\r\nexport function isTokenType(value: unknown): value is TokenType {\r\n return typeof value === 'string' && TOKEN_TYPE_SET.has(value)\r\n}\r\n\r\nexport function normalizeSource(code: string): string {\r\n return code.replace(/\\r\\n?/g, '\\n')\r\n}\r\n\r\n/**\r\n * Renders source without the terminal line break that editors add to files.\r\n * Keeping one blank line for `\"a\\n\\n\"` while treating `\"a\\n\"` as one line\r\n * avoids an empty numbered row without flattening intentional blank lines.\r\n */\r\nexport function normalizeDisplaySource(code: string): string {\r\n const normalized = normalizeSource(code)\r\n return normalized.endsWith('\\n') ? normalized.slice(0, -1) : normalized\r\n}\r\n\r\nexport function splitSource(code: string): string[] {\r\n return normalizeSource(code).split('\\n')\r\n}\r\n\r\nexport function createPlainResult(code: string, language: string): HighlightResult {\r\n const lines: HighlightLine[] = splitSource(code).map((line) => ({\r\n tokens: line.length > 0 ? [{ text: line, type: 'plain' as const }] : [],\r\n }))\r\n return { lines, language }\r\n}\r\n\r\nexport function resultToSource(result: HighlightResult): string {\r\n return result.lines\r\n .map((line) => line.tokens.map((token) => token.text).join(''))\r\n .join('\\n')\r\n}\r\n\r\nexport function countResultChars(result: HighlightResult): number {\r\n let count = result.language.length\r\n for (const line of result.lines) {\r\n for (const token of line.tokens) count += token.text.length\r\n }\r\n return count\r\n}\r\n\r\nexport function isHighlightResult(value: unknown): value is HighlightResult {\r\n if (!value || typeof value !== 'object') return false\r\n const candidate = value as Partial<HighlightResult>\r\n if (typeof candidate.language !== 'string') return false\r\n if (!Array.isArray(candidate.lines)) return false\r\n for (const line of candidate.lines) {\r\n if (!line || typeof line !== 'object' || !Array.isArray(line.tokens)) return false\r\n for (const token of line.tokens) {\r\n if (!token || typeof token !== 'object') return false\r\n if (typeof token.text !== 'string') return false\r\n if (!isTokenType(token.type)) return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nexport function freezeResult(result: HighlightResult): HighlightResult {\r\n const lines: HighlightLine[] = result.lines.map((line) => {\r\n const tokens = line.tokens.map((token) => Object.freeze({ text: token.text, type: token.type }))\r\n return Object.freeze({ tokens: Object.freeze(tokens) })\r\n })\r\n return Object.freeze({\r\n lines: Object.freeze(lines),\r\n language: result.language,\r\n ...(result.meta ? { meta: Object.freeze({ ...result.meta }) } : {}),\r\n })\r\n}\r\n\r\nexport function assertHighlightResult(value: unknown): asserts value is HighlightResult {\r\n if (!isHighlightResult(value)) {\r\n throw new TypeError(\r\n 'Highlight engine returned an invalid result. Expected ordered lines of { text, type } tokens.',\r\n )\r\n }\r\n}\r\n\r\nexport function resultLineText(line: HighlightLine): string {\r\n return line.tokens.map((token) => token.text).join('')\r\n}\r\n"],"names":["TOKEN_TYPE_SET","TOKEN_TYPES","isTokenType","value","normalizeSource","code","normalizeDisplaySource","normalized","splitSource","createPlainResult","language","line","resultToSource","result","token","countResultChars","count","isHighlightResult","candidate","freezeResult","lines","tokens","assertHighlightResult"],"mappings":";AAEA,MAAMA,IAAiB,IAAI,IAAYC,CAAW;AAE3C,SAASC,EAAYC,GAAoC;AAC9D,SAAO,OAAOA,KAAU,YAAYH,EAAe,IAAIG,CAAK;AAC9D;AAEO,SAASC,EAAgBC,GAAsB;AACpD,SAAOA,EAAK,QAAQ,UAAU;AAAA,CAAI;AACpC;AAOO,SAASC,EAAuBD,GAAsB;AAC3D,QAAME,IAAaH,EAAgBC,CAAI;AACvC,SAAOE,EAAW,SAAS;AAAA,CAAI,IAAIA,EAAW,MAAM,GAAG,EAAE,IAAIA;AAC/D;AAEO,SAASC,EAAYH,GAAwB;AAClD,SAAOD,EAAgBC,CAAI,EAAE,MAAM;AAAA,CAAI;AACzC;AAEO,SAASI,EAAkBJ,GAAcK,GAAmC;AAIjF,SAAO,EAAE,OAHsBF,EAAYH,CAAI,EAAE,IAAI,CAACM,OAAU;AAAA,IAC9D,QAAQA,EAAK,SAAS,IAAI,CAAC,EAAE,MAAMA,GAAM,MAAM,QAAA,CAAkB,IAAI,CAAA;AAAA,EAAC,EACtE,GACc,UAAAD,EAAA;AAClB;AAEO,SAASE,EAAeC,GAAiC;AAC9D,SAAOA,EAAO,MACX,IAAI,CAACF,MAASA,EAAK,OAAO,IAAI,CAACG,MAAUA,EAAM,IAAI,EAAE,KAAK,EAAE,CAAC,EAC7D,KAAK;AAAA,CAAI;AACd;AAEO,SAASC,EAAiBF,GAAiC;AAChE,MAAIG,IAAQH,EAAO,SAAS;AAC5B,aAAWF,KAAQE,EAAO;AACxB,eAAWC,KAASH,EAAK,OAAQ,CAAAK,KAASF,EAAM,KAAK;AAEvD,SAAOE;AACT;AAEO,SAASC,EAAkBd,GAA0C;AAC1E,MAAI,CAACA,KAAS,OAAOA,KAAU,SAAU,QAAO;AAChD,QAAMe,IAAYf;AAElB,MADI,OAAOe,EAAU,YAAa,YAC9B,CAAC,MAAM,QAAQA,EAAU,KAAK,EAAG,QAAO;AAC5C,aAAWP,KAAQO,EAAU,OAAO;AAClC,QAAI,CAACP,KAAQ,OAAOA,KAAS,YAAY,CAAC,MAAM,QAAQA,EAAK,MAAM,EAAG,QAAO;AAC7E,eAAWG,KAASH,EAAK;AAGvB,UAFI,CAACG,KAAS,OAAOA,KAAU,YAC3B,OAAOA,EAAM,QAAS,YACtB,CAACZ,EAAYY,EAAM,IAAI,EAAG,QAAO;AAAA,EAEzC;AACA,SAAO;AACT;AAEO,SAASK,EAAaN,GAA0C;AACrE,QAAMO,IAAyBP,EAAO,MAAM,IAAI,CAACF,MAAS;AACxD,UAAMU,IAASV,EAAK,OAAO,IAAI,CAACG,MAAU,OAAO,OAAO,EAAE,MAAMA,EAAM,MAAM,MAAMA,EAAM,KAAA,CAAM,CAAC;AAC/F,WAAO,OAAO,OAAO,EAAE,QAAQ,OAAO,OAAOO,CAAM,GAAG;AAAA,EACxD,CAAC;AACD,SAAO,OAAO,OAAO;AAAA,IACnB,OAAO,OAAO,OAAOD,CAAK;AAAA,IAC1B,UAAUP,EAAO;AAAA,IACjB,GAAIA,EAAO,OAAO,EAAE,MAAM,OAAO,OAAO,EAAE,GAAGA,EAAO,KAAA,CAAM,MAAM,CAAA;AAAA,EAAC,CAClE;AACH;AAEO,SAASS,EAAsBnB,GAAkD;AACtF,MAAI,CAACc,EAAkBd,CAAK;AAC1B,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGN;"}
|
package/dist/core/source.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { HighlightLine, HighlightResult, TokenType } from '../types.js';
|
|
2
2
|
export declare function isTokenType(value: unknown): value is TokenType;
|
|
3
3
|
export declare function normalizeSource(code: string): string;
|
|
4
|
+
/**
|
|
5
|
+
* Renders source without the terminal line break that editors add to files.
|
|
6
|
+
* Keeping one blank line for `"a\n\n"` while treating `"a\n"` as one line
|
|
7
|
+
* avoids an empty numbered row without flattening intentional blank lines.
|
|
8
|
+
*/
|
|
9
|
+
export declare function normalizeDisplaySource(code: string): string;
|
|
4
10
|
export declare function splitSource(code: string): string[];
|
|
5
11
|
export declare function createPlainResult(code: string, language: string): HighlightResult;
|
|
6
12
|
export declare function resultToSource(result: HighlightResult): string;
|
package/dist/engines/lowlight.js
CHANGED
package/dist/engines/prism.js
CHANGED
|
@@ -2,7 +2,7 @@ var b = Object.defineProperty;
|
|
|
2
2
|
var k = (i, t, r) => t in i ? b(i, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : i[t] = r;
|
|
3
3
|
var n = (i, t, r) => k(i, typeof t != "symbol" ? t + "" : t, r);
|
|
4
4
|
import { refractor as l } from "refractor";
|
|
5
|
-
import { c as x, n as L, r as P } from "../chunks/source-
|
|
5
|
+
import { c as x, n as L, r as P } from "../chunks/source-BSZ04z5-.js";
|
|
6
6
|
import { a as N } from "../chunks/token-types-B8veGO5e.js";
|
|
7
7
|
const S = {
|
|
8
8
|
c: () => import("refractor/c"),
|
package/dist/engines/shiki.js
CHANGED
|
@@ -3,7 +3,7 @@ var v = (i, t, e) => t in i ? w(i, t, { enumerable: !0, configurable: !0, writab
|
|
|
3
3
|
var s = (i, t, e) => v(i, typeof t != "symbol" ? t + "" : t, e);
|
|
4
4
|
import { createHighlighterCore as S } from "shiki/core";
|
|
5
5
|
import { createJavaScriptRegexEngine as b } from "shiki/engine/javascript";
|
|
6
|
-
import { c as y, n as L, r as E, s as T } from "../chunks/source-
|
|
6
|
+
import { c as y, n as L, r as E, s as T } from "../chunks/source-BSZ04z5-.js";
|
|
7
7
|
import { b as P } from "../chunks/token-types-B8veGO5e.js";
|
|
8
8
|
const z = {
|
|
9
9
|
apache: () => import("shiki/langs/apache.mjs"),
|