valaxy 0.15.11-alpha.0 → 0.15.11

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.
Files changed (119) hide show
  1. package/LICENSE +21 -0
  2. package/bin/valaxy.cjs +0 -0
  3. package/bin/valaxy.mjs +0 -0
  4. package/client/composables/dark.ts +0 -2
  5. package/client/styles/common/transition.scss +22 -0
  6. package/package.json +8 -8
  7. package/client/.vite-ssg-temp/tbbjcbuyn2/CNAME +0 -1
  8. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/PressAlgoliaSearch-2943719f.js +0 -227
  9. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/ValaxyMain-26e77dc6.js +0 -752
  10. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/_...all_-080f97f3.js +0 -31
  11. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/_...all_-5084a1b0.js +0 -42
  12. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/addon-f5fa83e1.js +0 -172
  13. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/best-pratice-0231a551.js +0 -1105
  14. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/client-496183a0.js +0 -286
  15. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/community-1b33ec3b.js +0 -627
  16. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/components-7000ddd3.js +0 -2460
  17. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/deploy-59948619.js +0 -1071
  18. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/docs-26abd7f8.js +0 -490
  19. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/extend-975f8f72.js +0 -1851
  20. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/extend-acd7107b.js +0 -1444
  21. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/faq-62ed7bfd.js +0 -321
  22. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/features-8acbd53d.js +0 -2625
  23. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/gallery-832227a9.js +0 -244
  24. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/gallery-9077df38.js +0 -370
  25. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/getting-started-52c30f03.js +0 -3684
  26. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/hexo-7311896e.js +0 -969
  27. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/hooks-67450cb3.js +0 -517
  28. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/i18n-4cd1bb86.js +0 -4159
  29. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/i18n-e1165bc4.js +0 -676
  30. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-002f83fb.js +0 -768
  31. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-3dec2b83.js +0 -527
  32. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-43565e48.js +0 -424
  33. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-5f07432e.js +0 -563
  34. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-6024f010.js +0 -3294
  35. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-6f0d6ec7.js +0 -202
  36. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-78c510e0.js +0 -549
  37. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-839c338e.js +0 -4161
  38. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-d39a48fd.js +0 -1170
  39. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/index-e633613c.js +0 -1564
  40. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/katex-32f21e80.js +0 -6119
  41. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/logo-bd69f816.js +0 -180
  42. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/markdown-050f3269.js +0 -5895
  43. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/news-ecba2d88.js +0 -278
  44. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/page-d48f3caa.js +0 -752
  45. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/post-ac89eaf5.js +0 -1605
  46. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/route-block-c0a8bdd8.js +0 -4
  47. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/schema-org-f60b7dac.js +0 -477
  48. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/site-6caa6511.js +0 -286
  49. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/style-f415f7fa.css +0 -3742
  50. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/styles-cdaadad2.js +0 -548
  51. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/templates-c97584f2.js +0 -574
  52. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/theme-192f77ef.js +0 -172
  53. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/use-3c036a47.js +0 -669
  54. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/use-851c0307.js +0 -619
  55. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/vite-vue-f91b9792.js +0 -830
  56. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/vscode-bc411e64.js +0 -350
  57. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/why-c98bbe8e.js +0 -1131
  58. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/write-6a43d4d0.js +0 -4963
  59. package/client/.vite-ssg-temp/tbbjcbuyn2/assets/write-6bc2b77c.js +0 -675
  60. package/client/.vite-ssg-temp/tbbjcbuyn2/favicon.svg +0 -33
  61. package/client/.vite-ssg-temp/tbbjcbuyn2/main.mjs +0 -6239
  62. package/client/.vite-ssg-temp/tbbjcbuyn2/valaxy-logo.png +0 -0
  63. package/client/.vite-ssg-temp/vp12eb5cgm/CNAME +0 -1
  64. package/client/.vite-ssg-temp/vp12eb5cgm/assets/PressAlgoliaSearch-2943719f.js +0 -227
  65. package/client/.vite-ssg-temp/vp12eb5cgm/assets/ValaxyMain-26e77dc6.js +0 -752
  66. package/client/.vite-ssg-temp/vp12eb5cgm/assets/_...all_-080f97f3.js +0 -31
  67. package/client/.vite-ssg-temp/vp12eb5cgm/assets/_...all_-5084a1b0.js +0 -42
  68. package/client/.vite-ssg-temp/vp12eb5cgm/assets/addon-f5fa83e1.js +0 -172
  69. package/client/.vite-ssg-temp/vp12eb5cgm/assets/best-pratice-0231a551.js +0 -1105
  70. package/client/.vite-ssg-temp/vp12eb5cgm/assets/client-496183a0.js +0 -286
  71. package/client/.vite-ssg-temp/vp12eb5cgm/assets/community-1b33ec3b.js +0 -627
  72. package/client/.vite-ssg-temp/vp12eb5cgm/assets/components-7000ddd3.js +0 -2460
  73. package/client/.vite-ssg-temp/vp12eb5cgm/assets/deploy-59948619.js +0 -1071
  74. package/client/.vite-ssg-temp/vp12eb5cgm/assets/docs-26abd7f8.js +0 -490
  75. package/client/.vite-ssg-temp/vp12eb5cgm/assets/extend-975f8f72.js +0 -1851
  76. package/client/.vite-ssg-temp/vp12eb5cgm/assets/extend-acd7107b.js +0 -1444
  77. package/client/.vite-ssg-temp/vp12eb5cgm/assets/faq-62ed7bfd.js +0 -321
  78. package/client/.vite-ssg-temp/vp12eb5cgm/assets/features-8acbd53d.js +0 -2625
  79. package/client/.vite-ssg-temp/vp12eb5cgm/assets/gallery-832227a9.js +0 -244
  80. package/client/.vite-ssg-temp/vp12eb5cgm/assets/gallery-9077df38.js +0 -370
  81. package/client/.vite-ssg-temp/vp12eb5cgm/assets/getting-started-bb7fc0a8.js +0 -3684
  82. package/client/.vite-ssg-temp/vp12eb5cgm/assets/hexo-7311896e.js +0 -969
  83. package/client/.vite-ssg-temp/vp12eb5cgm/assets/hooks-67450cb3.js +0 -517
  84. package/client/.vite-ssg-temp/vp12eb5cgm/assets/i18n-4cd1bb86.js +0 -4159
  85. package/client/.vite-ssg-temp/vp12eb5cgm/assets/i18n-e1165bc4.js +0 -676
  86. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-002f83fb.js +0 -768
  87. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-3dec2b83.js +0 -527
  88. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-43565e48.js +0 -424
  89. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-5f07432e.js +0 -563
  90. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-6024f010.js +0 -3294
  91. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-6f0d6ec7.js +0 -202
  92. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-78c510e0.js +0 -549
  93. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-839c338e.js +0 -4161
  94. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-d39a48fd.js +0 -1170
  95. package/client/.vite-ssg-temp/vp12eb5cgm/assets/index-e633613c.js +0 -1564
  96. package/client/.vite-ssg-temp/vp12eb5cgm/assets/katex-32f21e80.js +0 -6119
  97. package/client/.vite-ssg-temp/vp12eb5cgm/assets/logo-bd69f816.js +0 -180
  98. package/client/.vite-ssg-temp/vp12eb5cgm/assets/markdown-abdb17ca.js +0 -5895
  99. package/client/.vite-ssg-temp/vp12eb5cgm/assets/news-ecba2d88.js +0 -278
  100. package/client/.vite-ssg-temp/vp12eb5cgm/assets/page-d48f3caa.js +0 -752
  101. package/client/.vite-ssg-temp/vp12eb5cgm/assets/post-0ed0dfec.js +0 -1605
  102. package/client/.vite-ssg-temp/vp12eb5cgm/assets/route-block-c0a8bdd8.js +0 -4
  103. package/client/.vite-ssg-temp/vp12eb5cgm/assets/schema-org-f60b7dac.js +0 -477
  104. package/client/.vite-ssg-temp/vp12eb5cgm/assets/site-6caa6511.js +0 -286
  105. package/client/.vite-ssg-temp/vp12eb5cgm/assets/style-f415f7fa.css +0 -3742
  106. package/client/.vite-ssg-temp/vp12eb5cgm/assets/styles-cdaadad2.js +0 -548
  107. package/client/.vite-ssg-temp/vp12eb5cgm/assets/templates-c97584f2.js +0 -574
  108. package/client/.vite-ssg-temp/vp12eb5cgm/assets/theme-192f77ef.js +0 -172
  109. package/client/.vite-ssg-temp/vp12eb5cgm/assets/use-3c036a47.js +0 -669
  110. package/client/.vite-ssg-temp/vp12eb5cgm/assets/use-851c0307.js +0 -619
  111. package/client/.vite-ssg-temp/vp12eb5cgm/assets/vite-vue-f91b9792.js +0 -830
  112. package/client/.vite-ssg-temp/vp12eb5cgm/assets/vscode-bc411e64.js +0 -350
  113. package/client/.vite-ssg-temp/vp12eb5cgm/assets/why-c98bbe8e.js +0 -1131
  114. package/client/.vite-ssg-temp/vp12eb5cgm/assets/write-6a43d4d0.js +0 -4963
  115. package/client/.vite-ssg-temp/vp12eb5cgm/assets/write-6bc2b77c.js +0 -675
  116. package/client/.vite-ssg-temp/vp12eb5cgm/favicon.svg +0 -33
  117. package/client/.vite-ssg-temp/vp12eb5cgm/main.mjs +0 -6239
  118. package/client/.vite-ssg-temp/vp12eb5cgm/valaxy-logo.png +0 -0
  119. package/client/styles/common/view-transition.css +0 -21
