@hejiayue/x-markdown-test 0.0.1-beta.120 → 0.0.1-beta.124
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/x-markdown.cjs10.js +1 -1
- package/dist/x-markdown.cjs13.js +1 -1
- package/dist/x-markdown.cjs14.js +1 -1
- package/dist/x-markdown.cjs14.js.map +1 -1
- package/dist/x-markdown.cjs15.js +1 -1
- package/dist/x-markdown.cjs15.js.map +1 -1
- package/dist/x-markdown.cjs16.js +1 -1
- package/dist/x-markdown.cjs17.js +1 -1
- package/dist/x-markdown.cjs18.js +1 -1
- package/dist/x-markdown.cjs19.js +1 -1
- package/dist/x-markdown.cjs19.js.map +1 -1
- package/dist/x-markdown.cjs21.js +2 -0
- package/dist/x-markdown.cjs21.js.map +1 -0
- package/dist/x-markdown.cjs22.js +1 -1
- package/dist/x-markdown.cjs22.js.map +1 -1
- package/dist/{x-markdown.cjs25.js → x-markdown.cjs24.js} +2 -2
- package/dist/{x-markdown.cjs25.js.map → x-markdown.cjs24.js.map} +1 -1
- package/dist/x-markdown.cjs26.js +2 -0
- package/dist/x-markdown.cjs26.js.map +1 -0
- package/dist/x-markdown.cjs27.js +1 -1
- package/dist/x-markdown.cjs27.js.map +1 -1
- package/dist/x-markdown.cjs28.js +1 -1
- package/dist/x-markdown.cjs28.js.map +1 -1
- package/dist/x-markdown.cjs30.js +2 -0
- package/dist/x-markdown.cjs30.js.map +1 -0
- package/dist/x-markdown.cjs31.js +1 -1
- package/dist/x-markdown.cjs31.js.map +1 -1
- package/dist/{x-markdown.cjs34.js → x-markdown.cjs33.js} +2 -2
- package/dist/x-markdown.cjs33.js.map +1 -0
- package/dist/x-markdown.cjs7.js +1 -1
- package/dist/x-markdown.cjs7.js.map +1 -1
- package/dist/x-markdown.cjs9.js +1 -1
- package/dist/x-markdown.cjs9.js.map +1 -1
- package/dist/x-markdown.es10.js +1 -1
- package/dist/x-markdown.es13.js +3 -3
- package/dist/x-markdown.es14.js +28 -69
- package/dist/x-markdown.es14.js.map +1 -1
- package/dist/x-markdown.es15.js +2 -31
- package/dist/x-markdown.es15.js.map +1 -1
- package/dist/x-markdown.es16.js +2 -1
- package/dist/x-markdown.es16.js.map +1 -1
- package/dist/x-markdown.es17.js +4 -2
- package/dist/x-markdown.es17.js.map +1 -1
- package/dist/x-markdown.es18.js +4 -4
- package/dist/x-markdown.es19.js +204 -5
- package/dist/x-markdown.es19.js.map +1 -1
- package/dist/x-markdown.es21.js +11 -0
- package/dist/x-markdown.es21.js.map +1 -0
- package/dist/x-markdown.es22.js +71 -7
- package/dist/x-markdown.es22.js.map +1 -1
- package/dist/{x-markdown.es25.js → x-markdown.es24.js} +4 -4
- package/dist/{x-markdown.es25.js.map → x-markdown.es24.js.map} +1 -1
- package/dist/x-markdown.es26.js +160 -0
- package/dist/x-markdown.es26.js.map +1 -0
- package/dist/x-markdown.es27.js +5 -157
- package/dist/x-markdown.es27.js.map +1 -1
- package/dist/x-markdown.es28.js +139 -5
- package/dist/x-markdown.es28.js.map +1 -1
- package/dist/x-markdown.es30.js +78 -0
- package/dist/x-markdown.es30.js.map +1 -0
- package/dist/x-markdown.es31.js +121 -74
- package/dist/x-markdown.es31.js.map +1 -1
- package/dist/x-markdown.es33.js +6 -0
- package/dist/x-markdown.es33.js.map +1 -0
- package/dist/x-markdown.es7.js +26 -26
- package/dist/x-markdown.es7.js.map +1 -1
- package/dist/x-markdown.es9.js +2 -10
- package/dist/x-markdown.es9.js.map +1 -1
- package/package.json +87 -85
- package/dist/x-markdown.cjs20.js +0 -2
- package/dist/x-markdown.cjs20.js.map +0 -1
- package/dist/x-markdown.cjs23.js +0 -2
- package/dist/x-markdown.cjs23.js.map +0 -1
- package/dist/x-markdown.cjs29.js +0 -2
- package/dist/x-markdown.cjs29.js.map +0 -1
- package/dist/x-markdown.cjs32.js +0 -2
- package/dist/x-markdown.cjs32.js.map +0 -1
- package/dist/x-markdown.cjs34.js.map +0 -1
- package/dist/x-markdown.es20.js +0 -207
- package/dist/x-markdown.es20.js.map +0 -1
- package/dist/x-markdown.es23.js +0 -75
- package/dist/x-markdown.es23.js.map +0 -1
- package/dist/x-markdown.es29.js +0 -142
- package/dist/x-markdown.es29.js.map +0 -1
- package/dist/x-markdown.es32.js +0 -125
- package/dist/x-markdown.es32.js.map +0 -1
- package/dist/x-markdown.es34.js +0 -6
- package/dist/x-markdown.es34.js.map +0 -1
package/dist/x-markdown.es23.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { defineComponent, onMounted, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, normalizeStyle, Fragment, createTextVNode, toDisplayString, renderList } from "vue";
|
|
2
|
-
import { useHighlight } from "./x-markdown.es7.js";
|
|
3
|
-
const SHIKI_CORE_PKG = "@shikijs/core";
|
|
4
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
5
|
-
__name: "index",
|
|
6
|
-
props: {
|
|
7
|
-
raw: { default: () => ({}) },
|
|
8
|
-
isDark: { type: Boolean, default: false },
|
|
9
|
-
shikiTheme: { default: () => ["vitesse-light", "vitesse-dark"] },
|
|
10
|
-
enableAnimate: { type: Boolean, default: false }
|
|
11
|
-
},
|
|
12
|
-
setup(__props) {
|
|
13
|
-
let getTokenStyleObjectFn = null;
|
|
14
|
-
onMounted(async () => {
|
|
15
|
-
const mod = await Function(`return import('${SHIKI_CORE_PKG}')`)().catch(() => {
|
|
16
|
-
return { getTokenStyleObject: () => ({}) };
|
|
17
|
-
});
|
|
18
|
-
getTokenStyleObjectFn = mod.getTokenStyleObject;
|
|
19
|
-
});
|
|
20
|
-
const props = __props;
|
|
21
|
-
const content = computed(() => props.raw?.content ?? "");
|
|
22
|
-
const language = computed(() => props.raw?.language || "ts");
|
|
23
|
-
const actualTheme = computed(() => props.isDark ? props.shikiTheme[1] : props.shikiTheme[0]);
|
|
24
|
-
const { lines, preStyle } = useHighlight(content, {
|
|
25
|
-
language,
|
|
26
|
-
theme: actualTheme
|
|
27
|
-
});
|
|
28
|
-
const flatTokens = computed(() => lines.value.flat());
|
|
29
|
-
const codeStyle = computed(() => preStyle.value || {});
|
|
30
|
-
const normalizeStyleKeys = (style) => {
|
|
31
|
-
const normalized = {};
|
|
32
|
-
Object.entries(style).forEach(([key, value]) => {
|
|
33
|
-
const camelKey = key.replace(/-([a-z])/g, (_, char) => char.toUpperCase());
|
|
34
|
-
normalized[camelKey] = value;
|
|
35
|
-
});
|
|
36
|
-
return normalized;
|
|
37
|
-
};
|
|
38
|
-
const getTokenStyle = (token) => {
|
|
39
|
-
if (token.htmlStyle) {
|
|
40
|
-
return normalizeStyleKeys(token.htmlStyle);
|
|
41
|
-
}
|
|
42
|
-
if (!getTokenStyleObjectFn) {
|
|
43
|
-
return {};
|
|
44
|
-
}
|
|
45
|
-
const rawStyle = getTokenStyleObjectFn(token);
|
|
46
|
-
return normalizeStyleKeys(rawStyle);
|
|
47
|
-
};
|
|
48
|
-
return (_ctx, _cache) => {
|
|
49
|
-
return openBlock(), createElementBlock("div", {
|
|
50
|
-
class: normalizeClass(["x-md-inline-code", {
|
|
51
|
-
"x-md-inline-code--dark": props.isDark,
|
|
52
|
-
"x-md-animated-word": props.enableAnimate
|
|
53
|
-
}])
|
|
54
|
-
}, [
|
|
55
|
-
createElementVNode("code", {
|
|
56
|
-
style: normalizeStyle(codeStyle.value)
|
|
57
|
-
}, [
|
|
58
|
-
!flatTokens.value.length ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
59
|
-
createTextVNode(toDisplayString(content.value), 1)
|
|
60
|
-
], 64)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(flatTokens.value, (token, i) => {
|
|
61
|
-
return openBlock(), createElementBlock("span", {
|
|
62
|
-
key: i,
|
|
63
|
-
style: normalizeStyle(getTokenStyle(token)),
|
|
64
|
-
class: normalizeClass({ "x-md-animated-word": props.enableAnimate })
|
|
65
|
-
}, toDisplayString(token.content), 7);
|
|
66
|
-
}), 128))
|
|
67
|
-
], 4)
|
|
68
|
-
], 2);
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
export {
|
|
73
|
-
_sfc_main as default
|
|
74
|
-
};
|
|
75
|
-
//# sourceMappingURL=x-markdown.es23.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"x-markdown.es23.js","sources":["../src/components/CodeLine/index.vue"],"sourcesContent":["<template>\r\n <!-- 行内代码容器 - 支持深浅色主题和语法高亮 -->\r\n <div\r\n class=\"x-md-inline-code\"\r\n :class=\"{\r\n 'x-md-inline-code--dark': props.isDark,\r\n 'x-md-animated-word': props.enableAnimate,\r\n }\"\r\n >\r\n <code :style=\"codeStyle\">\r\n <!-- 无高亮时显示纯文本 -->\r\n <template v-if=\"!flatTokens.length\">{{ content }}</template>\r\n <!-- 有高亮时渲染 token -->\r\n <template v-else>\r\n <span\r\n v-for=\"(token, i) in flatTokens\"\r\n :key=\"i\"\r\n :style=\"getTokenStyle(token)\"\r\n :class=\"{ 'x-md-animated-word': props.enableAnimate }\"\r\n >{{ token.content }}</span\r\n >\r\n </template>\r\n </code>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, type CSSProperties } from 'vue'\r\nimport { useHighlight } from '../../hooks/useHighlight'\r\nimport type { CodeLineProps } from './types'\r\n\r\nconst SHIKI_CORE_PKG = '@shikijs/core'\r\n\r\nlet getTokenStyleObjectFn: any = null\r\n\r\nonMounted(async () => {\r\n const mod = await (Function(`return import('${SHIKI_CORE_PKG}')`)())\r\n .catch(() => {\r\n return { getTokenStyleObject: () => ({}) }\r\n })\r\n getTokenStyleObjectFn = mod.getTokenStyleObject\r\n})\r\n\r\nconst props = withDefaults(defineProps<CodeLineProps>(), {\r\n raw: () => ({}),\r\n isDark: false,\r\n shikiTheme: () => ['vitesse-light', 'vitesse-dark'],\r\n enableAnimate: false,\r\n})\r\n\r\nconst content = computed(() => props.raw?.content ?? '')\r\nconst language = computed(() => props.raw?.language || 'ts')\r\nconst actualTheme = computed(() => (props.isDark ? props.shikiTheme[1] : props.shikiTheme[0]))\r\n\r\nconst { lines, preStyle } = useHighlight(content, {\r\n language,\r\n theme: actualTheme,\r\n})\r\n\r\nconst flatTokens = computed(() => lines.value.flat())\r\nconst codeStyle = computed<CSSProperties>(() => preStyle.value || {})\r\n\r\nconst normalizeStyleKeys = (style: Record<string, string | number>): CSSProperties => {\r\n const normalized: CSSProperties = {}\r\n Object.entries(style).forEach(([key, value]) => {\r\n const camelKey = key.replace(/-([a-z])/g, (_, char) => char.toUpperCase())\r\n ;(normalized as Record<string, string | number>)[camelKey] = value\r\n })\r\n return normalized\r\n}\r\n\r\nconst getTokenStyle = (token: ThemedToken): CSSProperties => {\r\n if (token.htmlStyle) {\r\n return normalizeStyleKeys(token.htmlStyle)\r\n }\r\n\r\n if (!getTokenStyleObjectFn) {\r\n return {}\r\n }\r\n\r\n const rawStyle = getTokenStyleObjectFn(token)\r\n return normalizeStyleKeys(rawStyle)\r\n}\r\n</script>\r\n<style scoped>\r\n.x-md-inline-code {\r\n display: inline-block;\r\n border-radius: 8px;\r\n overflow: hidden;\r\n font-size: 14px;\r\n background: rgba(0, 0, 0, 0.03);\r\n vertical-align: sub;\r\n}\r\n\r\n.x-md-inline-code.x-md-inline-code--dark {\r\n background: rgba(255, 255, 255, 0.13);\r\n}\r\n.x-md-inline-code code {\r\n background: transparent !important;\r\n}\r\n</style>\r\n"],"names":["_createElementBlock","_createElementVNode","_Fragment","_openBlock","_renderList","_normalizeStyle","_normalizeClass","_toDisplayString"],"mappings":";;AA+BA,MAAM,iBAAiB;;;;;;;;;;AAEvB,QAAI,wBAA6B;AAEjC,cAAU,YAAY;AACpB,YAAM,MAAM,MAAO,SAAS,kBAAkB,cAAc,IAAI,IAC7D,MAAM,MAAM;AACX,eAAO,EAAE,qBAAqB,OAAO,CAAA,GAAC;AAAA,MACxC,CAAC;AACH,8BAAwB,IAAI;AAAA,IAC9B,CAAC;AAED,UAAM,QAAQ;AAOd,UAAM,UAAU,SAAS,MAAM,MAAM,KAAK,WAAW,EAAE;AACvD,UAAM,WAAW,SAAS,MAAM,MAAM,KAAK,YAAY,IAAI;AAC3D,UAAM,cAAc,SAAS,MAAO,MAAM,SAAS,MAAM,WAAW,CAAC,IAAI,MAAM,WAAW,CAAC,CAAE;AAE7F,UAAM,EAAE,OAAO,aAAa,aAAa,SAAS;AAAA,MAChD;AAAA,MACA,OAAO;AAAA,IAAA,CACR;AAED,UAAM,aAAa,SAAS,MAAM,MAAM,MAAM,MAAM;AACpD,UAAM,YAAY,SAAwB,MAAM,SAAS,SAAS,CAAA,CAAE;AAEpE,UAAM,qBAAqB,CAAC,UAA0D;AACpF,YAAM,aAA4B,CAAA;AAClC,aAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC9C,cAAM,WAAW,IAAI,QAAQ,aAAa,CAAC,GAAG,SAAS,KAAK,aAAa;AACvE,mBAA+C,QAAQ,IAAI;AAAA,MAC/D,CAAC;AACD,aAAO;AAAA,IACT;AAEA,UAAM,gBAAgB,CAAC,UAAsC;AAC3D,UAAI,MAAM,WAAW;AACnB,eAAO,mBAAmB,MAAM,SAAS;AAAA,MAC3C;AAEA,UAAI,CAAC,uBAAuB;AAC1B,eAAO,CAAA;AAAA,MACT;AAEA,YAAM,WAAW,sBAAsB,KAAK;AAC5C,aAAO,mBAAmB,QAAQ;AAAA,IACpC;;0BAhFEA,mBAqBM,OAAA;AAAA,QApBJ,uBAAM,oBAAkB;AAAA,UACmB,0BAAA,MAAM;AAAA,UAAqC,sBAAA,MAAM;AAAA,QAAA;;QAK5FC,mBAaO,QAAA;AAAA,UAbA,sBAAO,UAAA,KAAS;AAAA,QAAA;UAEJ,CAAA,WAAA,MAAW,uBAA5BD,mBAA4DE,UAAA,EAAA,KAAA,KAAA;AAAA,4CAArB,QAAA,KAAO,GAAA,CAAA;AAAA,UAAA,WAG5CC,UAAA,IAAA,GAAAH,mBAKuCE,UAAA,EAAA,KAAA,KAAAE,WAJhB,WAAA,OAAU,CAAvB,OAAO,MAAC;gCADlBJ,mBAKuC,QAAA;AAAA,cAHpC,KAAK;AAAA,cACL,OAAKK,eAAE,cAAc,KAAK,CAAA;AAAA,cAC1B,OAAKC,eAAA,EAAA,sBAA0B,MAAM,eAAa;AAAA,YAAA,GAC/CC,gBAAA,MAAM,OAAO,GAAA,CAAA;AAAA;;;;;;"}
|
package/dist/x-markdown.es29.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, nextTick, watch, onMounted, createElementBlock, openBlock, normalizeClass, createElementVNode, renderSlot } from "vue";
|
|
2
|
-
import { debounce } from "lodash-es";
|
|
3
|
-
import { useMermaid, useMermaidZoom, downloadSvgAsPng } from "./x-markdown.es9.js";
|
|
4
|
-
const _hoisted_1 = {
|
|
5
|
-
key: 0,
|
|
6
|
-
class: "syntax-mermaid__loading"
|
|
7
|
-
};
|
|
8
|
-
const _hoisted_2 = ["innerHTML"];
|
|
9
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
10
|
-
__name: "SyntaxMermaid",
|
|
11
|
-
props: {
|
|
12
|
-
content: { default: "" },
|
|
13
|
-
id: { default: "mermaid-default" },
|
|
14
|
-
isDark: { type: Boolean, default: false },
|
|
15
|
-
config: { default: () => ({}) }
|
|
16
|
-
},
|
|
17
|
-
emits: ["degraded", "ready"],
|
|
18
|
-
setup(__props, { expose: __expose, emit: __emit }) {
|
|
19
|
-
const props = __props;
|
|
20
|
-
const emit = __emit;
|
|
21
|
-
const renderContainerRef = ref(null);
|
|
22
|
-
const mermaidContent = computed(() => props.content);
|
|
23
|
-
const mermaidOptions = computed(() => ({
|
|
24
|
-
id: props.id,
|
|
25
|
-
theme: props.isDark ? "dark" : "default",
|
|
26
|
-
config: props.config,
|
|
27
|
-
container: renderContainerRef.value
|
|
28
|
-
}));
|
|
29
|
-
const mermaidResult = useMermaid(mermaidContent, mermaidOptions);
|
|
30
|
-
const svg = ref("");
|
|
31
|
-
const isLoading = computed(() => mermaidResult.isLoading.value);
|
|
32
|
-
const error = computed(() => mermaidResult.error.value);
|
|
33
|
-
const containerRef = ref(null);
|
|
34
|
-
const zoomControls = useMermaidZoom({
|
|
35
|
-
container: containerRef
|
|
36
|
-
});
|
|
37
|
-
const debouncedInitialize = debounce(initializeZoom, 500);
|
|
38
|
-
function initializeZoom() {
|
|
39
|
-
nextTick(() => {
|
|
40
|
-
if (containerRef.value) {
|
|
41
|
-
zoomControls.initialize();
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
watch(
|
|
46
|
-
() => mermaidResult.data.value,
|
|
47
|
-
(newSvg, oldSvg) => {
|
|
48
|
-
console.log("[SyntaxMermaid] mermaidResult.data.value changed:", {
|
|
49
|
-
oldSvg,
|
|
50
|
-
newSvg,
|
|
51
|
-
isNewSvg: !!newSvg,
|
|
52
|
-
startsWithSvg: newSvg?.trim().startsWith("<svg"),
|
|
53
|
-
preview: newSvg?.substring(0, 50)
|
|
54
|
-
});
|
|
55
|
-
if (newSvg) {
|
|
56
|
-
svg.value = newSvg;
|
|
57
|
-
debouncedInitialize();
|
|
58
|
-
if (newSvg.trim().startsWith("<svg")) {
|
|
59
|
-
console.log("[SyntaxMermaid] Emitting ready event - Mermaid is available");
|
|
60
|
-
emit("ready");
|
|
61
|
-
} else {
|
|
62
|
-
console.log("[SyntaxMermaid] Emitting degraded event - Mermaid not available");
|
|
63
|
-
emit("degraded");
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
{ immediate: true }
|
|
68
|
-
);
|
|
69
|
-
watch(svg, (newSvg) => {
|
|
70
|
-
if (newSvg) {
|
|
71
|
-
debouncedInitialize();
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
function zoomIn() {
|
|
75
|
-
zoomControls?.zoomIn();
|
|
76
|
-
}
|
|
77
|
-
function zoomOut() {
|
|
78
|
-
zoomControls?.zoomOut();
|
|
79
|
-
}
|
|
80
|
-
function reset() {
|
|
81
|
-
zoomControls?.reset();
|
|
82
|
-
}
|
|
83
|
-
function fullscreen() {
|
|
84
|
-
zoomControls?.fullscreen();
|
|
85
|
-
zoomControls?.reset();
|
|
86
|
-
}
|
|
87
|
-
function download() {
|
|
88
|
-
downloadSvgAsPng(svg.value);
|
|
89
|
-
}
|
|
90
|
-
function getSvg() {
|
|
91
|
-
return svg.value;
|
|
92
|
-
}
|
|
93
|
-
function reinitialize() {
|
|
94
|
-
debouncedInitialize();
|
|
95
|
-
}
|
|
96
|
-
onMounted(() => {
|
|
97
|
-
if (svg.value) {
|
|
98
|
-
debouncedInitialize();
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
__expose({
|
|
102
|
-
svg,
|
|
103
|
-
isLoading,
|
|
104
|
-
error,
|
|
105
|
-
containerRef,
|
|
106
|
-
zoomIn,
|
|
107
|
-
zoomOut,
|
|
108
|
-
reset,
|
|
109
|
-
fullscreen,
|
|
110
|
-
download,
|
|
111
|
-
getSvg,
|
|
112
|
-
reinitialize
|
|
113
|
-
});
|
|
114
|
-
return (_ctx, _cache) => {
|
|
115
|
-
return openBlock(), createElementBlock("div", {
|
|
116
|
-
ref_key: "containerRef",
|
|
117
|
-
ref: containerRef,
|
|
118
|
-
class: normalizeClass(["syntax-mermaid", { "syntax-mermaid--dark": props.isDark }])
|
|
119
|
-
}, [
|
|
120
|
-
createElementVNode("div", {
|
|
121
|
-
ref_key: "renderContainerRef",
|
|
122
|
-
ref: renderContainerRef,
|
|
123
|
-
class: "syntax-mermaid__render-container",
|
|
124
|
-
"aria-hidden": "true"
|
|
125
|
-
}, null, 512),
|
|
126
|
-
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
127
|
-
renderSlot(_ctx.$slots, "loading", {}, () => [
|
|
128
|
-
_cache[0] || (_cache[0] = createElementVNode("span", { class: "syntax-mermaid__loading-text" }, "加载中...", -1))
|
|
129
|
-
])
|
|
130
|
-
])) : (openBlock(), createElementBlock("div", {
|
|
131
|
-
key: 1,
|
|
132
|
-
class: "syntax-mermaid__content",
|
|
133
|
-
innerHTML: svg.value
|
|
134
|
-
}, null, 8, _hoisted_2))
|
|
135
|
-
], 2);
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
export {
|
|
140
|
-
_sfc_main as default
|
|
141
|
-
};
|
|
142
|
-
//# sourceMappingURL=x-markdown.es29.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"x-markdown.es29.js","sources":["../src/components/Mermaid/SyntaxMermaid.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, nextTick, ref, watch, onMounted } from 'vue'\r\nimport { debounce } from 'lodash-es'\r\nimport { useMermaid, useMermaidZoom, downloadSvgAsPng } from '../../hooks'\r\n\r\ninterface SyntaxMermaidProps {\r\n content: string\r\n id?: string\r\n isDark?: boolean\r\n config?: Record<string, any>\r\n}\r\n\r\nconst props = withDefaults(defineProps<SyntaxMermaidProps>(), {\r\n content: '',\r\n id: 'mermaid-default',\r\n isDark: false,\r\n config: () => ({}),\r\n})\r\n\r\nconst emit = defineEmits<{\r\n degraded: []\r\n ready: []\r\n}>()\r\n\r\nconst renderContainerRef = ref<HTMLElement | null>(null)\r\n\r\nconst mermaidContent = computed(() => props.content)\r\nconst mermaidOptions = computed(() => ({\r\n id: props.id,\r\n theme: props.isDark ? 'dark' : 'default',\r\n config: props.config,\r\n container: renderContainerRef.value,\r\n}))\r\nconst mermaidResult = useMermaid(mermaidContent, mermaidOptions)\r\n\r\nconst svg = ref('')\r\nconst isLoading = computed(() => mermaidResult.isLoading.value)\r\nconst error = computed(() => mermaidResult.error.value)\r\n\r\nconst containerRef = ref<HTMLElement | null>(null)\r\n\r\nconst zoomControls = useMermaidZoom({\r\n container: containerRef,\r\n scaleStep: 0.2,\r\n minScale: 0.1,\r\n maxScale: 5,\r\n})\r\n\r\nconst debouncedInitialize = debounce(initializeZoom, 500)\r\n\r\nfunction initializeZoom() {\r\n nextTick(() => {\r\n if (containerRef.value) {\r\n zoomControls.initialize()\r\n }\r\n })\r\n}\r\n\r\nwatch(\r\n () => mermaidResult.data.value,\r\n (newSvg, oldSvg) => {\r\n console.log('[SyntaxMermaid] mermaidResult.data.value changed:', {\r\n oldSvg,\r\n newSvg,\r\n isNewSvg: !!newSvg,\r\n startsWithSvg: newSvg?.trim().startsWith('<svg'),\r\n preview: newSvg?.substring(0, 50)\r\n })\r\n\r\n if (newSvg) {\r\n svg.value = newSvg\r\n debouncedInitialize()\r\n\r\n // 检测是否成功渲染了 SVG(以 <svg 开头)\r\n if (newSvg.trim().startsWith('<svg')) {\r\n console.log('[SyntaxMermaid] Emitting ready event - Mermaid is available')\r\n emit('ready')\r\n } else {\r\n console.log('[SyntaxMermaid] Emitting degraded event - Mermaid not available')\r\n emit('degraded')\r\n }\r\n }\r\n },\r\n { immediate: true },\r\n)\r\n\r\nwatch(svg, (newSvg) => {\r\n if (newSvg) {\r\n debouncedInitialize()\r\n }\r\n})\r\n\r\nfunction zoomIn() {\r\n zoomControls?.zoomIn()\r\n}\r\n\r\nfunction zoomOut() {\r\n zoomControls?.zoomOut()\r\n}\r\n\r\nfunction reset() {\r\n zoomControls?.reset()\r\n}\r\n\r\nfunction fullscreen() {\r\n zoomControls?.fullscreen()\r\n zoomControls?.reset()\r\n}\r\n\r\nfunction download() {\r\n downloadSvgAsPng(svg.value)\r\n}\r\n\r\nfunction getSvg() {\r\n return svg.value\r\n}\r\n\r\nfunction reinitialize() {\r\n debouncedInitialize()\r\n}\r\n\r\nonMounted(() => {\r\n if (svg.value) {\r\n debouncedInitialize()\r\n }\r\n})\r\n\r\ndefineExpose({\r\n svg,\r\n isLoading,\r\n error,\r\n containerRef,\r\n zoomIn,\r\n zoomOut,\r\n reset,\r\n fullscreen,\r\n download,\r\n getSvg,\r\n reinitialize,\r\n})\r\n</script>\r\n\r\n<template>\r\n <div ref=\"containerRef\" class=\"syntax-mermaid\" :class=\"{ 'syntax-mermaid--dark': props.isDark }\">\r\n <div ref=\"renderContainerRef\" class=\"syntax-mermaid__render-container\" aria-hidden=\"true\" />\r\n\r\n <div v-if=\"isLoading\" class=\"syntax-mermaid__loading\">\r\n <slot name=\"loading\">\r\n <span class=\"syntax-mermaid__loading-text\">加载中...</span>\r\n </slot>\r\n </div>\r\n <div v-else class=\"syntax-mermaid__content\" v-html=\"svg\" />\r\n </div>\r\n</template>\r\n\r\n<style>\r\n.syntax-mermaid {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 200px;\r\n overflow: hidden;\r\n cursor: grab;\r\n position: relative;\r\n}\r\n\r\n.syntax-mermaid__render-container {\r\n position: absolute;\r\n max-height: 0;\r\n opacity: 0;\r\n overflow: hidden;\r\n pointer-events: none;\r\n}\r\n\r\n.syntax-mermaid:active {\r\n cursor: grabbing;\r\n}\r\n\r\n.syntax-mermaid__content {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.syntax-mermaid__content svg {\r\n transform-origin: center center;\r\n max-width: 100%;\r\n max-height: 100%;\r\n}\r\n\r\n.syntax-mermaid:fullscreen {\r\n max-height: 100vh;\r\n}\r\n\r\n.syntax-mermaid:fullscreen .syntax-mermaid__content {\r\n justify-content: center;\r\n}\r\n\r\n.syntax-mermaid__loading {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n min-height: 200px;\r\n}\r\n\r\n.syntax-mermaid__loading-text {\r\n color: #666;\r\n font-size: 14px;\r\n}\r\n\r\n.syntax-mermaid--dark .syntax-mermaid__loading-text {\r\n color: #999;\r\n}\r\n</style>\r\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_openBlock","_renderSlot"],"mappings":"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"}
|
package/dist/x-markdown.es32.js
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { defineComponent, computed, createElementBlock, openBlock, normalizeStyle, createElementVNode, toDisplayString, normalizeClass, createTextVNode, Fragment, renderList, unref } from "vue";
|
|
2
|
-
import { useHighlight } from "./x-markdown.es7.js";
|
|
3
|
-
const _hoisted_1 = { class: "x-md-syntax-code-block" };
|
|
4
|
-
const _hoisted_2 = { class: "x-md-code-content" };
|
|
5
|
-
const _hoisted_3 = { key: 0 };
|
|
6
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
7
|
-
...{
|
|
8
|
-
name: "SyntaxCodeBlock"
|
|
9
|
-
},
|
|
10
|
-
__name: "SyntaxCodeBlock",
|
|
11
|
-
props: {
|
|
12
|
-
code: {},
|
|
13
|
-
language: {},
|
|
14
|
-
lightTheme: { default: "vitesse-light" },
|
|
15
|
-
darkTheme: { default: "vitesse-dark" },
|
|
16
|
-
isDark: { type: Boolean, default: false },
|
|
17
|
-
colorReplacements: {},
|
|
18
|
-
codeMaxHeight: {},
|
|
19
|
-
enableAnimate: { type: Boolean, default: false }
|
|
20
|
-
},
|
|
21
|
-
setup(__props, { expose: __expose }) {
|
|
22
|
-
const props = __props;
|
|
23
|
-
const code = computed(() => props.code.trim());
|
|
24
|
-
const language = computed(() => props.language || "text");
|
|
25
|
-
const actualTheme = computed(() => props.isDark ? props.darkTheme : props.lightTheme);
|
|
26
|
-
const { lines, preStyle } = useHighlight(code, {
|
|
27
|
-
language,
|
|
28
|
-
theme: actualTheme,
|
|
29
|
-
colorReplacements: props.colorReplacements
|
|
30
|
-
});
|
|
31
|
-
const applyColorReplacement = (color, replacements) => {
|
|
32
|
-
if (!replacements) return color;
|
|
33
|
-
return replacements[color.toLowerCase()] || color;
|
|
34
|
-
};
|
|
35
|
-
const normalizeStyleKeys = (style) => {
|
|
36
|
-
const normalized = {};
|
|
37
|
-
Object.entries(style).forEach(([key, value]) => {
|
|
38
|
-
const camelKey = key.replace(/-([a-z])/g, (_, char) => char.toUpperCase());
|
|
39
|
-
normalized[camelKey] = value;
|
|
40
|
-
});
|
|
41
|
-
return normalized;
|
|
42
|
-
};
|
|
43
|
-
const getTokenStyle = (token) => {
|
|
44
|
-
if (!token) {
|
|
45
|
-
return {};
|
|
46
|
-
}
|
|
47
|
-
if (token.htmlStyle) {
|
|
48
|
-
const baseStyle = normalizeStyleKeys(token.htmlStyle);
|
|
49
|
-
if (!props.colorReplacements) return baseStyle;
|
|
50
|
-
const style2 = { ...baseStyle };
|
|
51
|
-
if (style2.color && typeof style2.color === "string") {
|
|
52
|
-
style2.color = applyColorReplacement(style2.color, props.colorReplacements);
|
|
53
|
-
}
|
|
54
|
-
if (style2.backgroundColor && typeof style2.backgroundColor === "string") {
|
|
55
|
-
style2.backgroundColor = applyColorReplacement(style2.backgroundColor, props.colorReplacements);
|
|
56
|
-
}
|
|
57
|
-
return style2;
|
|
58
|
-
}
|
|
59
|
-
const style = {};
|
|
60
|
-
if (token.color) {
|
|
61
|
-
style.color = props.colorReplacements ? applyColorReplacement(token.color, props.colorReplacements) : token.color;
|
|
62
|
-
}
|
|
63
|
-
if (token.fontStyle === "italic") {
|
|
64
|
-
style.fontStyle = "italic";
|
|
65
|
-
}
|
|
66
|
-
if (token.fontWeight) {
|
|
67
|
-
style.fontWeight = token.fontWeight;
|
|
68
|
-
}
|
|
69
|
-
return style;
|
|
70
|
-
};
|
|
71
|
-
const showFallback = computed(() => !lines.value?.length);
|
|
72
|
-
const codeContainerStyle = computed(() => ({
|
|
73
|
-
...preStyle.value,
|
|
74
|
-
maxHeight: props.codeMaxHeight
|
|
75
|
-
}));
|
|
76
|
-
__expose({
|
|
77
|
-
lines,
|
|
78
|
-
code,
|
|
79
|
-
language,
|
|
80
|
-
actualTheme
|
|
81
|
-
});
|
|
82
|
-
return (_ctx, _cache) => {
|
|
83
|
-
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
84
|
-
showFallback.value ? (openBlock(), createElementBlock("pre", {
|
|
85
|
-
key: 0,
|
|
86
|
-
style: normalizeStyle(codeContainerStyle.value)
|
|
87
|
-
}, [
|
|
88
|
-
createElementVNode("code", null, toDisplayString(code.value), 1)
|
|
89
|
-
], 4)) : (openBlock(), createElementBlock("pre", {
|
|
90
|
-
key: 1,
|
|
91
|
-
class: normalizeClass(["shiki", actualTheme.value]),
|
|
92
|
-
style: normalizeStyle(codeContainerStyle.value),
|
|
93
|
-
tabindex: "0"
|
|
94
|
-
}, [
|
|
95
|
-
_cache[4] || (_cache[4] = createTextVNode(" ", -1)),
|
|
96
|
-
createElementVNode("code", _hoisted_2, [
|
|
97
|
-
_cache[2] || (_cache[2] = createTextVNode("\n ", -1)),
|
|
98
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(lines), (line, i) => {
|
|
99
|
-
return openBlock(), createElementBlock("span", {
|
|
100
|
-
key: i,
|
|
101
|
-
class: "x-md-code-line"
|
|
102
|
-
}, [
|
|
103
|
-
_cache[0] || (_cache[0] = createTextVNode("\n ", -1)),
|
|
104
|
-
!line.length ? (openBlock(), createElementBlock("span", _hoisted_3, " ")) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(line, (token, j) => {
|
|
105
|
-
return openBlock(), createElementBlock("span", {
|
|
106
|
-
key: j,
|
|
107
|
-
style: normalizeStyle(getTokenStyle(token)),
|
|
108
|
-
class: normalizeClass({ "x-md-animated-word": props.enableAnimate })
|
|
109
|
-
}, toDisplayString(token.content), 7);
|
|
110
|
-
}), 128)),
|
|
111
|
-
_cache[1] || (_cache[1] = createTextVNode("\n ", -1))
|
|
112
|
-
]);
|
|
113
|
-
}), 128)),
|
|
114
|
-
_cache[3] || (_cache[3] = createTextVNode("\n ", -1))
|
|
115
|
-
]),
|
|
116
|
-
_cache[5] || (_cache[5] = createTextVNode("\n ", -1))
|
|
117
|
-
], 6))
|
|
118
|
-
]);
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
export {
|
|
123
|
-
_sfc_main as default
|
|
124
|
-
};
|
|
125
|
-
//# sourceMappingURL=x-markdown.es32.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"x-markdown.es32.js","sources":["../src/components/CodeBlock/SyntaxCodeBlock.vue"],"sourcesContent":["<template>\r\n <div class=\"x-md-syntax-code-block\">\r\n <pre v-if=\"showFallback\" :style=\"codeContainerStyle\"><code>{{ code }}</code></pre>\r\n <pre v-else :class=\"['shiki', actualTheme]\" :style=\"codeContainerStyle\" tabindex=\"0\">\r\n <code class=\"x-md-code-content\">\r\n <span v-for=\"(line, i) in lines\" :key=\"i\" class=\"x-md-code-line\">\r\n <span v-if=\"!line.length\"> </span>\r\n <span \r\n v-else \r\n v-for=\"(token, j) in line\" \r\n :key=\"j\" \r\n :style=\"getTokenStyle(token)\"\r\n :class=\"{ 'x-md-animated-word': props.enableAnimate }\"\r\n >{{ token.content }}</span>\r\n </span>\r\n </code>\r\n </pre>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, type CSSProperties } from 'vue'\r\nimport { useHighlight } from '../../hooks/useHighlight'\r\nimport type { SyntaxCodeBlockProps } from './types'\r\n\r\ninterface HighlightToken {\r\n content?: string\r\n color?: string\r\n fontStyle?: 'italic' | null\r\n fontWeight?: 'normal' | 'bold' | null\r\n htmlStyle?: Record<string, string>\r\n}\r\n\r\ndefineOptions({\r\n name: 'SyntaxCodeBlock',\r\n})\r\n\r\nconst props = withDefaults(defineProps<SyntaxCodeBlockProps>(), {\r\n lightTheme: 'vitesse-light',\r\n darkTheme: 'vitesse-dark',\r\n isDark: false,\r\n enableAnimate: false,\r\n})\r\n\r\nconst code = computed(() => props.code.trim())\r\n\r\nconst language = computed(() => props.language || 'text')\r\n\r\nconst actualTheme = computed(() => (props.isDark ? props.darkTheme : props.lightTheme))\r\n\r\nconst { lines, preStyle } = useHighlight(code, {\r\n language,\r\n theme: actualTheme,\r\n colorReplacements: props.colorReplacements,\r\n})\r\n\r\nconst applyColorReplacement = (color: string, replacements?: Record<string, string>) => {\r\n if (!replacements) return color\r\n return replacements[color.toLowerCase()] || color\r\n}\r\n\r\nconst normalizeStyleKeys = (style: Record<string, string | number>): CSSProperties => {\r\n const normalized: CSSProperties = {}\r\n Object.entries(style).forEach(([key, value]) => {\r\n const camelKey = key.replace(/-([a-z])/g, (_, char) => char.toUpperCase())\r\n ;(normalized as Record<string, string | number>)[camelKey] = value\r\n })\r\n return normalized\r\n}\r\n\r\nconst getTokenStyle = (token: HighlightToken | null | undefined): CSSProperties => {\r\n // 处理 null/undefined token\r\n if (!token) {\r\n return {}\r\n }\r\n\r\n // 优先使用 htmlStyle(如果存在)\r\n if (token.htmlStyle) {\r\n const baseStyle = normalizeStyleKeys(token.htmlStyle)\r\n\r\n if (!props.colorReplacements) return baseStyle\r\n\r\n const style = { ...baseStyle }\r\n\r\n if (style.color && typeof style.color === 'string') {\r\n style.color = applyColorReplacement(style.color, props.colorReplacements)\r\n }\r\n if (style.backgroundColor && typeof style.backgroundColor === 'string') {\r\n style.backgroundColor = applyColorReplacement(style.backgroundColor, props.colorReplacements)\r\n }\r\n\r\n return style\r\n }\r\n\r\n // 直接使用 token 的 color、fontStyle、fontWeight 属性\r\n const style: CSSProperties = {}\r\n\r\n if (token.color) {\r\n style.color = props.colorReplacements\r\n ? applyColorReplacement(token.color, props.colorReplacements)\r\n : token.color\r\n }\r\n\r\n if (token.fontStyle === 'italic') {\r\n style.fontStyle = 'italic'\r\n }\r\n\r\n if (token.fontWeight) {\r\n style.fontWeight = token.fontWeight\r\n }\r\n\r\n return style\r\n}\r\n\r\nconst showFallback = computed(() => !lines.value?.length)\r\n\r\nconst codeContainerStyle = computed(() => ({\r\n ...preStyle.value,\r\n maxHeight: props.codeMaxHeight,\r\n}))\r\n\r\ndefineExpose({\r\n lines,\r\n code,\r\n language,\r\n actualTheme,\r\n})\r\n</script>\r\n\r\n<style scoped>\r\n.x-md-syntax-code-block {\r\n width: 100%;\r\n}\r\n\r\n.x-md-syntax-code-block pre {\r\n margin: 0;\r\n padding: 16px;\r\n overflow: auto;\r\n background: transparent !important;\r\n}\r\n\r\n.x-md-code-content {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.x-md-code-line {\r\n width: 100%;\r\n font-size: 14px;\r\n line-height: 1.5;\r\n display: flex;\r\n}\r\n</style>"],"names":["style","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_renderList","_unref","_normalizeStyle","_normalizeClass","_toDisplayString"],"mappings":"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"}
|
package/dist/x-markdown.es34.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"x-markdown.es34.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|