mirror of https://github.com/YunYouJun/valaxy
feat(theme-press): basic layout & home
This commit is contained in:
parent
f8c04afdc4
commit
ce85edc7de
|
@ -1,12 +0,0 @@
|
|||
<script lang="ts" setup>
|
||||
import { useCategory, usePageList } from 'valaxy'
|
||||
|
||||
const pages = usePageList()
|
||||
const categories = useCategory('Docs', pages.value)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div text="left" m="2">
|
||||
<YunCategories :categories="categories.children" :collapsable="false" />
|
||||
</div>
|
||||
</template>
|
|
@ -1,7 +1,6 @@
|
|||
<template>
|
||||
<Layout>
|
||||
<template #sidebar-child>
|
||||
<DocsNav />
|
||||
<br>
|
||||
<YunConfig />
|
||||
</template>
|
||||
|
|
|
@ -4,9 +4,6 @@ import Home from 'valaxy-theme-yun/layouts/home.vue'
|
|||
|
||||
<template>
|
||||
<Home>
|
||||
<template #board>
|
||||
<DocsBoard />
|
||||
</template>
|
||||
<template #footer>
|
||||
<UpyunSupport />
|
||||
</template>
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
---
|
||||
layout: docs
|
||||
title: Docs
|
||||
title_zh: 文档
|
||||
end: false
|
||||
categories:
|
||||
- Docs
|
||||
- Guide
|
||||
markdown: false
|
||||
---
|
||||
|
||||
<DocsHome />
|
|
@ -1,3 +0,0 @@
|
|||
# styles
|
||||
|
||||
You can custom styles in `styles/index.scss`.
|
|
@ -1,32 +0,0 @@
|
|||
.gradient-text {
|
||||
background-clip: text;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.sese-btn {
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
|
||||
@apply from-blue-500 to-blue-700;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0;
|
||||
transition: all 0.4s;
|
||||
z-index: -1;
|
||||
|
||||
@apply rounded bg-gradient-to-r from-red-500 to-red-700;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
&::before {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
// @use "./markdown.scss" as *;
|
||||
@use "./docs.scss";
|
|
@ -1,2 +0,0 @@
|
|||
// :root {}
|
||||
// html.dark{}
|
|
@ -10,16 +10,29 @@ declare module '@vue/runtime-core' {
|
|||
404: typeof import('./../packages/valaxy-theme-press/layouts/404.vue')['default']
|
||||
AppLink: typeof import('./../packages/valaxy/client/components/AppLink.vue')['default']
|
||||
Default: typeof import('./../packages/valaxy-theme-press/layouts/default.vue')['default']
|
||||
Docs: typeof import('./../packages/valaxy-theme-press/layouts/docs.vue')['default']
|
||||
DocsBoard: typeof import('./../packages/valaxy-theme-press/components/DocsBoard.vue')['default']
|
||||
DocsHome: typeof import('./../packages/valaxy-theme-press/components/DocsHome.vue')['default']
|
||||
Home: typeof import('./../packages/valaxy-theme-press/layouts/home.vue')['default']
|
||||
Layout: typeof import('./../packages/valaxy-theme-press/layouts/layout.vue')['default']
|
||||
Post: typeof import('./../packages/valaxy-theme-press/layouts/post.vue')['default']
|
||||
PressArticle: typeof import('./../packages/valaxy-theme-press/components/PressArticle.vue')['default']
|
||||
PressArticleCard: typeof import('./../packages/valaxy-theme-press/components/PressArticleCard.vue')['default']
|
||||
PressAuthor: typeof import('./../packages/valaxy-theme-press/components/PressAuthor.vue')['default']
|
||||
PressButton: typeof import('./../packages/valaxy-theme-press/components/PressButton.vue')['default']
|
||||
PressCategories: typeof import('./../packages/valaxy-theme-press/components/PressCategories.vue')['default']
|
||||
PressCategory: typeof import('./../packages/valaxy-theme-press/components/PressCategory.vue')['default']
|
||||
PressDate: typeof import('./../packages/valaxy-theme-press/components/PressDate.vue')['default']
|
||||
PressFeature: typeof import('./../packages/valaxy-theme-press/components/PressFeature.vue')['default']
|
||||
PressFeatures: typeof import('./../packages/valaxy-theme-press/components/PressFeatures.vue')['default']
|
||||
PressHeader: typeof import('./../packages/valaxy-theme-press/components/PressHeader.vue')['default']
|
||||
PressHome: typeof import('./../packages/valaxy-theme-press/components/PressHome.vue')['default']
|
||||
PressHomeFeatures: typeof import('./../packages/valaxy-theme-press/components/PressHomeFeatures.vue')['default']
|
||||
PressHomeHero: typeof import('./../packages/valaxy-theme-press/components/PressHomeHero.vue')['default']
|
||||
PressNav: typeof import('./../packages/valaxy-theme-press/components/PressNav.vue')['default']
|
||||
PressNavBar: typeof import('./../packages/valaxy-theme-press/components/navbar/PressNavBar.vue')['default']
|
||||
PressPostList: typeof import('./../packages/valaxy-theme-press/components/PressPostList.vue')['default']
|
||||
PressSidebar: typeof import('./../packages/valaxy-theme-press/components/PressSidebar.vue')['default']
|
||||
PressToggleLocale: typeof import('./../packages/valaxy-theme-press/components/PressToggleLocale.vue')['default']
|
||||
README: typeof import('./../packages/valaxy/client/layouts/README.md')['default']
|
||||
RouterLink: typeof import('vue-router')['RouterLink']
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
title: FAQ
|
||||
title_zh: 常见问题
|
||||
layout: docs
|
||||
categories:
|
||||
- Docs
|
||||
- Dev
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
title: Participate in Development
|
||||
title_zh: 参与开发
|
||||
layout: docs
|
||||
categories:
|
||||
- Docs
|
||||
- Dev
|
|
@ -3,7 +3,6 @@ title: FAQ
|
|||
categories:
|
||||
- Docs
|
||||
- Guide
|
||||
layout: docs
|
||||
end: false
|
||||
---
|
||||
|
|
@ -4,7 +4,6 @@ title_zh: 配置
|
|||
categories:
|
||||
- Docs
|
||||
- Guide
|
||||
layout: docs
|
||||
end: false
|
||||
---
|
||||
|
|
@ -4,7 +4,6 @@ title: Container
|
|||
categories:
|
||||
- Docs
|
||||
- Guide
|
||||
layout: docs
|
||||
end: false
|
||||
---
|
||||
|
|
@ -3,7 +3,6 @@ title: 自定义扩展
|
|||
categories:
|
||||
- Docs
|
||||
- Guide
|
||||
layout: docs
|
||||
end: false
|
||||
---
|
||||
|
|
@ -4,7 +4,6 @@ title_zh: 亮点
|
|||
categories:
|
||||
- Docs
|
||||
- Guide
|
||||
layout: docs
|
||||
end: false
|
||||
---
|
||||
|
|
@ -4,7 +4,6 @@ title_zh: 开始
|
|||
categories:
|
||||
- Docs
|
||||
- Guide
|
||||
layout: docs
|
||||
end: false
|
||||
---
|
||||
|
|
@ -4,7 +4,6 @@ title_zh: 单页 i18n
|
|||
categories:
|
||||
- Docs
|
||||
- Guide
|
||||
layout: docs
|
||||
---
|
||||
|
||||
::: tip
|
|
@ -4,7 +4,6 @@ title_zh: 指南
|
|||
categories:
|
||||
- Docs
|
||||
- Guide
|
||||
layout: docs
|
||||
end: false
|
||||
---
|
||||
|
|
@ -4,7 +4,6 @@ title_zh: 第三方
|
|||
categories:
|
||||
- Docs
|
||||
- Guide
|
||||
layout: docs
|
||||
end: false
|
||||
aplayer: true
|
||||
---
|
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
layout: home
|
||||
title: Valaxy
|
||||
titleTemplate: Next Generation Static Blog Framework
|
||||
|
||||
hero:
|
||||
name: Valaxy
|
||||
text: Next Generation Static Blog Framework
|
||||
tagline: Simple, powerful, and performant. Meet the modern BLOG framework you've always wanted.
|
||||
actions:
|
||||
- theme: brand
|
||||
text: Get Started
|
||||
link: /guide/getting-started
|
||||
- theme: alt
|
||||
text: View GitHub
|
||||
link: https://github.com/YunYouJun/valaxy
|
||||
|
||||
# todo, rewrite with valaxy
|
||||
features:
|
||||
- title: "Vite: The DX that can't be beat"
|
||||
details: Feel the speed of Vite. Instant server start and lightning fast HMR that stays fast regardless of the app size.
|
||||
- title: Designed to be simplicity first
|
||||
details: With Markdown-centered content, it's built to help you focus on writing and deployed with minimum configuration.
|
||||
- title: Power of Vue meets Markdown
|
||||
details: Enhance your content with all the features of Vue in Markdown, while being able to customize your site with Vue.
|
||||
- title: Fully static yet still dynamic
|
||||
details: Go wild with true SSG + SPA architecture. Static on page load, but engage users with 100% interactivity from there.
|
||||
---
|
||||
|
||||
<div m="t-8" class="text-center" text="4xl">WORK IN PROGRESS</div>
|
|
@ -5,7 +5,6 @@ end: false
|
|||
categories:
|
||||
- Docs
|
||||
- Theme
|
||||
layout: docs
|
||||
---
|
||||
|
||||
作为博客,用户通常会有评论的需求。
|
|
@ -4,7 +4,6 @@ title_zh: 如何创建一个 Valaxy 主题
|
|||
categories:
|
||||
- Docs
|
||||
- Theme
|
||||
layout: docs
|
||||
end: false
|
||||
---
|
||||
|
||||
|
@ -55,6 +54,10 @@ export interface ValaxyPluginOptions {
|
|||
}
|
||||
```
|
||||
|
||||
## ValaxyMain
|
||||
|
||||
你可以从 `ValaxyMain` 的 `props` 中获取 `frontmatter` 与 `pageData`。
|
||||
|
||||
## Third Plugin
|
||||
|
||||
- [关于评论](/docs/theme/comment)
|
|
@ -55,7 +55,7 @@
|
|||
"rimraf": "^3.0.2",
|
||||
"simple-git-hooks": "^2.8.0",
|
||||
"tsup": "^6.1.3",
|
||||
"tsx": "^3.7.1",
|
||||
"tsx": "^3.8.0",
|
||||
"typescript": "^4.7.4",
|
||||
"valaxy": "workspace:*",
|
||||
"valaxy-theme-press": "workspace:*",
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
# valaxy-theme-press
|
||||
|
||||
This is a theme for valaxy docs.
|
||||
|
||||
## Reference
|
||||
|
||||
- [vitepress](https://vitepress.vuejs.org/)
|
||||
- [nextjs](https://nextjs.org/)
|
|
@ -0,0 +1,33 @@
|
|||
<script lang="ts" setup>
|
||||
import { computed } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
const props = defineProps<{
|
||||
theme: 'brand' | 'alt'
|
||||
link: string
|
||||
text: string
|
||||
}>()
|
||||
|
||||
const router = useRouter()
|
||||
|
||||
const classes = computed(() => {
|
||||
const arr = []
|
||||
if (props.theme === 'brand')
|
||||
arr.push('from-blue-500', 'to-blue-700')
|
||||
else
|
||||
arr.push('from-gray-600', 'to-stone-700')
|
||||
|
||||
return arr
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<button
|
||||
m="2"
|
||||
:class="classes"
|
||||
class="sese-btn btn" bg="gradient-to-r"
|
||||
@click="router.push(link)"
|
||||
>
|
||||
{{ text }}
|
||||
</button>
|
||||
</template>
|
|
@ -0,0 +1,50 @@
|
|||
<script lang="ts" setup>
|
||||
import type { Categories } from 'valaxy'
|
||||
import { ref } from 'vue'
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
categories: Categories
|
||||
/**
|
||||
* 当前层级
|
||||
*/
|
||||
level?: number
|
||||
displayCategory?: (category: string) => void
|
||||
collapsable?: boolean
|
||||
}>(), {
|
||||
level: 0,
|
||||
collapsable: true,
|
||||
})
|
||||
|
||||
const collapsable = ref(props.collapsable)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<ul v-for="category, key in Object.fromEntries(categories)" :key="key" class="category-list" m="l-4">
|
||||
<PressCategory :name="key.toString()" :category="category" :level="level + 1" :display-category="displayCategory" :collapsable="collapsable" />
|
||||
</ul>
|
||||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
.post-list-item {
|
||||
a {
|
||||
color: var(--va-c-text);
|
||||
|
||||
&:hover {
|
||||
color: var(--va-c-primary);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.category-list-item {
|
||||
.folder-action {
|
||||
&:hover {
|
||||
color: var(--va-c-primary);
|
||||
}
|
||||
}
|
||||
.category-name {
|
||||
&:hover {
|
||||
color: var(--va-c-primary);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,52 @@
|
|||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import type { Category, Post } from 'valaxy'
|
||||
import { isParentCategory } from 'valaxy'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
name: string
|
||||
// to eliminate the warning
|
||||
category: Category
|
||||
level?: number
|
||||
displayCategory?: (category: string) => void
|
||||
|
||||
/**
|
||||
* collapse children
|
||||
*/
|
||||
collapsable?: boolean
|
||||
}>(), {
|
||||
collapsable: true,
|
||||
})
|
||||
|
||||
const collapsable = ref(props.collapsable)
|
||||
const { t, locale } = useI18n()
|
||||
|
||||
const getTitle = (post: Post | any) => {
|
||||
const lang = locale.value === 'zh-CN' ? 'zh' : locale.value
|
||||
return post[`title_${lang}`] ? post[`title_${lang}`] : post.title
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<li v-if="category.total" class="category-list-item inline-flex items-center cursor-pointer">
|
||||
<span class="folder-action inline-flex" @click="collapsable = !collapsable">
|
||||
<div v-if="collapsable" i-ri-folder-add-line />
|
||||
<div v-else style="color:var(--va-c-primary)" i-ri-folder-reduce-line /></span>
|
||||
<span class="category-name" m="l-1" @click="displayCategory ? displayCategory(name) : null">
|
||||
{{ name === 'Uncategorized' ? t('category.uncategorized') : name }} [{{ category.total }}]
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<template v-if="!collapsable">
|
||||
<ul v-if="!isParentCategory(category)">
|
||||
<li v-for="post, i in category.posts" :key="i" class="post-list-item" m="l-4">
|
||||
<router-link v-if="post.title" :to="post.path || ''" class="inline-flex items-center">
|
||||
<div i-ri-file-text-line />
|
||||
<span m="l-1" font="serif black">{{ getTitle(post) }}</span>
|
||||
</router-link>
|
||||
</li>
|
||||
</ul>
|
||||
<PressCategories v-else :categories="category.children" :display-category="displayCategory" :collapsable="collapsable" />
|
||||
</template>
|
||||
</template>
|
|
@ -0,0 +1,61 @@
|
|||
<script setup lang="ts">
|
||||
import type { Feature } from '../types'
|
||||
|
||||
defineProps<{
|
||||
feature: Feature
|
||||
}>()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<article class="press-feature">
|
||||
<div v-if="feature.icon" class="icon">
|
||||
{{ feature.icon }}
|
||||
</div>
|
||||
<h2 class="title">
|
||||
{{ feature.title }}
|
||||
</h2>
|
||||
<p class="details">
|
||||
{{ feature.details }}
|
||||
</p>
|
||||
</article>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.press-feature {
|
||||
border: 1px solid var(--vp-c-bg-soft);
|
||||
border-radius: 12px;
|
||||
padding: 24px;
|
||||
height: 100%;
|
||||
background-color: var(--vp-c-bg-soft);
|
||||
}
|
||||
|
||||
.icon {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
border-radius: 6px;
|
||||
background-color: var(--vp-c-gray-light-4);
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.dark .icon {
|
||||
background-color: var(--vp-c-bg);
|
||||
}
|
||||
|
||||
.title {
|
||||
line-height: 24px;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.details {
|
||||
padding-top: 8px;
|
||||
line-height: 24px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: var(--vp-c-text-2);
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,26 @@
|
|||
<script lang="ts" setup>
|
||||
import { computed } from 'vue'
|
||||
import type { Feature } from '../types'
|
||||
|
||||
const props = defineProps<{
|
||||
features: Feature[]
|
||||
}>()
|
||||
|
||||
const grid = computed(() => {
|
||||
const length = props.features.length
|
||||
if (length <= 3)
|
||||
return `grid-cols-1 sm:grid-cols-2 md:grid-cols-${length}`
|
||||
else
|
||||
return 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4'
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="press-features">
|
||||
<div class="container grid" :class="[grid]">
|
||||
<div v-for="feature in features" :key="feature.title" class="inline-grid">
|
||||
<PressFeature :feature="feature" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
|
@ -1,26 +0,0 @@
|
|||
<script lang="ts" setup>
|
||||
import { useConfig } from 'valaxy'
|
||||
|
||||
const config = useConfig()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="pt-6 pb-8 space-y-2 md:space-y-5">
|
||||
<h1
|
||||
class="
|
||||
text-3xl
|
||||
leading-9
|
||||
font-extrabold
|
||||
text-gray-900
|
||||
tracking-tight
|
||||
sm:text-4xl sm:leading-10
|
||||
md:text-6xl md:leading-14
|
||||
"
|
||||
>
|
||||
{{ config.title }}
|
||||
</h1>
|
||||
<p class="text-lg leading-7 text-gray-500">
|
||||
{{ config.subtitle }}
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
|
@ -0,0 +1,21 @@
|
|||
<template>
|
||||
<div class="press-Home">
|
||||
<slot name="home-hero-before" />
|
||||
<PressHomeHero />
|
||||
<slot name="home-hero-after" />
|
||||
|
||||
<slot name="home-features-before" />
|
||||
<PressHomeFeatures />
|
||||
<slot name="home-features-after" />
|
||||
|
||||
<slot>
|
||||
<router-view />
|
||||
</slot>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://sponsors.yunyoujun.cn">
|
||||
<img src="https://sponsors.yunyoujun.cn/sponsors.svg">
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
|
@ -0,0 +1,12 @@
|
|||
<script setup lang="ts">
|
||||
import { useFrontmatter } from 'valaxy'
|
||||
const fm = useFrontmatter()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PressFeatures
|
||||
v-if="fm.features"
|
||||
class="press-home-features"
|
||||
:features="fm.features"
|
||||
/>
|
||||
</template>
|
|
@ -1,12 +1,17 @@
|
|||
<script lang="ts" setup>
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useFrontmatter } from 'valaxy'
|
||||
import PressButton from './PressButton.vue'
|
||||
|
||||
const router = useRouter()
|
||||
const fm = useFrontmatter()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<h1 m="t-10" text="center">
|
||||
<span text="8xl" font="black" class="gradient-text from-purple-800 to-blue-500" bg="gradient-to-r">Valaxy</span>
|
||||
<span text="8xl" font="black" class="gradient-text from-purple-800 to-blue-500" bg="gradient-to-r">
|
||||
{{ fm.title }}
|
||||
</span>
|
||||
<br>
|
||||
<small opacity="75">LOGO NOT READY</small>
|
||||
</h1>
|
||||
|
@ -18,16 +23,14 @@ const router = useRouter()
|
|||
</h1>
|
||||
|
||||
<div p="2" text="center">
|
||||
<button class="sese-btn btn" bg="gradient-to-r" @click="router.push('/docs/guide/getting-started')">
|
||||
Get Started
|
||||
</button>
|
||||
<PressButton
|
||||
v-for="action in fm.hero.actions"
|
||||
:key="action.link"
|
||||
:theme="action.theme"
|
||||
:link="action.link"
|
||||
:text="action.text"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://sponsors.yunyoujun.cn">
|
||||
<img src="https://sponsors.yunyoujun.cn/sponsors.svg">
|
||||
</a>
|
||||
</p>
|
||||
</template>
|
|
@ -0,0 +1,42 @@
|
|||
<script lang="ts" setup>
|
||||
import { useCategory, usePageList } from 'valaxy'
|
||||
|
||||
const pages = usePageList()
|
||||
const categories = useCategory('Docs', pages.value)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="press-sidebar open shadow-lg">
|
||||
<div text="left" m="2">
|
||||
<PressCategories :categories="categories.children" :collapsable="false" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
.press-sidebar {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: var(--pr-z-index-sidebar);
|
||||
padding: 32px 32px 96px;
|
||||
width: calc(100vw - 64px);
|
||||
max-width: 320px;
|
||||
background-color: var(--va-c-bg);
|
||||
opacity: 0;
|
||||
box-shadow: var(--vp-c-shadow-3);
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
transform: translateX(-100%);
|
||||
transition: opacity 0.5s, transform 0.25s ease;
|
||||
|
||||
&.open {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: translateX(0);
|
||||
transition: opacity 0.25s,
|
||||
transform 0.5s cubic-bezier(0.19, 1, 0.22, 1);
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -1,16 +1,22 @@
|
|||
<script lang="ts" setup>
|
||||
import type { PageData, Post } from 'valaxy'
|
||||
import { useConfig } from 'valaxy'
|
||||
import { useConfig, useSidebar } from 'valaxy'
|
||||
|
||||
defineProps<{
|
||||
frontmatter: Post
|
||||
data?: PageData
|
||||
}>()
|
||||
const config = useConfig()
|
||||
|
||||
const { hasSidebar } = useSidebar()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<main>
|
||||
<main
|
||||
class="press-main" :class="{
|
||||
'has-sidebar': hasSidebar,
|
||||
}"
|
||||
>
|
||||
<div w="full" flex="~">
|
||||
<slot name="main">
|
||||
<div class="content" flex="~ col grow" w="full" p="l-4 lt-md:0">
|
||||
|
@ -43,3 +49,11 @@ const config = useConfig()
|
|||
<slot name="aside" />
|
||||
</main>
|
||||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
.press-main {
|
||||
&.has-sidebar {
|
||||
padding-left: var(--pr-sidebar-width);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<template>
|
||||
<Layout>
|
||||
<PressSidebar />
|
||||
|
||||
<router-view />
|
||||
</Layout>
|
||||
</template>
|
||||
|
|
|
@ -1,11 +1,5 @@
|
|||
<template>
|
||||
<Layout>
|
||||
<div class="divide-y divide-gray-200">
|
||||
<PressHeader />
|
||||
|
||||
<slot>
|
||||
<router-view />
|
||||
</slot>
|
||||
</div>
|
||||
<PressHome />
|
||||
</Layout>
|
||||
</template>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<template>
|
||||
<div class="antialiased">
|
||||
<div class="max-w-3xl mx-auto px-4 sm:px-6 xl:max-w-5xl xl:px-0">
|
||||
<div class="layout antialiased">
|
||||
<div class="max-w-3xl mx-auto sm:px-6 xl:max-w-5xl xl:px-0">
|
||||
<PressNav />
|
||||
</div>
|
||||
|
||||
<main class="max-w-3xl mx-auto px-4 sm:px-6 xl:max-w-5xl xl:px-0">
|
||||
<main class="max-w-3xl mx-auto sm:px-6 xl:max-w-5xl xl:px-0">
|
||||
<slot>
|
||||
<router-view v-slot="{ Component }">
|
||||
<component :is="Component">
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
<template>
|
||||
<PressPostList />
|
||||
</template>
|
||||
|
||||
<route lang="yaml">
|
||||
meta:
|
||||
layout: home
|
||||
</route>
|
|
@ -0,0 +1,4 @@
|
|||
:root {
|
||||
--pr-z-index-sidebar: 10;
|
||||
--pr-sidebar-width: 272px;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
.gradient-text {
|
||||
background-clip: text;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.sese-btn {
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
|
||||
@apply transition;
|
||||
|
||||
&:hover {
|
||||
@apply shadow;
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
@use "./helper.scss";
|
|
@ -0,0 +1,5 @@
|
|||
export interface Feature {
|
||||
icon?: string
|
||||
title: string
|
||||
details: string
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
export * from './home'
|
||||
|
||||
export namespace DocsTheme {
|
||||
export type Config = ThemeConfig
|
||||
export type Sidebar = any
|
||||
|
|
|
@ -69,7 +69,7 @@ const YunTwikoo = config.value.comment.waline.enable
|
|||
</slot>
|
||||
|
||||
<slot name="aside">
|
||||
<YunAside v-if="aside" :frontmatter="frontmatter" :data="data">
|
||||
<YunAside v-if="aside">
|
||||
<slot name="aside-custom" />
|
||||
</YunAside>
|
||||
</slot>
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
<script lang="ts" setup>
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import type { PageData, Post } from 'valaxy'
|
||||
import { useData, useFrontmatter } from 'valaxy'
|
||||
import { useAppStore } from 'valaxy/client/stores/app'
|
||||
|
||||
defineProps<{ frontmatter: Post; data: PageData }>()
|
||||
const frontmatter = useFrontmatter()
|
||||
const data = useData()
|
||||
const { t } = useI18n()
|
||||
const app = useAppStore()
|
||||
</script>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import { useRoute } from 'vue-router'
|
||||
import { computed } from 'vue'
|
||||
import { computed, inject } from 'vue'
|
||||
import { isClient } from '@vueuse/core'
|
||||
|
||||
import type { Post } from '../../types'
|
||||
import type { PageData, Post } from '../../types'
|
||||
import { useConfig } from '../config'
|
||||
|
||||
export function useFrontmatter() {
|
||||
|
@ -12,6 +12,15 @@ export function useFrontmatter() {
|
|||
return frontmatter
|
||||
}
|
||||
|
||||
/**
|
||||
* inject pageData
|
||||
* @returns
|
||||
*/
|
||||
export function useData(): PageData {
|
||||
const value = inject<PageData>('pageData', {} as any)
|
||||
return value
|
||||
}
|
||||
|
||||
/**
|
||||
* get full url
|
||||
*/
|
||||
|
|
|
@ -48,7 +48,7 @@ export function usePostList(params: {
|
|||
*/
|
||||
export function usePageList() {
|
||||
const router = useRouter()
|
||||
return computed(() => {
|
||||
return computed<Post[]>(() => {
|
||||
const routes = router.getRoutes()
|
||||
.map((i) => {
|
||||
return Object.assign({ path: i.path, excerpt: i.meta.excerpt }, i.meta.frontmatter)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { useFrontmatter } from 'valaxy'
|
||||
import type { Ref } from 'vue'
|
||||
import { onMounted, onUnmounted } from 'vue'
|
||||
import { computed, onMounted, onUnmounted, ref } from 'vue'
|
||||
|
||||
export function useActiveSidebarLinks(container: Ref<HTMLElement>, marker: Ref<HTMLElement>) {
|
||||
const onScroll = throttleAndDebounce(setActiveLink, 200)
|
||||
|
@ -111,3 +112,37 @@ function throttleAndDebounce(fn: () => void, delay: number): () => void {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* helper for sidebar
|
||||
*/
|
||||
export function useSidebar() {
|
||||
const isOpen = ref(false)
|
||||
const fm = useFrontmatter()
|
||||
const hasSidebar = computed(() => {
|
||||
return (
|
||||
fm.value.sidebar !== false
|
||||
&& fm.value.layout !== 'home'
|
||||
)
|
||||
})
|
||||
|
||||
function open() {
|
||||
isOpen.value = true
|
||||
}
|
||||
|
||||
function close() {
|
||||
isOpen.value = false
|
||||
}
|
||||
|
||||
function toggle() {
|
||||
isOpen.value ? close() : open()
|
||||
}
|
||||
|
||||
return {
|
||||
isOpen,
|
||||
hasSidebar,
|
||||
open,
|
||||
close,
|
||||
toggle,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
import valaxyConfig from '/@valaxyjs/config'
|
||||
// @ts-expect-error virtual module @valaxyjs/context
|
||||
import valaxyContext from '/@valaxyjs/context'
|
||||
import type { ComputedRef, InjectionKey, Ref } from 'vue'
|
||||
import type { ComputedRef, InjectionKey } from 'vue'
|
||||
import { computed, inject, readonly, shallowRef } from 'vue'
|
||||
// import type { RouteMeta } from 'vue-router'
|
||||
// fix build caused by pnpm
|
||||
// This is likely not portable. A type annotation is necessary.
|
||||
// https://github.com/microsoft/TypeScript/issues/42873
|
||||
import type { PageData, ValaxyConfig } from 'valaxy/types'
|
||||
import type { ValaxyConfig } from 'valaxy/types'
|
||||
|
||||
/**
|
||||
* parse valaxy config
|
||||
|
@ -28,7 +28,6 @@ export const valaxyConfigSymbol: InjectionKey<ComputedRef<ValaxyConfig>> = Symbo
|
|||
export const valaxyConfigRef = shallowRef<ValaxyConfig>(parse<ValaxyConfig>(valaxyConfig))
|
||||
|
||||
export const valaxyContextRef = shallowRef<ValaxyContext>(parse<ValaxyContext>(valaxyContext))
|
||||
// export const valaxyDataRef = shallowRef<PageData>(parse(valaxyConfig))
|
||||
|
||||
// hmr
|
||||
if (import.meta.hot) {
|
||||
|
@ -73,8 +72,3 @@ export function useThemeConfig<T = Record<string, any>>() {
|
|||
const config = useConfig<T>()
|
||||
return computed(() => config!.value.themeConfig)
|
||||
}
|
||||
|
||||
export interface ValaxyData<T = any> {
|
||||
page: Ref<PageData>
|
||||
theme: Ref<T>
|
||||
}
|
||||
|
|
|
@ -168,6 +168,7 @@ export async function createMarkdownToVueRenderFn(
|
|||
}
|
||||
}
|
||||
|
||||
// provide load
|
||||
const pageData: PageData = {
|
||||
title: inferTitle(frontmatter, content),
|
||||
titleTemplate: frontmatter.titleTemplate,
|
||||
|
@ -242,13 +243,16 @@ function genPageDataCode(tags: string[], data: PageData) {
|
|||
const isUsingTS = tags.findIndex(tag => scriptLangTsRE.test(tag)) > -1
|
||||
|
||||
const exportScript = `
|
||||
import { provide } from 'vue'
|
||||
const data = ${transformObject(data)}
|
||||
|
||||
export default {
|
||||
name:'${data.relativePath}',
|
||||
data() {
|
||||
return {
|
||||
frontmatter:${transformObject(data.frontmatter)},
|
||||
data: ${transformObject(data)}
|
||||
}
|
||||
return { data, frontmatter: data.frontmatter }
|
||||
},
|
||||
setup() {
|
||||
provide('pageData', data)
|
||||
}
|
||||
}`
|
||||
|
||||
|
|
|
@ -11,10 +11,11 @@ import Layouts from 'vite-plugin-vue-layouts'
|
|||
import Components from 'unplugin-vue-components/vite'
|
||||
import VueI18n from '@intlify/vite-plugin-vue-i18n'
|
||||
|
||||
import dayjs from 'dayjs'
|
||||
import type { ResolvedValaxyOptions, ValaxyPluginOptions, ValaxyServerOptions } from '../options'
|
||||
import { setupMarkdownPlugins } from '../markdown'
|
||||
// import { createMarkdownPlugin, excerpt_separator } from './markdown'
|
||||
import { formatMdDate } from '../utils/date'
|
||||
// import { formatMdDate } from '../utils/date'
|
||||
import { createUnocssPlugin } from './unocss'
|
||||
import { createConfigPlugin } from './extendConfig'
|
||||
import { createClientSetupPlugin } from './setupClient'
|
||||
|
@ -128,13 +129,30 @@ export async function ViteValaxyPlugins(
|
|||
const { data, excerpt } = matter(md, { excerpt_separator: '<!-- more -->' })
|
||||
|
||||
// todo, optimize it to cache or on demand
|
||||
await formatMdDate(
|
||||
data,
|
||||
path,
|
||||
options.config.date.format,
|
||||
options.config.lastUpdated,
|
||||
)
|
||||
// https://github.com/hannoeru/vite-plugin-pages/issues/257
|
||||
// returned route not be awaited
|
||||
// await formatMdDate(
|
||||
// data,
|
||||
// path,
|
||||
// options.config.date.format,
|
||||
// options.config.lastUpdated,
|
||||
// )
|
||||
const lastUpdated = options.config.lastUpdated
|
||||
const format = options.config.date.format
|
||||
if (!data.date)
|
||||
data.date = fs.statSync(path).mtime
|
||||
|
||||
// format
|
||||
data.date = dayjs(data.date).format(format)
|
||||
|
||||
if (lastUpdated) {
|
||||
if (!data.updated)
|
||||
data.updated = fs.statSync(path).ctime
|
||||
|
||||
data.updated = dayjs(data.updated).format(format)
|
||||
}
|
||||
|
||||
// set route meta
|
||||
route.meta = Object.assign(route.meta, {
|
||||
frontmatter: Object.assign(defaultFrontmatter, data),
|
||||
excerpt: excerpt ? mdIt.render(excerpt) : '',
|
||||
|
|
|
@ -8,7 +8,7 @@ import { getGitTimestamp } from './getGitTimestamp'
|
|||
* @returns
|
||||
*/
|
||||
export async function getCreatedTime(file: string): Promise<Date | number> {
|
||||
return await getGitTimestamp(file, 'created') || (await fs.stat(file)).ctime
|
||||
return (await getGitTimestamp(file, 'created')) || (await fs.stat(file)).ctime
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -17,7 +17,7 @@ export async function getCreatedTime(file: string): Promise<Date | number> {
|
|||
* @returns
|
||||
*/
|
||||
export async function getUpdatedTime(file: string): Promise<Date | number> {
|
||||
return await getGitTimestamp(file, 'created') || (await fs.stat(file)).mtime
|
||||
return (await getGitTimestamp(file, 'created')) || (await fs.stat(file)).mtime
|
||||
}
|
||||
|
||||
export async function formatMdDate(data: any, path: string, format = 'YYYY-MM-DD HH:mm:ss', lastUpdated = true) {
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
"is-installed-globally": "^0.4.0",
|
||||
"katex": "^0.16.0",
|
||||
"kolorist": "^1.5.1",
|
||||
"lru-cache": "^7.12.0",
|
||||
"lru-cache": "^7.13.0",
|
||||
"markdown-it": "^13.0.1",
|
||||
"markdown-it-anchor": "^8.6.4",
|
||||
"markdown-it-attrs": "^4.1.4",
|
||||
|
@ -91,7 +91,7 @@
|
|||
"markdown-it-task-lists": "^2.1.1",
|
||||
"nprogress": "^0.2.0",
|
||||
"open": "^8.4.0",
|
||||
"pinia": "^2.0.15",
|
||||
"pinia": "^2.0.16",
|
||||
"sass": "^1.53.0",
|
||||
"shiki": "^0.10.1",
|
||||
"star-markdown-css": "^0.4.0",
|
||||
|
|
265
pnpm-lock.yaml
265
pnpm-lock.yaml
|
@ -16,7 +16,7 @@ importers:
|
|||
rimraf: ^3.0.2
|
||||
simple-git-hooks: ^2.8.0
|
||||
tsup: ^6.1.3
|
||||
tsx: ^3.7.1
|
||||
tsx: ^3.8.0
|
||||
typescript: ^4.7.4
|
||||
valaxy: workspace:*
|
||||
valaxy-theme-press: workspace:*
|
||||
|
@ -37,7 +37,7 @@ importers:
|
|||
rimraf: 3.0.2
|
||||
simple-git-hooks: 2.8.0
|
||||
tsup: 6.1.3_typescript@4.7.4
|
||||
tsx: 3.7.1
|
||||
tsx: 3.8.0
|
||||
typescript: 4.7.4
|
||||
valaxy: link:packages/valaxy
|
||||
valaxy-theme-press: link:packages/valaxy-theme-press
|
||||
|
@ -119,7 +119,7 @@ importers:
|
|||
is-installed-globally: ^0.4.0
|
||||
katex: ^0.16.0
|
||||
kolorist: ^1.5.1
|
||||
lru-cache: ^7.12.0
|
||||
lru-cache: ^7.13.0
|
||||
markdown-it: ^13.0.1
|
||||
markdown-it-anchor: ^8.6.4
|
||||
markdown-it-attrs: ^4.1.4
|
||||
|
@ -130,7 +130,7 @@ importers:
|
|||
markdown-it-task-lists: ^2.1.1
|
||||
nprogress: ^0.2.0
|
||||
open: ^8.4.0
|
||||
pinia: ^2.0.15
|
||||
pinia: ^2.0.16
|
||||
sass: ^1.53.0
|
||||
shiki: ^0.10.1
|
||||
star-markdown-css: ^0.4.0
|
||||
|
@ -167,7 +167,7 @@ importers:
|
|||
is-installed-globally: 0.4.0
|
||||
katex: 0.16.0
|
||||
kolorist: 1.5.1
|
||||
lru-cache: 7.12.0
|
||||
lru-cache: 7.13.0
|
||||
markdown-it: 13.0.1
|
||||
markdown-it-anchor: 8.6.4_ea7kj7wzjkld5jo2noyjqxi764
|
||||
markdown-it-attrs: 4.1.4_markdown-it@13.0.1
|
||||
|
@ -178,7 +178,7 @@ importers:
|
|||
markdown-it-task-lists: 2.1.1
|
||||
nprogress: 0.2.0
|
||||
open: 8.4.0
|
||||
pinia: 2.0.15_vue@3.2.37
|
||||
pinia: 2.0.16_vue@3.2.37
|
||||
sass: 1.53.0
|
||||
shiki: 0.10.1
|
||||
star-markdown-css: 0.4.0
|
||||
|
@ -1697,24 +1697,24 @@ packages:
|
|||
- '@algolia/client-search'
|
||||
dev: false
|
||||
|
||||
/@esbuild-kit/cjs-loader/2.3.0:
|
||||
resolution: {integrity: sha512-KInrVt8wlKLhWy7+y4a+E+0uBJoWgdx6Xupy+rrF4MFHA/dEt22ACvvChOZSyiqtQieYPtbPkVYSjbC7mOrFVw==}
|
||||
/@esbuild-kit/cjs-loader/2.3.1:
|
||||
resolution: {integrity: sha512-ov6ALYD9xZSPoo5mmGOQtEC/b0xXeUlPy65p8aHMHLF4DfBEe8Y+iquH2lTDsy6Iskc1uMTadF+SVADTSTNJMA==}
|
||||
dependencies:
|
||||
'@esbuild-kit/core-utils': 2.0.2
|
||||
'@esbuild-kit/core-utils': 2.1.0
|
||||
get-tsconfig: 4.1.0
|
||||
dev: true
|
||||
|
||||
/@esbuild-kit/core-utils/2.0.2:
|
||||
resolution: {integrity: sha512-clNYQUsqtc36pzW5EufMsahcbLG45EaW3YDyf0DlaS0eCMkDXpxIlHwPC0rndUwG6Ytk9sMSD5k1qHbwYEC/OQ==}
|
||||
/@esbuild-kit/core-utils/2.1.0:
|
||||
resolution: {integrity: sha512-fZirrc2KjeTumVjE4bpleWOk2gD83b7WuGeQqOceKFQL+heNKKkNB5G5pekOUTLzfSBc0hP7hCSBoD9TuR0hLw==}
|
||||
dependencies:
|
||||
esbuild: 0.14.48
|
||||
esbuild: 0.14.49
|
||||
source-map-support: 0.5.21
|
||||
dev: true
|
||||
|
||||
/@esbuild-kit/esm-loader/2.4.0:
|
||||
resolution: {integrity: sha512-zS720jXh06nfg5yAzm6oob4sWN9VTP2E1SonhFgEb6zCBswa4S8fOQ/4Bksz1flDgn56NPqoTTDn2XmWRyMG9Q==}
|
||||
/@esbuild-kit/esm-loader/2.4.1:
|
||||
resolution: {integrity: sha512-6x44rygVfNODm27v0RW3wX5y61mqSrXDvB39G0nomgWWqxG3mjiKtPSwrFppdkrA39QIqDgVlD4gJmPOxnleSw==}
|
||||
dependencies:
|
||||
'@esbuild-kit/core-utils': 2.0.2
|
||||
'@esbuild-kit/core-utils': 2.1.0
|
||||
get-tsconfig: 4.1.0
|
||||
dev: true
|
||||
|
||||
|
@ -2565,6 +2565,10 @@ packages:
|
|||
resolution: {integrity: sha512-pF1G4wky+hkifDiZSWn8xfuLOJI1ZXtuambpBEYaf7Xaf6zC/pM29rvAGpd3qaGXnr4BAXU1Pxz/VfvBGwexGA==}
|
||||
dev: false
|
||||
|
||||
/@vue/devtools-api/6.2.1:
|
||||
resolution: {integrity: sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==}
|
||||
dev: false
|
||||
|
||||
/@vue/reactivity-transform/3.2.33:
|
||||
resolution: {integrity: sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==}
|
||||
dependencies:
|
||||
|
@ -3744,6 +3748,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-android-64/0.14.49:
|
||||
resolution: {integrity: sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-android-arm64/0.14.48:
|
||||
resolution: {integrity: sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3752,6 +3765,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-android-arm64/0.14.49:
|
||||
resolution: {integrity: sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-darwin-64/0.14.48:
|
||||
resolution: {integrity: sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3760,6 +3782,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-darwin-64/0.14.49:
|
||||
resolution: {integrity: sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-darwin-arm64/0.14.48:
|
||||
resolution: {integrity: sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3768,6 +3799,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-darwin-arm64/0.14.49:
|
||||
resolution: {integrity: sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-freebsd-64/0.14.48:
|
||||
resolution: {integrity: sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3776,6 +3816,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-freebsd-64/0.14.49:
|
||||
resolution: {integrity: sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-freebsd-arm64/0.14.48:
|
||||
resolution: {integrity: sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3784,6 +3833,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-freebsd-arm64/0.14.49:
|
||||
resolution: {integrity: sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-32/0.14.48:
|
||||
resolution: {integrity: sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3792,6 +3850,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-32/0.14.49:
|
||||
resolution: {integrity: sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-64/0.14.48:
|
||||
resolution: {integrity: sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3800,6 +3867,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-64/0.14.49:
|
||||
resolution: {integrity: sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-arm/0.14.48:
|
||||
resolution: {integrity: sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3808,6 +3884,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-arm/0.14.49:
|
||||
resolution: {integrity: sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-arm64/0.14.48:
|
||||
resolution: {integrity: sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3816,6 +3901,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-arm64/0.14.49:
|
||||
resolution: {integrity: sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-mips64le/0.14.48:
|
||||
resolution: {integrity: sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3824,6 +3918,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-mips64le/0.14.49:
|
||||
resolution: {integrity: sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [mips64el]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-ppc64le/0.14.48:
|
||||
resolution: {integrity: sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3832,6 +3935,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-ppc64le/0.14.49:
|
||||
resolution: {integrity: sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-riscv64/0.14.48:
|
||||
resolution: {integrity: sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3840,6 +3952,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-riscv64/0.14.49:
|
||||
resolution: {integrity: sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-s390x/0.14.48:
|
||||
resolution: {integrity: sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3848,6 +3969,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-s390x/0.14.49:
|
||||
resolution: {integrity: sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-netbsd-64/0.14.48:
|
||||
resolution: {integrity: sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3856,6 +3986,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-netbsd-64/0.14.49:
|
||||
resolution: {integrity: sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [netbsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-openbsd-64/0.14.48:
|
||||
resolution: {integrity: sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3864,6 +4003,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-openbsd-64/0.14.49:
|
||||
resolution: {integrity: sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [openbsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-sunos-64/0.14.48:
|
||||
resolution: {integrity: sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3872,6 +4020,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-sunos-64/0.14.49:
|
||||
resolution: {integrity: sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [sunos]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-32/0.14.48:
|
||||
resolution: {integrity: sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3880,6 +4037,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-32/0.14.49:
|
||||
resolution: {integrity: sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-64/0.14.48:
|
||||
resolution: {integrity: sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3888,6 +4054,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-64/0.14.49:
|
||||
resolution: {integrity: sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-arm64/0.14.48:
|
||||
resolution: {integrity: sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3896,6 +4071,15 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-arm64/0.14.49:
|
||||
resolution: {integrity: sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild/0.14.48:
|
||||
resolution: {integrity: sha512-w6N1Yn5MtqK2U1/WZTX9ZqUVb8IOLZkZ5AdHkT6x3cHDMVsYWC7WPdiLmx19w3i4Rwzy5LqsEMtVihG3e4rFzA==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -3923,6 +4107,34 @@ packages:
|
|||
esbuild-windows-64: 0.14.48
|
||||
esbuild-windows-arm64: 0.14.48
|
||||
|
||||
/esbuild/0.14.49:
|
||||
resolution: {integrity: sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==}
|
||||
engines: {node: '>=12'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
esbuild-android-64: 0.14.49
|
||||
esbuild-android-arm64: 0.14.49
|
||||
esbuild-darwin-64: 0.14.49
|
||||
esbuild-darwin-arm64: 0.14.49
|
||||
esbuild-freebsd-64: 0.14.49
|
||||
esbuild-freebsd-arm64: 0.14.49
|
||||
esbuild-linux-32: 0.14.49
|
||||
esbuild-linux-64: 0.14.49
|
||||
esbuild-linux-arm: 0.14.49
|
||||
esbuild-linux-arm64: 0.14.49
|
||||
esbuild-linux-mips64le: 0.14.49
|
||||
esbuild-linux-ppc64le: 0.14.49
|
||||
esbuild-linux-riscv64: 0.14.49
|
||||
esbuild-linux-s390x: 0.14.49
|
||||
esbuild-netbsd-64: 0.14.49
|
||||
esbuild-openbsd-64: 0.14.49
|
||||
esbuild-sunos-64: 0.14.49
|
||||
esbuild-windows-32: 0.14.49
|
||||
esbuild-windows-64: 0.14.49
|
||||
esbuild-windows-arm64: 0.14.49
|
||||
dev: true
|
||||
|
||||
/escalade/3.1.1:
|
||||
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
|
||||
engines: {node: '>=6'}
|
||||
|
@ -5591,8 +5803,8 @@ packages:
|
|||
yallist: 4.0.0
|
||||
dev: true
|
||||
|
||||
/lru-cache/7.12.0:
|
||||
resolution: {integrity: sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw==}
|
||||
/lru-cache/7.13.0:
|
||||
resolution: {integrity: sha512-SNFKDOORR41fkWP3DXiIUvXvfzDRPg3bxD1+29iRyP2ZW+Njp2o6zhx9YkEpq1tbP0AEDNW2VBUedzDIxmNhdg==}
|
||||
engines: {node: '>=12'}
|
||||
dev: false
|
||||
|
||||
|
@ -6233,8 +6445,8 @@ packages:
|
|||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/pinia/2.0.15_vue@3.2.37:
|
||||
resolution: {integrity: sha512-qkIvXdGWMbnc3UG3l8rn9SV4nE2H4I2R/exZcdn/0pDzjaKQmMUsBXlIurfKu62VJsjETkqss46NP/c88NnjYQ==}
|
||||
/pinia/2.0.16_vue@3.2.37:
|
||||
resolution: {integrity: sha512-9/LMVO+/epny1NBfC77vnps4g3JRezxhhoF1xLUk8mZkUIxVnwfEAIRiAX8mYBTD/KCwZqnDMqXc8w3eU0FQGg==}
|
||||
peerDependencies:
|
||||
'@vue/composition-api': ^1.4.0
|
||||
typescript: '>=4.4.4'
|
||||
|
@ -6245,9 +6457,9 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@vue/devtools-api': 6.2.0
|
||||
'@vue/devtools-api': 6.2.1
|
||||
vue: 3.2.37
|
||||
vue-demi: 0.13.2_vue@3.2.37
|
||||
vue-demi: 0.13.4_vue@3.2.37
|
||||
dev: false
|
||||
|
||||
/pirates/4.0.5:
|
||||
|
@ -7253,13 +7465,13 @@ packages:
|
|||
typescript: 4.7.4
|
||||
dev: true
|
||||
|
||||
/tsx/3.7.1:
|
||||
resolution: {integrity: sha512-dwl1GBdkwVQ9zRxTmETGi+ck8pewNm2QXh+HK6jHxdHmeCjfCL+Db3b4VX/dOMDSS2hle1j5LzQoo8OpVXu6XQ==}
|
||||
/tsx/3.8.0:
|
||||
resolution: {integrity: sha512-PcvTwRXTm6hDWfPihA4n5WW/9SmgFNxKaDKqvLLG+FKNEPA4crsipChzC7PVozPtdOaMfR5QctDlkC/hKoIsxw==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@esbuild-kit/cjs-loader': 2.3.0
|
||||
'@esbuild-kit/core-utils': 2.0.2
|
||||
'@esbuild-kit/esm-loader': 2.4.0
|
||||
'@esbuild-kit/cjs-loader': 2.3.1
|
||||
'@esbuild-kit/core-utils': 2.1.0
|
||||
'@esbuild-kit/esm-loader': 2.4.1
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
@ -7765,6 +7977,7 @@ packages:
|
|||
optional: true
|
||||
dependencies:
|
||||
vue: 3.2.37
|
||||
dev: true
|
||||
|
||||
/vue-demi/0.13.4_vue@3.2.37:
|
||||
resolution: {integrity: sha512-KP4lq9uSz0KZbaqCllRhnxMV3mYRsRWJfdsAhZyt5bV5O1RTpoeDptBRV9NOa/JgOpfaA9ane88VF7OjWNK/DA==}
|
||||
|
|
Loading…
Reference in New Issue