@@ -1,752 +0,0 @@
1
- import { onMounted, computed, ref, onUpdated, onUnmounted, defineComponent, mergeProps, useSSRContext, unref, watchEffect, h, nextTick, withCtx, openBlock, createBlock, createTextVNode, toDisplayString, createVNode, createCommentVNode, renderSlot } from "vue";
2
- import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent, ssrRenderClass, ssrRenderSlot, ssrRenderAttr } from "vue/server-renderer";
3
- import { d as useSiteConfig, e as useThemeConfig, f as useData, u as useI18n, g as useOutline, h as __unplugin_components_0$2, _ as _export_sfc, i as useFrontmatter, j as useAppStore, o as onContentUpdated, r as runContentUpdated, k as useSidebar, l as useLayout, m as getLocaleTitle, s as scrollTo } from "../main.mjs";
4
- import "dayjs";
5
- import "dayjs/locale/zh-cn.js";
6
- import "body-scroll-lock";
7
- import { isClient, useScriptTag } from "@vueuse/core";
8
- import mediumZoom from "medium-zoom";
9
- import { useHead } from "@unhead/vue";
10
- import LazyLoad from "vanilla-lazyload";
11
- import { useRoute } from "vue-router";
12
- function throttleAndDebounce(fn, delay) {
13
- let timeout;
14
- let called = false;
15
- return () => {
16
- if (timeout)
17
- clearTimeout(timeout);
18
- if (!called) {
19
- fn();
20
- called = true;
21
- setTimeout(() => {
22
- called = false;
23
- }, delay);
24
- } else {
25
- timeout = setTimeout(fn, delay);
26
- }
27
- };
28
- }
29
- function wrap(el, className) {
30
- const wrapper = document.createElement("div");
31
- wrapper.className = className;
32
- el.parentNode.insertBefore(wrapper, el);
33
- el.parentNode.removeChild(el);
34
- wrapper.appendChild(el);
35
- }
36
- function wrapTable(container = document) {
37
- container.querySelectorAll("table").forEach((el) => {
38
- const container2 = document.createElement("div");
39
- container2.className = "table-container";
40
- wrap(el, "table-container");
41
- });
42
- }
43
- function useCopyCode() {
44
- if (isClient) {
45
- const timeoutIdMap = /* @__PURE__ */ new WeakMap();
46
- window.addEventListener("click", (e) => {
47
- var _a;
48
- const el = e.target;
49
- if (el.matches('div[class*="language-"] > button.copy')) {
50
- const parent = el.parentElement;
51
- const sibling = (_a = el.nextElementSibling) == null ? void 0 : _a.nextElementSibling;
52
- if (!parent || !sibling)
53
- return;
54
- const isShell = /language-(shellscript|shell|bash|sh|zsh)/.test(
55
- parent.className
56
- );
57
- let text = "";
58
- sibling.querySelectorAll("span.line:not(.diff.remove)").forEach((node) => text += `${node.textContent || ""}
59
- `);
60
- text = text.slice(0, -1);
61
- if (isShell)
62
- text = text.replace(/^ *(\$|>) /gm, "").trim();
63
- copyToClipboard(text).then(() => {
64
- el.classList.add("copied");
65
- clearTimeout(timeoutIdMap.get(el));
66
- const timeoutId = setTimeout(() => {
67
- el.classList.remove("copied");
68
- el.blur();
69
- timeoutIdMap.delete(el);
70
- }, 2e3);
71
- timeoutIdMap.set(el, timeoutId);
72
- });
73
- }
74
- });
75
- }
76
- }
77
- async function copyToClipboard(text) {
78
- try {
79
- return navigator.clipboard.writeText(text);
80
- } catch {
81
- const element = document.createElement("textarea");
82
- const previouslyFocusedElement = document.activeElement;
83
- element.value = text;
84
- element.setAttribute("readonly", "");
85
- element.style.contain = "strict";
86
- element.style.position = "absolute";
87
- element.style.left = "-9999px";
88
- element.style.fontSize = "12pt";
89
- const selection = document.getSelection();
90
- const originalRange = selection ? selection.rangeCount > 0 && selection.getRangeAt(0) : null;
91
- document.body.appendChild(element);
92
- element.select();
93
- element.selectionStart = 0;
94
- element.selectionEnd = text.length;
95
- document.execCommand("copy");
96
- document.body.removeChild(element);
97
- if (originalRange) {
98
- selection.removeAllRanges();
99
- selection.addRange(originalRange);
100
- }
101
- if (previouslyFocusedElement) {
102
- previouslyFocusedElement.focus();
103
- }
104
- }
105
- }
106
- function useMediumZoom() {
107
- const siteConfig = useSiteConfig();
108
- const mediumZoomConfig = siteConfig.value.mediumZoom;
109
- onMounted(() => {
110
- if (mediumZoomConfig.enable) {
111
- mediumZoom(
112
- mediumZoomConfig.selector || ".markdown-body img",
113
- {
114
- background: "var(--medium-zoom-c-bg, rgba(0, 0, 0, 0.8))",
115
- ...mediumZoomConfig.options
116
- }
117
- );
118
- }
119
- });
120
- }
121
- function useAplayer() {
122
- const siteConfig = useSiteConfig();
123
- const cdnPrefix = computed(() => siteConfig.value.cdn.prefix);
124
- useHead({
125
- link: [
126
- {
127
- rel: "stylesheet",
128
- href: `${cdnPrefix.value}aplayer/dist/APlayer.min.css`
129
- }
130
- ]
131
- });
132
- useScriptTag(`${cdnPrefix.value}aplayer/dist/APlayer.min.js`, () => {
133
- useScriptTag(`${cdnPrefix.value}meting@2/dist/Meting.min.js`);
134
- });
135
- }
136
- function useCodePen() {
137
- useHead({
138
- script: [
139
- {
140
- src: "https://static.codepen.io/assets/embed/ei.js",
141
- async: true
142
- }
143
- ]
144
- });
145
- }
146
- function useAside() {
147
- const isAsideEnabled = ref(true);
148
- return {
149
- isAsideEnabled
150
- };
151
- }
152
- const PAGE_OFFSET = 56;
153
- const topOffset = 33;
154
- function useActiveAnchor(container, marker) {
155
- const { isAsideEnabled } = useAside();
156
- const onScroll = throttleAndDebounce(setActiveLink, 100);
157
- let prevActiveLink = null;
158
- onMounted(() => {
159
- requestAnimationFrame(setActiveLink);
160
- window.addEventListener("scroll", onScroll);
161
- });
162
- onUpdated(() => {
163
- activateLink(location.hash);
164
- });
165
- onUnmounted(() => {
166
- window.removeEventListener("scroll", onScroll);
167
- });
168
- function setActiveLink() {
169
- if (!isAsideEnabled.value)
170
- return;
171
- const links = [].slice.call(
172
- container.value.querySelectorAll(".outline-link")
173
- );
174
- const anchors = [].slice.call(document.querySelectorAll(".content .header-anchor")).filter((anchor) => {
175
- return links.some((link) => {
176
- return link.hash === anchor.hash && anchor.offsetParent !== null;
177
- });
178
- });
179
- const scrollY = window.scrollY;
180
- const innerHeight = window.innerHeight;
181
- const offsetHeight = container.value.offsetHeight;
182
- const isBottom = Math.abs(scrollY + innerHeight - offsetHeight) < 1;
183
- if (anchors.length && isBottom) {
184
- activateLink(anchors[anchors.length - 1].hash);
185
- return;
186
- }
187
- for (let i = 0; i < anchors.length; i++) {
188
- const anchor = anchors[i];
189
- const nextAnchor = anchors[i + 1];
190
- const [isActive, hash] = isAnchorActive(i, anchor, nextAnchor);
191
- if (isActive) {
192
- activateLink(hash);
193
- return;
194
- }
195
- }
196
- }
197
- const checkActiveLinkInViewport = () => {
198
- const activeLink = prevActiveLink;
199
- if (!activeLink) {
200
- return;
201
- }
202
- const top = activeLink.getBoundingClientRect().top;
203
- const bottom = activeLink.getBoundingClientRect().bottom;
204
- if (top < topOffset || bottom > window.innerHeight - topOffset)
205
- activeLink.scrollIntoView();
206
- };
207
- function activateLink(hash) {
208
- if (prevActiveLink)
209
- prevActiveLink.classList.remove("active");
210
- if (hash == null) {
211
- prevActiveLink = null;
212
- } else {
213
- prevActiveLink = container.value.querySelector(
214
- `a[href="${decodeURIComponent(hash)}"]`
215
- );
216
- }
217
- const activeLink = prevActiveLink;
218
- checkActiveLinkInViewport();
219
- if (activeLink) {
220
- activeLink.classList.add("active");
221
- marker.value.style.top = `${activeLink.offsetTop + topOffset}px`;
222
- marker.value.style.opacity = "1";
223
- } else {
224
- marker.value.style.top = `${topOffset}px`;
225
- marker.value.style.opacity = "0";
226
- }
227
- }
228
- }
229
- function getAnchorTop(anchor) {
230
- return anchor.parentElement.offsetTop - PAGE_OFFSET - 15;
231
- }
232
- function isAnchorActive(index, anchor, nextAnchor) {
233
- const scrollTop = window.scrollY;
234
- if (index === 0 && scrollTop === 0)
235
- return [true, null];
236
- if (scrollTop < getAnchorTop(anchor))
237
- return [false, null];
238
- if (!nextAnchor || scrollTop < getAnchorTop(nextAnchor))
239
- return [true, anchor.hash];
240
- return [false, null];
241
- }
242
- function getKeyMaterial(password) {
243
- const enc = new TextEncoder();
244
- return window.crypto.subtle.importKey(
245
- "raw",
246
- enc.encode(password),
247
- "PBKDF2",
248
- false,
249
- ["deriveBits", "deriveKey"]
250
- );
251
- }
252
- function getKey(keyMaterial, salt) {
253
- return window.crypto.subtle.deriveKey(
254
- {
255
- name: "PBKDF2",
256
- salt,
257
- iterations: 1e5,
258
- hash: "SHA-256"
259
- },
260
- keyMaterial,
261
- {
262
- name: "AES-CBC",
263
- length: 256
264
- },
265
- true,
266
- ["encrypt", "decrypt"]
267
- );
268
- }
269
- function useDecrypt() {
270
- const siteConfig = useSiteConfig();
271
- const { encrypt } = siteConfig.value;
272
- const iv = Uint8Array.from(Object.values(encrypt.iv));
273
- const salt = Uint8Array.from(Object.values(encrypt.salt));
274
- return {
275
- decrypt: async (password, ciphertext) => {
276
- if (!password)
277
- return;
278
- const keyMaterial = await getKeyMaterial(password);
279
- const key = await getKey(keyMaterial, salt);
280
- const ciphertextData = Uint8Array.from(ciphertext, (c) => c.charCodeAt(0));
281
- const decrypted = await window.crypto.subtle.decrypt(
282
- {
283
- name: "AES-CBC",
284
- iv
285
- },
286
- key,
287
- ciphertextData
288
- );
289
- return new TextDecoder().decode(decrypted);
290
- }
291
- };
292
- }
293
- function useEditLink() {
294
- const themeConfig = useThemeConfig();
295
- return computed(() => {
296
- const { text, pattern } = themeConfig.value.editLink || {};
297
- const { relativePath } = useData();
298
- const url = pattern.replace(/:path/g, relativePath);
299
- return { url, text };
300
- });
301
- }
302
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
303
- __name: "ValaxyOverlay",
304
- __ssrInlineRender: true,
305
- props: {
306
- show: { type: Boolean, default: false }
307
- },
308
- setup(__props) {
309
- return (_ctx, _push, _parent, _attrs) => {
310
- if (_ctx.show) {
311
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "va-overlay" }, _attrs))}></div>`);
312
- } else {
313
- _push(`<!---->`);
314
- }
315
- };
316
- }
317
- });
318
- const ValaxyOverlay_vue_vue_type_style_index_0_lang = "";
319
- const _sfc_setup$7 = _sfc_main$7.setup;
320
- _sfc_main$7.setup = (props, ctx) => {
321
- const ssrContext = useSSRContext();
322
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ValaxyOverlay.vue");
323
- return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0;
324
- };
325
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
326
- __name: "PressOutline",
327
- __ssrInlineRender: true,
328
- setup(__props) {
329
- const { t } = useI18n();
330
- const container = ref();
331
- const marker = ref();
332
- useActiveAnchor(container, marker);
333
- const { headers, handleClick } = useOutline();
334
- return (_ctx, _push, _parent, _attrs) => {
335
- const _component_PressOutlineItem = __unplugin_components_0$2;
336
- _push(`<div${ssrRenderAttrs(mergeProps({
337
- style: unref(headers).length ? null : { display: "none" },
338
- ref_key: "container",
339
- ref: container
340
- }, _attrs))} data-v-eb4ac0ae><div class="content" data-v-eb4ac0ae><div class="outline-title" data-v-eb4ac0ae>${ssrInterpolate(unref(t)("theme.outlineTitle"))}</div><div class="outline-marker" data-v-eb4ac0ae></div><nav aria-labelledby="doc-outline-aria-label" data-v-eb4ac0ae><span id="doc-outline-aria-label" class="visually-hidden" data-v-eb4ac0ae> Table of Contents for current page </span>`);
341
- _push(ssrRenderComponent(_component_PressOutlineItem, {
342
- class: "va-toc relative z-1 css-i18n-toc",
343
- headers: unref(headers),
344
- "on-click": unref(handleClick),
345
- root: ""
346
- }, null, _parent));
347
- _push(`</nav></div></div>`);
348
- };
349
- }
350
- });
351
- const PressOutline_vue_vue_type_style_index_0_scoped_eb4ac0ae_lang = "";
352
- const _sfc_setup$6 = _sfc_main$6.setup;
353
- _sfc_main$6.setup = (props, ctx) => {
354
- const ssrContext = useSSRContext();
355
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../../valaxy-theme-press/components/PressOutline.vue");
356
- return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
357
- };
358
- const PressOutline = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-eb4ac0ae"]]);
359
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
360
- __name: "PressAside",
361
- __ssrInlineRender: true,
362
- setup(__props) {
363
- const frontmatter = useFrontmatter();
364
- const app = useAppStore();
365
- return (_ctx, _push, _parent, _attrs) => {
366
- const _component_ValaxyOverlay = _sfc_main$7;
367
- _push(`<!--[--><button class="toc-btn shadow-lg fixed press-icon-btn z-99 lt-md:hidden! xl:hidden!" right="5" bottom="24"><div i-ri-file-list-line></div></button>`);
368
- _push(ssrRenderComponent(_component_ValaxyOverlay, {
369
- show: unref(app).isRightSidebarOpen,
370
- onClick: ($event) => unref(app).toggleRightSidebar()
371
- }, null, _parent));
372
- _push(`<aside flex="~ col grow" p="l-0 xl:l-8" text="center" z="$" class="${ssrRenderClass([unref(app).isRightSidebarOpen && "open", "press-aside lt-xl:fixed shadow xl:shadow-none xl:hover:shadow-none hover:shadow-lg"])}" bg="$va-c-bg"><div class="aside-curtain"></div><div class="aside-container lt-xl:fixed" flex="~ col"><div class="aside-content overflow-auto" flex="~ col">`);
373
- if (unref(frontmatter).toc !== false) {
374
- _push(ssrRenderComponent(PressOutline, null, null, _parent));
375
- } else {
376
- _push(`<!---->`);
377
- }
378
- _push(`<div class="flex-grow"></div>`);
379
- if (_ctx.$slots.default) {
380
- _push(`<div class="custom-container">`);
381
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
382
- _push(`</div>`);
383
- } else {
384
- _push(`<!---->`);
385
- }
386
- _push(`</div></div></aside><!--]-->`);
387
- };
388
- }
389
- });
390
- const PressAside_vue_vue_type_style_index_0_lang = "";
391
- const _sfc_setup$5 = _sfc_main$5.setup;
392
- _sfc_main$5.setup = (props, ctx) => {
393
- const ssrContext = useSSRContext();
394
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../../valaxy-theme-press/components/PressAside.vue");
395
- return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
396
- };
397
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
398
- __name: "PressDocFooterLastUpdated",
399
- __ssrInlineRender: true,
400
- setup(__props) {
401
- const data = useData();
402
- const date = computed(() => new Date(data.lastUpdated));
403
- const isoDatetime = computed(() => date.value.toISOString());
404
- const datetime = ref("");
405
- onMounted(() => {
406
- watchEffect(() => {
407
- datetime.value = date.value.toLocaleString(window.navigator.language);
408
- });
409
- });
410
- const { t } = useI18n();
411
- return (_ctx, _push, _parent, _attrs) => {
412
- _push(`<p${ssrRenderAttrs(mergeProps({ class: "press-lastUpdated text-right" }, _attrs))} data-v-199a2fc5>${ssrInterpolate(unref(t)("tooltip.last_updated"))}: <time${ssrRenderAttr("datetime", isoDatetime.value)} data-v-199a2fc5>${ssrInterpolate(datetime.value)}</time></p>`);
413
- };
414
- }
415
- });
416
- const PressDocFooterLastUpdated_vue_vue_type_style_index_0_scoped_199a2fc5_lang = "";
417
- const _sfc_setup$4 = _sfc_main$4.setup;
418
- _sfc_main$4.setup = (props, ctx) => {
419
- const ssrContext = useSSRContext();
420
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../../valaxy-theme-press/components/PressDocFooterLastUpdated.vue");
421
- return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
422
- };
423
- const __unplugin_components_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-199a2fc5"]]);
424
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
425
- __name: "PressDocFooter",
426
- __ssrInlineRender: true,
427
- setup(__props) {
428
- const editLink = useEditLink();
429
- const { t } = useI18n();
430
- return (_ctx, _push, _parent, _attrs) => {
431
- const _component_PressDocFooterLastUpdated = __unplugin_components_0$1;
432
- _push(`<div${ssrRenderAttrs(mergeProps({
433
- flex: "",
434
- justify: "between",
435
- text: "sm"
436
- }, _attrs))}><a flex items="center" class="decoration-none!"${ssrRenderAttr("href", unref(editLink).url)} target="_blank"><div i-ri-external-link-line></div><span ml-1>${ssrInterpolate(unref(editLink).text || unref(t)("tooltip.edit_this_page"))}</span></a>`);
437
- _push(ssrRenderComponent(_component_PressDocFooterLastUpdated, null, null, _parent));
438
- _push(`</div>`);
439
- };
440
- }
441
- });
442
- const _sfc_setup$3 = _sfc_main$3.setup;
443
- _sfc_main$3.setup = (props, ctx) => {
444
- const ssrContext = useSSRContext();
445
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../../valaxy-theme-press/components/PressDocFooter.vue");
446
- return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
447
- };
448
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
449
- __name: "ValaxyDecrypt",
450
- __ssrInlineRender: true,
451
- props: {
452
- encryptedContent: {}
453
- },
454
- setup(__props) {
455
- const password = ref("");
456
- const decryptedContent = ref("");
457
- const hasError = ref(false);
458
- useDecrypt();
459
- const ValaxyDeprecatedContent = defineComponent({
460
- name: "ValaxyDeprecatedContent",
461
- props: {
462
- html: String
463
- },
464
- render() {
465
- const content = `<div>${this.html}</div>`;
466
- return h({
467
- setup: () => {
468
- const fm = useFrontmatter();
469
- return {
470
- frontmatter: fm
471
- };
472
- },
473
- template: content
474
- });
475
- }
476
- });
477
- const hasWarning = ref(false);
478
- onMounted(() => {
479
- if (location.protocol !== "https:")
480
- hasWarning.value = true;
481
- });
482
- return (_ctx, _push, _parent, _attrs) => {
483
- _push(`<div${ssrRenderAttrs(_attrs)}>`);
484
- if (!decryptedContent.value) {
485
- _push(`<div w-full pt-14 pb-10><div class="decrypt-password-container w-full sm:w-1/2" flex-center m-auto relative><input${ssrRenderAttr("value", password.value)} w-full border pl-5 pr-11 py-3 rounded hover:shadow transition type="password" placeholder="Enter password" class="${ssrRenderClass(hasError.value && "border-red")}"><div cursor-pointer absolute text-2xl i-ri-arrow-right-circle-line right-3 text-gray hover:text-black></div>`);
486
- if (hasWarning.value) {
487
- _push(`<div class="-bottom-6" absolute text-xs op="50"><a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API" target="_blank"><span>Web Crypto API</span></a> Only works in HTTPS </div>`);
488
- } else {
489
- _push(`<!---->`);
490
- }
491
- _push(`</div></div>`);
492
- } else {
493
- _push(`<div>`);
494
- _push(ssrRenderComponent(unref(ValaxyDeprecatedContent), { html: decryptedContent.value }, null, _parent));
495
- _push(`<div w-full text-center mt-8><button m-auto class="btn" font-bold> Encrypt Again </button></div></div>`);
496
- }
497
- _push(`</div>`);
498
- };
499
- }
500
- });
501
- const _sfc_setup$2 = _sfc_main$2.setup;
502
- _sfc_main$2.setup = (props, ctx) => {
503
- const ssrContext = useSSRContext();
504
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ValaxyDecrypt.vue");
505
- return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
506
- };
507
- function createLazyLoadInstance(options = {}) {
508
- return new LazyLoad({
509
- elements_selector: ".lazy",
510
- ...options
511
- });
512
- }
513
- function useVanillaLazyLoad() {
514
- const siteConfig = useSiteConfig();
515
- if (!siteConfig.value.vanillaLazyload.enable)
516
- return;
517
- onMounted(() => {
518
- createLazyLoadInstance(siteConfig.value.vanillaLazyload);
519
- });
520
- }
521
- function useCodeGroups() {
522
- if (isClient) {
523
- window.addEventListener("click", (e) => {
524
- var _a;
525
- const el = e.target;
526
- if (el.matches(".vp-code-group input")) {
527
- const group = (_a = el.parentElement) == null ? void 0 : _a.parentElement;
528
- if (!group)
529
- return;
530
- const i = Array.from(group.querySelectorAll("input")).indexOf(el);
531
- if (i < 0)
532
- return;
533
- const blocks = group.querySelector(".blocks");
534
- if (!blocks)
535
- return;
536
- const current = Array.from(blocks.children).find(
537
- (child) => child.classList.contains("active")
538
- );
539
- if (!current)
540
- return;
541
- const next = blocks.children[i];
542
- if (!next || current === next)
543
- return;
544
- current.classList.remove("active");
545
- next.classList.add("active");
546
- const label = group == null ? void 0 : group.querySelector(`label[for="${el.id}"]`);
547
- label == null ? void 0 : label.scrollIntoView({ block: "nearest" });
548
- }
549
- });
550
- }
551
- }
552
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
553
- __name: "ValaxyMd",
554
- __ssrInlineRender: true,
555
- props: {
556
- frontmatter: {},
557
- excerpt: {}
558
- },
559
- setup(__props) {
560
- const props = __props;
561
- const { t } = useI18n();
562
- const contentRef = ref();
563
- onContentUpdated(() => {
564
- wrapTable(contentRef.value);
565
- });
566
- onMounted(() => {
567
- runContentUpdated();
568
- });
569
- onUpdated(() => {
570
- runContentUpdated();
571
- });
572
- if (props.frontmatter.aplayer)
573
- useAplayer();
574
- if (props.frontmatter.codepen)
575
- useCodePen();
576
- useCopyCode();
577
- useCodeGroups();
578
- if (typeof props.frontmatter.medium_zoom === "undefined" || props.frontmatter.medium_zoom)
579
- useMediumZoom();
580
- useVanillaLazyLoad();
581
- return (_ctx, _push, _parent, _attrs) => {
582
- const _component_ValaxyDecrypt = _sfc_main$2;
583
- if (_ctx.$slots.default) {
584
- _push(`<article${ssrRenderAttrs(mergeProps({
585
- class: _ctx.frontmatter.markdown !== false && "markdown-body"
586
- }, _attrs))}>`);
587
- if (_ctx.frontmatter.encryptedContent) {
588
- _push(ssrRenderComponent(_component_ValaxyDecrypt, {
589
- "encrypted-content": _ctx.frontmatter.encryptedContent
590
- }, null, _parent));
591
- } else {
592
- ssrRenderSlot(_ctx.$slots, "default", {
593
- ref_key: "contentRef",
594
- ref: contentRef,
595
- onVnodeUpdated: unref(runContentUpdated)
596
- }, null, _push, _parent);
597
- }
598
- if (_ctx.frontmatter.url) {
599
- _push(`<div text="center"><a${ssrRenderAttr("href", _ctx.frontmatter.url)} class="post-link-btn shadow hover:shadow-md" rounded target="_blank" m="b-4">${ssrInterpolate(unref(t)("post.view_link"))}</a></div>`);
600
- } else {
601
- _push(`<!---->`);
602
- }
603
- if (_ctx.frontmatter.end !== void 0) {
604
- ssrRenderSlot(_ctx.$slots, "end", {}, () => {
605
- _push(`<div m="y-4" class="end flex justify-center items-center"><hr class="line inline-flex" w="full" m="!y-2"><span p="x-4" font="bold" class="whitespace-nowrap">${ssrInterpolate(_ctx.frontmatter.end ? "Q.E.D." : "To Be Continued.")}</span><hr class="line inline-flex" w="full" m="!y-2"></div>`);
606
- }, _push, _parent);
607
- } else {
608
- _push(`<!---->`);
609
- }
610
- _push(`</article>`);
611
- } else {
612
- _push(`<!---->`);
613
- }
614
- };
615
- }
616
- });
617
- const ValaxyMd_vue_vue_type_style_index_0_lang = "";
618
- const _sfc_setup$1 = _sfc_main$1.setup;
619
- _sfc_main$1.setup = (props, ctx) => {
620
- const ssrContext = useSSRContext();
621
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ValaxyMd.vue");
622
- return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
623
- };
624
- const targetPadding = 0;
625
- const _sfc_main = /* @__PURE__ */ defineComponent({
626
- __name: "ValaxyMain",
627
- __ssrInlineRender: true,
628
- props: {
629
- frontmatter: {},
630
- data: {}
631
- },
632
- setup(__props) {
633
- const siteConfig = useSiteConfig();
634
- const frontmatter = useFrontmatter();
635
- const { hasSidebar } = useSidebar();
636
- const isHome = useLayout("home");
637
- const layout = useLayout();
638
- const { locale } = useI18n();
639
- const localeTitle = computed(() => getLocaleTitle(locale.value, frontmatter.value));
640
- const route = useRoute();
641
- nextTick(() => {
642
- if (route.hash) {
643
- setTimeout(() => {
644
- scrollTo(document.body, route.hash, {
645
- smooth: true,
646
- targetPadding
647
- });
648
- }, 0);
649
- }
650
- });
651
- return (_ctx, _push, _parent, _attrs) => {
652
- const _component_ValaxyMd = _sfc_main$1;
653
- const _component_PressDocFooter = _sfc_main$3;
654
- const _component_PressAside = _sfc_main$5;
655
- _push(`<main${ssrRenderAttrs(mergeProps({
656
- class: ["press-main flex", {
657
- "has-sidebar": unref(hasSidebar) && unref(layout) !== "post"
658
- }]
659
- }, _attrs))} data-v-78f2f1db><div w="full" flex="~" class="${ssrRenderClass([{
660
- "px-6 md:pl-12": unref(hasSidebar),
661
- "has-aside": !unref(isHome)
662
- }, "relative"])}" p="t-4" data-v-78f2f1db><div class="container" flex="~ grow" justify="between" data-v-78f2f1db>`);
663
- ssrRenderSlot(_ctx.$slots, "main", {}, () => {
664
- _push(`<div w="full" class="${ssrRenderClass([{ "m-auto": !unref(hasSidebar) }, "vp-doc content"])}" flex="~ col grow" p="lt-md:0" data-v-78f2f1db>`);
665
- ssrRenderSlot(_ctx.$slots, "main-header", {}, null, _push, _parent);
666
- ssrRenderSlot(_ctx.$slots, "main-header-after", {}, null, _push, _parent);
667
- ssrRenderSlot(_ctx.$slots, "main-content", {}, () => {
668
- _push(`<template>`);
669
- _push(ssrRenderComponent(_component_ValaxyMd, {
670
- class: "prose mx-auto w-full max-w-4xl",
671
- frontmatter: unref(frontmatter)
672
- }, {
673
- default: withCtx((_, _push2, _parent2, _scopeId) => {
674
- if (_push2) {
675
- if (unref(hasSidebar) && !unref(isHome) && unref(frontmatter).title) {
676
- _push2(`<h1${ssrRenderAttr("id", unref(frontmatter).title)} tabindex="-1" data-v-78f2f1db${_scopeId}>${ssrInterpolate(localeTitle.value)} <a class="header-anchor"${ssrRenderAttr("href", `#${unref(frontmatter).title}`)} aria-hidden="true" data-v-78f2f1db${_scopeId}></a></h1>`);
677
- } else {
678
- _push2(`<!---->`);
679
- }
680
- ssrRenderSlot(_ctx.$slots, "main-content-md", {}, null, _push2, _parent2, _scopeId);
681
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push2, _parent2, _scopeId);
682
- } else {
683
- return [
684
- unref(hasSidebar) && !unref(isHome) && unref(frontmatter).title ? (openBlock(), createBlock("h1", {
685
- key: 0,
686
- id: unref(frontmatter).title,
687
- tabindex: "-1"
688
- }, [
689
- createTextVNode(
690
- toDisplayString(localeTitle.value) + " ",
691
- 1
692
- /* TEXT */
693
- ),
694
- createVNode("a", {
695
- class: "header-anchor",
696
- href: `#${unref(frontmatter).title}`,
697
- "aria-hidden": "true"
698
- }, null, 8, ["href"])
699
- ], 8, ["id"])) : createCommentVNode("v-if", true),
700
- renderSlot(_ctx.$slots, "main-content-md", {}, void 0, true),
701
- renderSlot(_ctx.$slots, "default", {}, void 0, true)
702
- ];
703
- }
704
- }),
705
- _: 3
706
- /* FORWARDED */
707
- }, _parent));
708
- _push(`</template>`);
709
- if (!unref(isHome)) {
710
- _push(ssrRenderComponent(_component_PressDocFooter, {
711
- class: "pb-8 max-w-4xl",
712
- w: "full",
713
- m: "auto"
714
- }, null, _parent));
715
- } else {
716
- _push(`<!---->`);
717
- }
718
- ssrRenderSlot(_ctx.$slots, "main-content-after", {}, null, _push, _parent);
719
- }, _push, _parent);
720
- _push(`</div>`);
721
- ssrRenderSlot(_ctx.$slots, "main-nav-before", {}, null, _push, _parent);
722
- ssrRenderSlot(_ctx.$slots, "main-nav", {}, null, _push, _parent);
723
- ssrRenderSlot(_ctx.$slots, "main-nav-after", {}, null, _push, _parent);
724
- if (unref(siteConfig).comment.enable && unref(frontmatter).comment !== false) {
725
- ssrRenderSlot(_ctx.$slots, "comment", {}, null, _push, _parent);
726
- } else {
727
- _push(`<!---->`);
728
- }
729
- ssrRenderSlot(_ctx.$slots, "footer", {}, null, _push, _parent);
730
- }, _push, _parent);
731
- ssrRenderSlot(_ctx.$slots, "aside", {}, () => {
732
- if (!unref(isHome)) {
733
- _push(ssrRenderComponent(_component_PressAside, null, null, _parent));
734
- } else {
735
- _push(`<!---->`);
736
- }
737
- }, _push, _parent);
738
- _push(`</div></div></main>`);
739
- };
740
- }
741
- });
742
- const ValaxyMain_vue_vue_type_style_index_0_scoped_78f2f1db_lang = "";
743
- const _sfc_setup = _sfc_main.setup;
744
- _sfc_main.setup = (props, ctx) => {
745
- const ssrContext = useSSRContext();
746
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../../valaxy-theme-press/components/ValaxyMain.vue");
747
- return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
748
- };
749
- const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-78f2f1db"]]);
750
- export {
751
- __unplugin_components_0 as _
752
- };