prettier
11
.gitattributes
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
* text eol=lf
|
||||||
|
*.txt text eol=crlf
|
||||||
|
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
|
*.jpeg binary
|
||||||
|
*.ico binary
|
||||||
|
*.gif binary
|
||||||
|
*.tff binary
|
||||||
|
*.woff binary
|
||||||
|
*.woff2 binary
|
||||||
8
.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
**/node_modules
|
||||||
|
|
||||||
|
docs/.vuepress/.cache
|
||||||
|
docs/.vuepress/.temp
|
||||||
|
docs/.vuepress/dist
|
||||||
|
|
||||||
|
.DS_Store
|
||||||
|
*.log
|
||||||
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 StickyHomework2
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
28
README.md
@ -1,27 +1,27 @@
|
|||||||
# sticky-homework-2
|
# StickyHomework-Docs
|
||||||
|
|
||||||
The Site is generated using [vuepress](https://vuepress.vuejs.org/) and [vuepress-theme-plume](https://github.com/pengzhanbo/vuepress-theme-plume)
|
这个网站使用 [vuepress](https://vuepress.vuejs.org/) 和 [vuepress-theme-plume](https://github.com/pengzhanbo/vuepress-theme-plume) 搭建
|
||||||
|
|
||||||
## Install
|
## 安装
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm i
|
pnpm i
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## 使用
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# start dev server
|
# 启动开发服务器
|
||||||
npm run docs:dev
|
pnpm docs:dev
|
||||||
# build for production
|
# 构建生产环境
|
||||||
npm run docs:build
|
pnpm docs:build
|
||||||
# preview production build in local
|
# 预览生产环境
|
||||||
npm run docs:preview
|
pnpm docs:preview
|
||||||
# update vuepress and theme
|
# 更新 vuepress 和 theme
|
||||||
npm run vp-update
|
pnpm vp-update
|
||||||
```
|
```
|
||||||
|
|
||||||
## Documents
|
## 文档
|
||||||
|
|
||||||
- [vuepress](https://vuepress.vuejs.org/)
|
- [vuepress](https://vuepress.vuejs.org/)
|
||||||
- [vuepress-theme-plume](https://theme-plume.vuejs.press/)
|
- [vuepress-theme-plume](https://theme-plume.vuejs.press/)
|
||||||
|
|||||||
@ -1,27 +0,0 @@
|
|||||||
# sticky-homework-2
|
|
||||||
|
|
||||||
网站使用 [vuepress](https://vuepress.vuejs.org/) 和 [vuepress-theme-plume](https://github.com/pengzhanbo/vuepress-theme-plume) 构建生成。
|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm i
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# 启动开发服务
|
|
||||||
npm run docs:dev
|
|
||||||
# 构建生产包
|
|
||||||
npm run docs:build
|
|
||||||
# 本地预览生产服务
|
|
||||||
npm run docs:preview
|
|
||||||
# 更新 vuepress 和主题
|
|
||||||
npm run vp-update
|
|
||||||
```
|
|
||||||
|
|
||||||
## 文档
|
|
||||||
|
|
||||||
- [vuepress](https://vuepress.vuejs.org/)
|
|
||||||
- [vuepress-theme-plume](https://theme-plume.vuejs.press/)
|
|
||||||
@ -1,22 +1,22 @@
|
|||||||
import { defineClientConfig } from 'vuepress/client'
|
import { defineClientConfig } from 'vuepress/client'
|
||||||
|
import Layout from './theme/components/Layout.vue'
|
||||||
// import RepoCard from 'vuepress-theme-plume/features/RepoCard.vue'
|
// import RepoCard from 'vuepress-theme-plume/features/RepoCard.vue'
|
||||||
// import NpmBadge from 'vuepress-theme-plume/features/NpmBadge.vue'
|
// import NpmBadge from 'vuepress-theme-plume/features/NpmBadge.vue'
|
||||||
// import NpmBadgeGroup from 'vuepress-theme-plume/features/NpmBadgeGroup.vue'
|
// import NpmBadgeGroup from 'vuepress-theme-plume/features/NpmBadgeGroup.vue'
|
||||||
// import Swiper from 'vuepress-theme-plume/features/Swiper.vue'
|
// import Swiper from 'vuepress-theme-plume/features/Swiper.vue'
|
||||||
|
import './theme/styles/custom.css'
|
||||||
// import CustomComponent from './theme/components/Custom.vue'
|
import './theme/styles/index.css'
|
||||||
|
|
||||||
// import './theme/styles/custom.css'
|
|
||||||
|
|
||||||
export default defineClientConfig({
|
export default defineClientConfig({
|
||||||
enhance({ app }) {
|
// enhance({ app }) {
|
||||||
// built-in components
|
// built-in components
|
||||||
// app.component('RepoCard', RepoCard)
|
// app.component('RepoCard', RepoCard)
|
||||||
// app.component('NpmBadge', NpmBadge)
|
// app.component('NpmBadge', NpmBadge)
|
||||||
// app.component('NpmBadgeGroup', NpmBadgeGroup)
|
// app.component('NpmBadgeGroup', NpmBadgeGroup)
|
||||||
// app.component('Swiper', Swiper) // you should install `swiper`
|
// app.component('Swiper', Swiper) // you should install `swiper`
|
||||||
|
|
||||||
// your custom components
|
// },
|
||||||
// app.component('CustomComponent', CustomComponent)
|
layouts: {
|
||||||
|
Layout,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@ -1,72 +1,30 @@
|
|||||||
/**
|
/* @see https://theme-plume.vuejs.press/guide/collection/ 查看文档了解配置详情。 */
|
||||||
* @see https://theme-plume.vuejs.press/guide/collection/ 查看文档了解配置详情。
|
|
||||||
*
|
|
||||||
* Collections 配置文件,它在 `.vuepress/plume.config.ts` 中被导入。
|
|
||||||
*
|
|
||||||
* 请注意,你应该先在这里配置好 Collections,然后再启动 vuepress,主题会在启动 vuepress 时,
|
|
||||||
* 读取这里配置的 Collections,然后在与 Collection 相关的 Markdown 文件中,自动生成 permalink。
|
|
||||||
*
|
|
||||||
* collection 的 type 为 `post` 时,表示为 文档列表类型(即没有侧边导航栏,有文档列表页)
|
|
||||||
* 可用于实现如 博客、专栏 等以文章列表聚合形式的文档集合 (内容相对碎片化的)
|
|
||||||
*
|
|
||||||
* collection 的 type 为 `doc` 时,表示为文档类型(即有侧边导航栏)
|
|
||||||
* 可用于实现如 笔记、知识库、文档等以侧边导航栏形式的文档集合 (内容强关联、成体系的)
|
|
||||||
* 如果发现 侧边栏没有显示,那么请检查你的配置是否正确,以及 Markdown 文件中的 permalink
|
|
||||||
* 是否是以对应的 Collection 配置的 link 的前缀开头。 是否展示侧边栏是根据 页面链接 的前缀 与 `collection.link`
|
|
||||||
* 的前缀是否匹配来决定。
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 在受支持的 IDE 中会智能提示配置项。
|
|
||||||
*
|
|
||||||
* - `defineCollections` 是用于定义 collection 集合的帮助函数
|
|
||||||
* - `defineCollection` 是用于定义单个 collection 配置的帮助函数
|
|
||||||
*
|
|
||||||
* 通过 `defineCollection` 定义的 collection 配置,应该填入 `defineCollections` 中
|
|
||||||
*/
|
|
||||||
import { defineCollection, defineCollections } from 'vuepress-theme-plume'
|
import { defineCollection, defineCollections } from 'vuepress-theme-plume'
|
||||||
|
|
||||||
const blog = defineCollection({
|
const Guide = defineCollection({
|
||||||
// post 类型,这里用于实现 博客功能
|
type: 'doc',
|
||||||
|
dir: 'guide',
|
||||||
|
linkPrefix: '/guide',
|
||||||
|
title: '指南',
|
||||||
|
sidebar: 'auto'
|
||||||
|
});
|
||||||
|
|
||||||
|
const Faq = defineCollection({
|
||||||
type: 'post',
|
type: 'post',
|
||||||
// 文档集合所在目录,相对于 `docs`
|
dir: 'faq',
|
||||||
dir: 'blog',
|
title: '常见问题',
|
||||||
// 文档标题,它将用于在页面的面包屑导航中显示
|
link: '/faq/',
|
||||||
title: 'Blog',
|
|
||||||
// 文章列表页的链接,如果 `linkPrefix` 未定义,它也将作为 相关的文章的 permalink 的前缀
|
|
||||||
link: '/blog/',
|
|
||||||
// linkPrefix: '/article/', // 相关文章的链接前缀
|
// linkPrefix: '/article/', // 相关文章的链接前缀
|
||||||
// postList: true, // 是否启用文章列表页
|
// postList: true, // 是否启用文章列表页
|
||||||
// tags: true, // 是否启用标签页
|
// tags: true, // 是否启用标签页
|
||||||
// archives: true, // 是否启用归档页
|
archives: false, // 是否启用归档页
|
||||||
// categories: true, // 是否启用分类页
|
// categories: true, // 是否启用分类页
|
||||||
// postCover: 'right', // 文章封面位置
|
// postCover: 'right', // 文章封面位置
|
||||||
// pagination: 15, // 每页显示文章数量
|
// pagination: 15, // 每页显示文章数量
|
||||||
})
|
})
|
||||||
|
|
||||||
const demoDoc = defineCollection({
|
export default defineCollections([
|
||||||
// doc 类型,该类型带有侧边栏
|
Guide,
|
||||||
type: 'doc',
|
Faq
|
||||||
// 文档集合所在目录,相对于 `docs`
|
|
||||||
dir: 'guide',
|
|
||||||
// `dir` 所指向的目录中的所有 markdown 文件,其 permalink 需要以 `linkPrefix` 配置作为前缀
|
|
||||||
// 如果 前缀不一致,则无法生成侧边栏。
|
|
||||||
// 所以请确保 markdown 文件的 permalink 都以 `linkPrefix` 开头
|
|
||||||
linkPrefix: '/guide',
|
|
||||||
// 文档标题,它将用于在页面的面包屑导航中显示
|
|
||||||
title: 'guide',
|
|
||||||
// 手动配置侧边栏结构
|
|
||||||
sidebar: ['', 'subject', 'tag', 'use', 'title', 'color'],
|
|
||||||
// 根据文件结构自动生成侧边栏
|
|
||||||
//sidebar: 'auto',
|
|
||||||
})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 导出所有的 collections
|
|
||||||
* (blog 为博客示例,如果不需要博客功能,请删除)
|
|
||||||
* (demoDoc 为参考示例,如果不需要它,请删除)
|
|
||||||
*/
|
|
||||||
export default defineCollection([
|
|
||||||
blog,
|
|
||||||
demoDoc,
|
|
||||||
])
|
])
|
||||||
|
|||||||
@ -1,14 +1,3 @@
|
|||||||
/**
|
|
||||||
* 查看以下文档了解主题配置
|
|
||||||
* - @see https://theme-plume.vuejs.press/config/intro/ 配置说明
|
|
||||||
* - @see https://theme-plume.vuejs.press/config/theme/ 主题配置项
|
|
||||||
*
|
|
||||||
* 请注意,对此文件的修改都会重启 vuepress 服务。
|
|
||||||
* 部分配置项的更新没有必要重启 vuepress 服务,建议请在 `.vuepress/config.ts` 文件中配置
|
|
||||||
*
|
|
||||||
* 特别的,请不要在两个配置文件中重复配置相同的项,当前文件的配置项会被覆盖
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { viteBundler } from '@vuepress/bundler-vite'
|
import { viteBundler } from '@vuepress/bundler-vite'
|
||||||
import { defineUserConfig } from 'vuepress'
|
import { defineUserConfig } from 'vuepress'
|
||||||
import { plumeTheme } from 'vuepress-theme-plume'
|
import { plumeTheme } from 'vuepress-theme-plume'
|
||||||
@ -16,12 +5,11 @@ import { plumeTheme } from 'vuepress-theme-plume'
|
|||||||
export default defineUserConfig({
|
export default defineUserConfig({
|
||||||
base: '/',
|
base: '/',
|
||||||
lang: 'zh-CN',
|
lang: 'zh-CN',
|
||||||
title: 'StickyHomework2',
|
title: 'StickyHomeworks2',
|
||||||
description: '一款支持富文本的桌面作业贴工具',
|
description: '',
|
||||||
|
|
||||||
head: [
|
head: [
|
||||||
// 配置站点图标
|
['link', { rel: 'icon', type: 'image/png', href: '/logo.png' }],
|
||||||
['link', { rel: 'icon', type: 'image/png', href: 'https://theme-plume.vuejs.press/favicon-32x32.png' }],
|
|
||||||
],
|
],
|
||||||
|
|
||||||
bundler: viteBundler(),
|
bundler: viteBundler(),
|
||||||
@ -32,15 +20,17 @@ export default defineUserConfig({
|
|||||||
// hostname: 'https://your_site_url',
|
// hostname: 'https://your_site_url',
|
||||||
|
|
||||||
/* 文档仓库配置,用于 editLink */
|
/* 文档仓库配置,用于 editLink */
|
||||||
// docsRepo: '',
|
docsRepo: 'https://github.com/belugaQAQ/Sh2Newweb',
|
||||||
// docsDir: 'docs',
|
docsDir: 'docs',
|
||||||
// docsBranch: '',
|
docsBranch: 'main',
|
||||||
|
|
||||||
/* 页内信息 */
|
/* 页内信息 */
|
||||||
// editLink: true,
|
// editLink: true,
|
||||||
// lastUpdated: true,
|
// lastUpdated: true,
|
||||||
// contributors: true,
|
contributors: {
|
||||||
// changelog: false,
|
mode: 'block',
|
||||||
|
},
|
||||||
|
changelog: true,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编译缓存,加快编译速度
|
* 编译缓存,加快编译速度
|
||||||
@ -52,14 +42,16 @@ export default defineUserConfig({
|
|||||||
* 为 markdown 文件自动添加 frontmatter 配置
|
* 为 markdown 文件自动添加 frontmatter 配置
|
||||||
* @see https://theme-plume.vuejs.press/config/basic/#autofrontmatter
|
* @see https://theme-plume.vuejs.press/config/basic/#autofrontmatter
|
||||||
*/
|
*/
|
||||||
// autoFrontmatter: {
|
autoFrontmatter: {
|
||||||
// permalink: true, // 是否生成永久链接
|
permalink: false, // 是否生成永久链接
|
||||||
// createTime: true, // 是否生成创建时间
|
// createTime: true, // 是否生成创建时间
|
||||||
// title: true, // 是否生成标题
|
// title: true, // 是否生成标题
|
||||||
// },
|
},
|
||||||
|
|
||||||
/* 本地搜索, 默认启用 */
|
/* 本地搜索, 默认启用 */
|
||||||
search: { provider: 'local' },
|
search: {
|
||||||
|
provider: 'local',
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Algolia DocSearch
|
* Algolia DocSearch
|
||||||
@ -70,7 +62,7 @@ export default defineUserConfig({
|
|||||||
// provider: 'algolia',
|
// provider: 'algolia',
|
||||||
// appId: '',
|
// appId: '',
|
||||||
// apiKey: '',
|
// apiKey: '',
|
||||||
// indices: [''],
|
// indexName: '',
|
||||||
// },
|
// },
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -90,7 +82,7 @@ export default defineUserConfig({
|
|||||||
* markdown
|
* markdown
|
||||||
* @see https://theme-plume.vuejs.press/config/markdown/
|
* @see https://theme-plume.vuejs.press/config/markdown/
|
||||||
*/
|
*/
|
||||||
// markdown: {
|
markdown: {
|
||||||
// abbr: true, // 启用 abbr 语法 *[label]: content
|
// abbr: true, // 启用 abbr 语法 *[label]: content
|
||||||
// annotation: true, // 启用 annotation 语法 [+label]: content
|
// annotation: true, // 启用 annotation 语法 [+label]: content
|
||||||
// pdf: true, // 启用 PDF 嵌入 @[pdf](/xxx.pdf)
|
// pdf: true, // 启用 PDF 嵌入 @[pdf](/xxx.pdf)
|
||||||
@ -100,7 +92,7 @@ export default defineUserConfig({
|
|||||||
// youtube: true, // 启用嵌入 youtube视频 语法 @[youtube](video_id)
|
// youtube: true, // 启用嵌入 youtube视频 语法 @[youtube](video_id)
|
||||||
// artPlayer: true, // 启用嵌入 artPlayer 本地视频 语法 @[artPlayer](url)
|
// artPlayer: true, // 启用嵌入 artPlayer 本地视频 语法 @[artPlayer](url)
|
||||||
// audioReader: true, // 启用嵌入音频朗读功能 语法 @[audioReader](url)
|
// audioReader: true, // 启用嵌入音频朗读功能 语法 @[audioReader](url)
|
||||||
// icon: { provider: 'iconify' }, // 启用内置图标语法 ::icon-name::
|
icon: { provider: 'iconify', size: '1.5rem' },
|
||||||
// table: true, // 启用表格增强容器语法 ::: table
|
// table: true, // 启用表格增强容器语法 ::: table
|
||||||
// codepen: true, // 启用嵌入 codepen 语法 @[codepen](user/slash)
|
// codepen: true, // 启用嵌入 codepen 语法 @[codepen](user/slash)
|
||||||
// replit: true, // 启用嵌入 replit 语法 @[replit](user/repl-name)
|
// replit: true, // 启用嵌入 replit 语法 @[replit](user/repl-name)
|
||||||
@ -129,7 +121,7 @@ export default defineUserConfig({
|
|||||||
// },
|
// },
|
||||||
// include: true, // 在 Markdown 文件中导入其他 markdown 文件内容
|
// include: true, // 在 Markdown 文件中导入其他 markdown 文件内容
|
||||||
// imageSize: 'local', // 启用 自动填充 图片宽高属性,避免页面抖动
|
// imageSize: 'local', // 启用 自动填充 图片宽高属性,避免页面抖动
|
||||||
// },
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 水印
|
* 水印
|
||||||
@ -141,17 +133,17 @@ export default defineUserConfig({
|
|||||||
* 评论 comments
|
* 评论 comments
|
||||||
* @see https://theme-plume.vuejs.press/guide/features/comments/
|
* @see https://theme-plume.vuejs.press/guide/features/comments/
|
||||||
*/
|
*/
|
||||||
// comment: {
|
comment: {
|
||||||
// provider: '', // "Artalk" | "Giscus" | "Twikoo" | "Waline"
|
provider: 'Giscus', // "Artalk" | "Giscus" | "Twikoo" | "Waline"
|
||||||
// comment: true,
|
comment: true,
|
||||||
// repo: '',
|
repo: 'belugaQAQ/Giscus',
|
||||||
// repoId: '',
|
repoId: 'R_kgDOPmt-vA',
|
||||||
// category: '',
|
category: 'General',
|
||||||
// categoryId: '',
|
categoryId: 'DIC_kwDOPmt-vM4CuwaX',
|
||||||
// mapping: 'pathname',
|
mapping: 'pathname',
|
||||||
// reactionsEnabled: true,
|
reactionsEnabled: true,
|
||||||
// inputPosition: 'top',
|
inputPosition: 'top',
|
||||||
// },
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 资源链接替换
|
* 资源链接替换
|
||||||
|
|||||||
@ -7,12 +7,17 @@
|
|||||||
import { defineNavbarConfig } from 'vuepress-theme-plume'
|
import { defineNavbarConfig } from 'vuepress-theme-plume'
|
||||||
|
|
||||||
export default defineNavbarConfig([
|
export default defineNavbarConfig([
|
||||||
{ text: '首页', link: '/' },
|
|
||||||
{ text: '博客', link: '/blog/' },
|
|
||||||
{ text: '标签', link: '/blog/tags/' },
|
|
||||||
{ text: '归档', link: '/blog/archives/' },
|
|
||||||
{
|
{
|
||||||
text: '笔记',
|
text: '指南',
|
||||||
items: [{ text: '示例', link: '/guide/README.md' }]
|
icon: 'mi:book',
|
||||||
|
items: [
|
||||||
|
{ text: '欢迎', icon: 'ion:hardware-chip-outline', link: '/guide/' },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
text: '常见问题',
|
||||||
|
icon: 'mingcute:question-line',
|
||||||
|
link: '/faq/',
|
||||||
|
},
|
||||||
|
{ text: '友链', icon: 'ic:round-people', link: '/friends' },
|
||||||
])
|
])
|
||||||
|
|||||||
@ -1,31 +1,23 @@
|
|||||||
/**
|
|
||||||
* 查看以下文档了解主题配置
|
|
||||||
* - @see https://theme-plume.vuejs.press/config/intro/ 配置说明
|
|
||||||
* - @see https://theme-plume.vuejs.press/config/theme/ 主题配置项
|
|
||||||
*
|
|
||||||
* 请注意,对此文件的修改不会重启 vuepress 服务,而是通过热更新的方式生效
|
|
||||||
* 但同时部分配置项不支持热更新,请查看文档说明
|
|
||||||
* 对于不支持热更新的配置项,请在 `.vuepress/config.ts` 文件中配置
|
|
||||||
*
|
|
||||||
* 特别的,请不要在两个配置文件中重复配置相同的项,当前文件的配置项会覆盖 `.vuepress/config.ts` 文件中的配置
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { defineThemeConfig } from 'vuepress-theme-plume'
|
import { defineThemeConfig } from 'vuepress-theme-plume'
|
||||||
import navbar from './navbar'
|
import navbar from './navbar'
|
||||||
import collections from './collections'
|
import collections from './collections'
|
||||||
|
|
||||||
/**
|
|
||||||
* @see https://theme-plume.vuejs.press/config/basic/
|
|
||||||
*/
|
|
||||||
export default defineThemeConfig({
|
export default defineThemeConfig({
|
||||||
logo: 'https://theme-plume.vuejs.press/plume.png',
|
logo: '/logo.png',
|
||||||
|
|
||||||
appearance: true, // 配置 深色模式
|
appearance: true,
|
||||||
|
|
||||||
social: [
|
social: [
|
||||||
{ icon: 'github', link: '/' },
|
{ icon: 'github', link: 'https://github.com/belugaQAQ/Sh2Newweb' },
|
||||||
|
{
|
||||||
|
icon: {
|
||||||
|
svg: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none"><path d="M12.593 23.258l-.011.002-.071.035-.02.004-.014-.004-.071-.035q-.016-.005-.024.005l-.004.01-.017.428.005.02.01.013.104.074.015.004.012-.004.104-.074.012-.016.004-.017-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002-.185.093-.01.01-.003.011.018.43.005.012.008.007.201.093q.019.005.029-.008l.004-.014-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014-.034.614q.001.018.017.024l.015-.002.201-.093.01-.008.004-.011.017-.43-.003-.012-.01-.01z"/><path fill="currentColor" d="M15.08 4.21s-.71-.4-1.4-.2L2.32 7.23 5.34 1.84s.44-.88 2.15-.84l9.49.02-1.82 3.24-.08-.05Zm3.76-2.18l-1.93 3.44s.48.45.62.97l1.69 6.6-6.52 2.02 2.35-3.83-.73-2.89s-.38-1.14-1.5-1.01c-.02 0-.04 0-.05 0-1.16.18-11.89 3.23-11.89 3.23 0 0-.84.24-.88 1.1 0 0-.02.93.53 1.78l4.76 8.35 1.75-3.12s-.55-.51-.61-.77l-1.92-7.01 6.45-1.88s.35-.18.49.13l-2.81 3.6.96 3.22s.42.71 1.4.71l12.39-3.47s.82-.16.59-1.43c0 0 .04-.47-.35-1.25l-4.77-8.51Z"/><path fill="var(--icon-secondary, currentColor)" d="M8.7 19.69s.66.29 1.09.27l11.97-3.36-2.75 4.9s-.67 1.37-2.26 1.37l-9.9.14 1.85-3.31Z"/></g></svg>',
|
||||||
|
name: 'STCN'
|
||||||
|
},
|
||||||
|
link: 'https://forum.smart-teach.cn/t/stickyhomework2'
|
||||||
|
},
|
||||||
],
|
],
|
||||||
// navbarSocialInclude: ['github'], // 允许显示在导航栏的 social 社交链接
|
navbarSocialInclude: ['github', 'STCN'],
|
||||||
// aside: true, // 页内侧边栏, 默认显示在右侧
|
// aside: true, // 页内侧边栏, 默认显示在右侧
|
||||||
// outline: [2, 3], // 页内大纲, 默认显示 h2, h3
|
// outline: [2, 3], // 页内大纲, 默认显示 h2, h3
|
||||||
|
|
||||||
@ -39,22 +31,9 @@ export default defineThemeConfig({
|
|||||||
// nextPage: true, // 是否启用下一页链接
|
// nextPage: true, // 是否启用下一页链接
|
||||||
// createTime: true, // 是否显示文章创建时间
|
// createTime: true, // 是否显示文章创建时间
|
||||||
|
|
||||||
/* 站点页脚 */
|
footer: {
|
||||||
// footer: {
|
message: '由 <a target="_blank" href="https://v2.vuepress.vuejs.org/">VuePress</a> & <a target="_blank" href="https://theme-plume.vuejs.press">vuepress-theme-plume</a> 搭建',
|
||||||
// message: 'Power by <a target="_blank" href="https://v2.vuepress.vuejs.org/">VuePress</a> & <a target="_blank" href="https://theme-plume.vuejs.press">vuepress-theme-plume</a>',
|
copyright: 'MIT 许可协议 | Copyright © 2025 StickyHomeworks',
|
||||||
// copyright: '',
|
|
||||||
// },
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see https://theme-plume.vuejs.press/config/basic/#profile
|
|
||||||
*/
|
|
||||||
profile: {
|
|
||||||
avatar: 'https://theme-plume.vuejs.press/plume.png',
|
|
||||||
name: 'StickyHomework2',
|
|
||||||
description: '一款支持富文本的桌面作业贴工具',
|
|
||||||
// circle: true,
|
|
||||||
// location: '',
|
|
||||||
// organization: '',
|
|
||||||
},
|
},
|
||||||
|
|
||||||
navbar,
|
navbar,
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 376 KiB After Width: | Height: | Size: 376 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
@ -1,8 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 72 72">
|
|
||||||
<path fill="#5086a1" d="M42.334 49.147a29.945 29.945 0 0 1-19.338-8.151c-8.014-7.365-8.378-18.076-8.533-22.649l-.022-.627a2.904 2.904 0 0 1 3.457-2.951c17.005 3.355 21.695 16.324 22.056 17.4a49.543 49.543 0 0 1 3.574 15.922a1 1 0 0 1-.967 1.052c-.029.001-.106.004-.227.004" />
|
|
||||||
<path fill="#8cccd5" d="M44.436 55.316c-11.646 0-17.376-6.974-17.653-7.354a1 1 0 0 1 .262-1.424a11.103 11.103 0 0 1 12.774-1.574c-1.465-9.078 1.877-13.568 2.031-13.77a.998.998 0 0 1 .75-.39a.97.97 0 0 1 .78.325c8.944 9.771 8.793 16.532 7.908 19.691c-.034.14-1.062 4.092-4.772 4.406c-.711.062-1.405.09-2.08.09" />
|
|
||||||
<g fill="none" stroke="#333" stroke-linecap="round" stroke-linejoin="round" stroke-width="1">
|
|
||||||
<path d="M55.184 57.69S34.96 45.877 23.097 24.206m22.131 30.096c-11.93.46-17.628-6.88-17.628-6.88" />
|
|
||||||
<path d="M40.528 42.483c-.56-7.195 2.116-10.679 2.116-10.679c8.834 9.654 8.406 16.162 7.681 18.747m-13.311-3.129a30.15 30.15 0 0 1-13.341-7.162c-8.072-7.419-8.067-18.241-8.232-22.577a1.903 1.903 0 0 1 2.264-1.932C34.694 19.103 39.02 32.528 39.02 32.528" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 2.5 MiB |
96
docs/.vuepress/theme/components/AsideNav.vue
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { computed } from 'vue'
|
||||||
|
import { VPLink } from 'vuepress-theme-plume/client'
|
||||||
|
import { useRouteLocale, useRoute } from 'vuepress/client'
|
||||||
|
|
||||||
|
interface Locale {
|
||||||
|
star: string
|
||||||
|
issue: string
|
||||||
|
share: string
|
||||||
|
copied: string
|
||||||
|
}
|
||||||
|
|
||||||
|
const locales: Record<string, Locale> = {
|
||||||
|
'/': {
|
||||||
|
star: '在 GitHub 上 Star',
|
||||||
|
issue: '遇到问题?',
|
||||||
|
share: '分享此页面',
|
||||||
|
copied: '链接已复制!'
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
const lang = useRouteLocale()
|
||||||
|
const route = useRoute()
|
||||||
|
const locale = computed(() => locales[lang.value])
|
||||||
|
|
||||||
|
const copyPageLink = () => {
|
||||||
|
const url = window.location.origin + route.path
|
||||||
|
navigator.clipboard.writeText(url)
|
||||||
|
.then(() => {
|
||||||
|
alert(locale.value.copied)
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.error('复制失败:', err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="aside-nav-wrapper">
|
||||||
|
<VPLink class="link" no-icon href="https://github.com/Jursin/EEC-Manual">
|
||||||
|
<span class="vpi-github-star" />
|
||||||
|
<span class="link-text">{{ locale.star }}</span>
|
||||||
|
<span class="vpi-arrow-right" />
|
||||||
|
</VPLink>
|
||||||
|
<VPLink class="link" no-icon href="https://github.com/Jursin/EEC-Manual/issues/new/choose">
|
||||||
|
<span class="vpi-github-issue" />
|
||||||
|
<span class="link-text">{{ locale.issue }}</span>
|
||||||
|
<span class="vpi-arrow-right" />
|
||||||
|
</VPLink>
|
||||||
|
<a class="link" href="#" @click.prevent="copyPageLink">
|
||||||
|
<span class="vpi-share" />
|
||||||
|
<span class="link-text">{{ locale.share }}</span>
|
||||||
|
<span class="vpi-arrow-right" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.aside-nav-wrapper {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 8px 0;
|
||||||
|
margin: 16px 16px 0;
|
||||||
|
border-top: solid 1px var(--vp-c-divider);
|
||||||
|
}
|
||||||
|
|
||||||
|
.aside-nav-wrapper .link {
|
||||||
|
display: flex;
|
||||||
|
gap: 8px;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 14px;
|
||||||
|
color: var(--vp-c-text-2);
|
||||||
|
transition: color var(--vp-t-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.aside-nav-wrapper .link:hover {
|
||||||
|
color: var(--vp-c-brand-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.aside-nav-wrapper .link .link-text {
|
||||||
|
flex: 1 2;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vpi-github-star {
|
||||||
|
--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m12 1.5l3.1 6.3l6.9 1l-5 4.8l1.2 6.9l-6.2-3.2l-6.2 3.2L7 13.6L2 8.8l6.9-1z'/%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
|
|
||||||
|
.vpi-github-issue {
|
||||||
|
--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M8 9.5a1.5 1.5 0 1 0 0-3a1.5 1.5 0 0 0 0 3'/%3E%3Cpath fill='%23000' d='M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M1.5 8a6.5 6.5 0 1 0 13 0a6.5 6.5 0 0 0-13 0'/%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
|
|
||||||
|
.vpi-share {
|
||||||
|
--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M13 2a1 1 0 1 0 0 2a1 1 0 0 0 0-2m-3 1a3 3 0 1 1 .917 2.16l-4.94 2.47a3 3 0 0 1 0 .74l4.94 2.47a3 3 0 1 1-.895 1.789l-4.94-2.47a3 3 0 1 1 0-4.319l4.94-2.47A3 3 0 0 1 10 3M3 7a1 1 0 1 0 0 2a1 1 0 0 0 0-2m10 5a1 1 0 1 0 0 2a1 1 0 0 0 0-2'/%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -1,11 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import { ref } from 'vue'
|
|
||||||
|
|
||||||
const message = ref('Hello World!')
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div class="my-custom-content">
|
|
||||||
{{ message }}
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
15
docs/.vuepress/theme/components/Layout.vue
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<script setup>
|
||||||
|
import { Layout } from 'vuepress-theme-plume/client'
|
||||||
|
import AsideNav from './AsideNav.vue'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<Layout>
|
||||||
|
<template #aside-outline-after>
|
||||||
|
<AsideNav />
|
||||||
|
</template>
|
||||||
|
</Layout>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
@ -1,13 +1,4 @@
|
|||||||
:root
|
:root {
|
||||||
{
|
|
||||||
--vp-home-hero-name-color: transparent;
|
|
||||||
--vp-home-hero-name-background: linear-gradient(120deg, var(--vp-c-purple-1) 30%, var(--vp-c-brand-2));
|
|
||||||
--vp-home-hero-tagline: var(--vp-c-text-2);
|
|
||||||
--vp-home-hero-text: var(--vp-c-text-1);
|
|
||||||
--vp-home-hero-image-background-image: linear-gradient(-45deg, var(--vp-c-brand-soft) 50%, var(--vp-c-brand-2) 50%);
|
|
||||||
--vp-home-hero-image-filter: blur(44px);
|
|
||||||
--vp-image-height: 326px;
|
|
||||||
--vp-image-width: 580px;
|
|
||||||
/** 主题颜色 */
|
/** 主题颜色 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -33,10 +24,16 @@
|
|||||||
--vp-c-text-2: rgba(60, 60, 67, 0.78);
|
--vp-c-text-2: rgba(60, 60, 67, 0.78);
|
||||||
--vp-c-text-3: rgba(60, 60, 67, 0.56);
|
--vp-c-text-3: rgba(60, 60, 67, 0.56);
|
||||||
*/
|
*/
|
||||||
|
--vp-home-hero-name-color: transparent;
|
||||||
|
--vp-home-hero-name-background: linear-gradient(120deg, var(--vp-c-purple-1) 30%, var(--vp-c-brand-2));
|
||||||
|
--vp-home-hero-tagline: var(--vp-c-text-2);
|
||||||
|
--vp-home-hero-text: var(--vp-c-text-1);
|
||||||
|
--vp-home-hero-image-background-image: linear-gradient(-45deg, var(--vp-c-brand-soft) 50%, var(--vp-c-brand-2) 50%);
|
||||||
|
--vp-home-hero-image-filter: blur(44px);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 深色模式 */
|
/** 深色模式 */
|
||||||
[data-theme="dark"] {
|
/* [data-theme="dark"] { */
|
||||||
/*
|
/*
|
||||||
--vp-c-brand-1: #8cccd5;
|
--vp-c-brand-1: #8cccd5;
|
||||||
--vp-c-brand-2: #6aa1b7;
|
--vp-c-brand-2: #6aa1b7;
|
||||||
@ -56,4 +53,52 @@
|
|||||||
--vp-c-text-2: rgba(235, 235, 245, 0.6);
|
--vp-c-text-2: rgba(235, 235, 245, 0.6);
|
||||||
--vp-c-text-3: rgba(235, 235, 245, 0.38);
|
--vp-c-text-3: rgba(235, 235, 245, 0.38);
|
||||||
*/
|
*/
|
||||||
|
/* } */
|
||||||
|
|
||||||
|
/* home hero image */
|
||||||
|
.image {
|
||||||
|
margin-top: 60px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* home features */
|
||||||
|
.item {
|
||||||
|
transition: transform 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* faq */
|
||||||
|
.posts-container.no-profile {
|
||||||
|
max-width: 1400px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vp-posts-nav.local .nav-link {
|
||||||
|
max-width: 175px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* friends */
|
||||||
|
.vp-friends {
|
||||||
|
max-width: 1400px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.friends-list {
|
||||||
|
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar {
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
padding: 8px;
|
||||||
|
border-radius: 8px !important;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar img {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
object-fit: contain !important;
|
||||||
}
|
}
|
||||||
|
|||||||
11
docs/.vuepress/theme/styles/index.css
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
:root {
|
||||||
|
--vp-layout-max-width: 1660px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-container {
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vp-doc-container.has-aside .content-container {
|
||||||
|
max-width: 1000px !important;
|
||||||
|
}
|
||||||
@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
title: 自定义组件
|
|
||||||
tags:
|
|
||||||
- 预览
|
|
||||||
- 组件
|
|
||||||
createTime: 2025/10/26 21:43:33
|
|
||||||
permalink: /blog/6yiy84ti/
|
|
||||||
---
|
|
||||||
|
|
||||||
<CustomComponent />
|
|
||||||
@ -1,410 +0,0 @@
|
|||||||
---
|
|
||||||
title: Markdown
|
|
||||||
tags:
|
|
||||||
- markdown
|
|
||||||
createTime: 2025/10/26 21:43:33
|
|
||||||
permalink: /blog/4l7fs9yx/
|
|
||||||
---
|
|
||||||
|
|
||||||
## 标题H2
|
|
||||||
|
|
||||||
### 标题H3
|
|
||||||
|
|
||||||
#### 标题H4
|
|
||||||
|
|
||||||
##### 标题H5
|
|
||||||
|
|
||||||
###### 标题H6
|
|
||||||
|
|
||||||
## 标题2 Badge <Badge type="tip" text="Badge" />
|
|
||||||
|
|
||||||
### 标题3 Badge <Badge type="warning" text="Badge" />
|
|
||||||
|
|
||||||
#### 标题4 Badge <Badge type="danger" text="Badge" />
|
|
||||||
|
|
||||||
正文内容。
|
|
||||||
|
|
||||||
`@property` CSS at-rule是 [CSS Houdini API](https://developer.mozilla.org/zh-CN/docs/Web/Guide/Houdini)
|
|
||||||
的一部分,它允许开发者显式地定义他们的 [CSS 自定义属性](https://developer.mozilla.org/zh-CN/docs/Web/CSS/--*),
|
|
||||||
允许进行属性类型检查、设定默认值以及定义该自定义属性是否可以被继承。
|
|
||||||
|
|
||||||
`@property` 的出现,极大的增强了 CSS 的能力。
|
|
||||||
|
|
||||||
加粗:**加粗文字**
|
|
||||||
|
|
||||||
斜体: _斜体文字_
|
|
||||||
|
|
||||||
~~删除文字~~
|
|
||||||
|
|
||||||
内容 ==标记==
|
|
||||||
|
|
||||||
数学表达式: $-(2^{n-1})$ ~ $2^{n-1} -1$
|
|
||||||
|
|
||||||
$\frac {\partial^r} {\partial \omega^r} \left(\frac {y^{\omega}} {\omega}\right)
|
|
||||||
= \left(\frac {y^{\omega}} {\omega}\right) \left\{(\log y)^r + \sum_{i=1}^r \frac {(-1)^ Ir \cdots (r-i+1) (\log y)^{ri}} {\omega^i} \right\}$
|
|
||||||
|
|
||||||
19^th^
|
|
||||||
|
|
||||||
H~2~O
|
|
||||||
|
|
||||||
::: center
|
|
||||||
内容居中
|
|
||||||
:::
|
|
||||||
|
|
||||||
::: right
|
|
||||||
内容右对齐
|
|
||||||
:::
|
|
||||||
|
|
||||||
- 无序列表1
|
|
||||||
- 无序列表2
|
|
||||||
- 无序列表3
|
|
||||||
|
|
||||||
1. 有序列表1
|
|
||||||
2. 有序列表2
|
|
||||||
3. 有序列表3
|
|
||||||
|
|
||||||
- [ ] 任务列表1
|
|
||||||
- [ ] 任务列表2
|
|
||||||
- [x] 任务列表3
|
|
||||||
- [x] 任务列表4
|
|
||||||
|
|
||||||
| Tables | Are | Cool |
|
|
||||||
| ------------- |:-------------:| -----:|
|
|
||||||
| col 3 is | right-aligned | $1600 |
|
|
||||||
| col 2 is | centered | $12 |
|
|
||||||
| zebra stripes | are neat | $1 |
|
|
||||||
|
|
||||||
> 引用内容
|
|
||||||
>
|
|
||||||
> 引用内容
|
|
||||||
|
|
||||||
[链接](/)
|
|
||||||
|
|
||||||
[外部链接](https://github.com/pengzhanbo)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**Badge:**
|
|
||||||
|
|
||||||
- <Badge type="info" text="info badge" />
|
|
||||||
- <Badge type="tip" text="tip badge" />
|
|
||||||
- <Badge type="warning" text="warning badge" />
|
|
||||||
- <Badge type="danger" text="danger badge" />
|
|
||||||
|
|
||||||
**图标:**
|
|
||||||
|
|
||||||
- home - <Icon name="material-symbols:home" color="currentColor" size="1em" />
|
|
||||||
- vscode - <Icon name="skill-icons:vscode-dark" size="2em" />
|
|
||||||
- twitter - <Icon name="skill-icons:twitter" size="2em" />
|
|
||||||
|
|
||||||
**demo wrapper:**
|
|
||||||
|
|
||||||
::: demo-wrapper title="示例" no-padding height="200px"
|
|
||||||
<style scoped>
|
|
||||||
.open-door {
|
|
||||||
display: flex;
|
|
||||||
gap: 20px;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
.open-door .main {
|
|
||||||
background: #ccc;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div class="open-door">
|
|
||||||
<div class="main">main</div>
|
|
||||||
<div class="aside">aside</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
**代码:**
|
|
||||||
|
|
||||||
```js whitespace
|
|
||||||
const a = 1
|
|
||||||
const b = 2
|
|
||||||
const c = a + b
|
|
||||||
|
|
||||||
// [!code word:obj]
|
|
||||||
const obj = {
|
|
||||||
toLong: {
|
|
||||||
deep: {
|
|
||||||
deep: {
|
|
||||||
deep: {
|
|
||||||
value: 'this is to long text. this is to long text. this is to long text. this is to long text.', // [!code highlight]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Code Blocks TwoSlash:**
|
|
||||||
|
|
||||||
```ts twoslash
|
|
||||||
// @errors: 2339
|
|
||||||
const welcome = 'Tudo bem gente?'
|
|
||||||
const words = welcome.contains(' ')
|
|
||||||
```
|
|
||||||
|
|
||||||
```ts twoslash
|
|
||||||
import express from 'express'
|
|
||||||
const app = express()
|
|
||||||
app.get('/', (req, res) => {
|
|
||||||
res.send
|
|
||||||
})
|
|
||||||
app.listen(3000)
|
|
||||||
```
|
|
||||||
|
|
||||||
```ts twoslash
|
|
||||||
import { createHighlighter } from 'shiki'
|
|
||||||
|
|
||||||
const highlighter = await createHighlighter({ themes: ['nord'], langs: ['javascript'] })
|
|
||||||
// @log: Custom log message
|
|
||||||
const a = 1
|
|
||||||
// @error: Custom error message
|
|
||||||
const b = 1
|
|
||||||
// @warn: Custom warning message
|
|
||||||
const c = 1
|
|
||||||
// @annotate: Custom annotation message
|
|
||||||
```
|
|
||||||
|
|
||||||
```ts twoslash
|
|
||||||
// @errors: 2540
|
|
||||||
interface Todo {
|
|
||||||
title: string
|
|
||||||
}
|
|
||||||
|
|
||||||
const todo: Readonly<Todo> = {
|
|
||||||
title: 'Delete inactive users'.toUpperCase(),
|
|
||||||
// ^?
|
|
||||||
}
|
|
||||||
|
|
||||||
todo.title = 'Hello'
|
|
||||||
|
|
||||||
Number.parseInt('123', 10)
|
|
||||||
// ^|
|
|
||||||
|
|
||||||
//
|
|
||||||
//
|
|
||||||
```
|
|
||||||
|
|
||||||
```vue twoslash
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { ref } from 'vue'
|
|
||||||
|
|
||||||
const count = ref(0)
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<p>{{ count }}</p>
|
|
||||||
</template>
|
|
||||||
```
|
|
||||||
|
|
||||||
**代码分组:**
|
|
||||||
|
|
||||||
::: code-tabs
|
|
||||||
@tab tab1
|
|
||||||
|
|
||||||
```js
|
|
||||||
const a = 1
|
|
||||||
const b = 2
|
|
||||||
const c = a + b
|
|
||||||
```
|
|
||||||
|
|
||||||
@tab tab2
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const a: number = 1
|
|
||||||
const b: number = 2
|
|
||||||
const c: number = a + b
|
|
||||||
```
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
**代码块高亮:**
|
|
||||||
|
|
||||||
```ts
|
|
||||||
function foo() {
|
|
||||||
const a = 1 // [!code highlight]
|
|
||||||
|
|
||||||
console.log(a)
|
|
||||||
|
|
||||||
const b = 2 // [!code ++]
|
|
||||||
const c = 3 // [!code --]
|
|
||||||
|
|
||||||
console.log(a + b + c) // [!code error]
|
|
||||||
console.log(a + b) // [!code warning]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**代码块聚焦:**
|
|
||||||
|
|
||||||
```ts
|
|
||||||
function foo() {
|
|
||||||
const a = 1 // [!code focus]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
::: tip 仅标题
|
|
||||||
:::
|
|
||||||
|
|
||||||
::: note 注释
|
|
||||||
注释内容 [link](https://github.com/pengzhanbo) `inline code`
|
|
||||||
|
|
||||||
```js
|
|
||||||
const a = 1
|
|
||||||
const b = 2
|
|
||||||
const c = a + b
|
|
||||||
```
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
::: info 信息
|
|
||||||
信息内容 [link](https://github.com/pengzhanbo) `inline code`
|
|
||||||
|
|
||||||
```js
|
|
||||||
const a = 1
|
|
||||||
const b = 2
|
|
||||||
const c = a + b
|
|
||||||
```
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
::: tip 提示
|
|
||||||
提示内容 [link](https://github.com/pengzhanbo) `inline code`
|
|
||||||
|
|
||||||
```js
|
|
||||||
const a = 1
|
|
||||||
const b = 2
|
|
||||||
const c = a + b
|
|
||||||
```
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
::: warning 警告
|
|
||||||
警告内容 [link](https://github.com/pengzhanbo) `inline code`
|
|
||||||
|
|
||||||
```js
|
|
||||||
const a = 1
|
|
||||||
const b = 2
|
|
||||||
const c = a + b
|
|
||||||
```
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
::: caution 错误
|
|
||||||
错误内容 [link](https://github.com/pengzhanbo) `inline code`
|
|
||||||
|
|
||||||
```js
|
|
||||||
const a = 1
|
|
||||||
const b = 2
|
|
||||||
const c = a + b
|
|
||||||
```
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
::: important 重要
|
|
||||||
重要内容 [link](https://github.com/pengzhanbo) `inline code`
|
|
||||||
|
|
||||||
```js
|
|
||||||
const a = 1
|
|
||||||
const b = 2
|
|
||||||
const c = a + b
|
|
||||||
```
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
::: details 详细标题
|
|
||||||
|
|
||||||
这里是内容。
|
|
||||||
:::
|
|
||||||
|
|
||||||
**GFM alert:**
|
|
||||||
|
|
||||||
> [!note]
|
|
||||||
> note
|
|
||||||
|
|
||||||
> [!info]
|
|
||||||
> info
|
|
||||||
|
|
||||||
> [!tip]
|
|
||||||
> tip
|
|
||||||
|
|
||||||
> [!warning]
|
|
||||||
> warning
|
|
||||||
|
|
||||||
> [!caution]
|
|
||||||
> caution
|
|
||||||
|
|
||||||
> [!important]
|
|
||||||
> important
|
|
||||||
|
|
||||||
**代码演示:**
|
|
||||||
|
|
||||||
:::: demo title="常规示例" desc="一个常规示例"
|
|
||||||
|
|
||||||
::: code-tabs
|
|
||||||
@tab HTML
|
|
||||||
|
|
||||||
```html
|
|
||||||
<div id="app">
|
|
||||||
<h3>vuepress-theme-plume</h3>
|
|
||||||
</div>
|
|
||||||
```
|
|
||||||
|
|
||||||
@tab Javascript
|
|
||||||
|
|
||||||
```js
|
|
||||||
const a = 'So Awesome!'
|
|
||||||
const app = document.querySelector('#app')
|
|
||||||
app.appendChild(window.document.createElement('small')).textContent = a
|
|
||||||
```
|
|
||||||
|
|
||||||
@tab CSS
|
|
||||||
|
|
||||||
```css
|
|
||||||
#app {
|
|
||||||
font-size: 2em;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
:::
|
|
||||||
::::
|
|
||||||
|
|
||||||
**选项卡:**
|
|
||||||
|
|
||||||
::: tabs
|
|
||||||
@tab 标题1
|
|
||||||
内容区块
|
|
||||||
|
|
||||||
@tab 标题2
|
|
||||||
内容区块
|
|
||||||
:::
|
|
||||||
|
|
||||||
:::: warning
|
|
||||||
::: tabs
|
|
||||||
@tab 标题1
|
|
||||||
内容区块
|
|
||||||
|
|
||||||
@tab 标题2
|
|
||||||
内容区块
|
|
||||||
:::
|
|
||||||
::::
|
|
||||||
|
|
||||||
**脚注:**
|
|
||||||
|
|
||||||
脚注 1 链接[^first]。
|
|
||||||
|
|
||||||
脚注 2 链接[^second]。
|
|
||||||
|
|
||||||
行内的脚注^[行内脚注文本] 定义。
|
|
||||||
|
|
||||||
重复的页脚定义[^second]。
|
|
||||||
|
|
||||||
[^first]: 脚注 **可以包含特殊标记**
|
|
||||||
|
|
||||||
也可以由多个段落组成
|
|
||||||
|
|
||||||
[^second]: 脚注文字。
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
---
|
|
||||||
title: Demo
|
|
||||||
createTime: 2025/10/26 21:43:33
|
|
||||||
permalink: /demo/
|
|
||||||
---
|
|
||||||
|
|
||||||
- [bar](./bar.md)
|
|
||||||
- [foo](./foo.md)
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
title: bar
|
|
||||||
createTime: 2025/10/26 21:43:33
|
|
||||||
permalink: /demo/arh1gv46/
|
|
||||||
---
|
|
||||||
|
|
||||||
[foo](./foo.md)
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
title: foo
|
|
||||||
createTime: 2025/10/26 21:43:33
|
|
||||||
permalink: /demo/detb1ivi/
|
|
||||||
---
|
|
||||||
|
|
||||||
[bar](./bar.md)
|
|
||||||
9
docs/faq/help-github.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
title: help-github
|
||||||
|
createTime: 2025/10/27 23:29:03
|
||||||
|
---
|
||||||
|
## 如果你有WPF能力的话
|
||||||
|
|
||||||
|
## 欢迎在Github提交代码!
|
||||||
|
|
||||||
|
### https://github.com/zji573432-cpu/StickyHomeworks2
|
||||||
@ -1,11 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: 提交issues
|
title: issues
|
||||||
icon: ic:twotone-bug-report
|
createTime: 2025/10/27 23:29:03
|
||||||
author: ClassisBand
|
|
||||||
isOriginal: true
|
|
||||||
date: 2025-08-30
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 如果你在使用过程中发现了一些Bug
|
## 如果你在使用过程中发现了一些Bug
|
||||||
|
|
||||||
## 放心,那不是特性
|
## 放心,那不是特性
|
||||||
20
docs/friends.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
pageLayout: friends
|
||||||
|
title: 友情链接
|
||||||
|
list:
|
||||||
|
-
|
||||||
|
name: 智教联盟论坛
|
||||||
|
link: https://forum.smart-teach.cn/
|
||||||
|
avatar: https://static.smart-teach.cn/logos/full.jpg
|
||||||
|
desc: 全国最大的电教委交流社区
|
||||||
|
-
|
||||||
|
name: Awesome-Iwb
|
||||||
|
link: https://github.com/awesome-iwb/awesome-iwb
|
||||||
|
avatar: https://github.com/awesome-iwb/awesome-iwb/blob/master/images/aiwb-300w.png?raw=true
|
||||||
|
desc: 为广大电教倾情撰写,让班级大屏更好用!
|
||||||
|
-
|
||||||
|
name: Awesome-Class-Softwares
|
||||||
|
link: https://github.com/Jursin/Awesome-Class-Softwares
|
||||||
|
avatar: https://nav.jursin.top/acs.png
|
||||||
|
desc: 适用于班级一体机的优质软件合集🌟
|
||||||
|
---
|
||||||
@ -1,16 +1,10 @@
|
|||||||
---
|
---
|
||||||
title: 外观设置
|
title: color
|
||||||
icon: ic:twotone-color-lens
|
createTime: 2025/10/27 23:28:52
|
||||||
author: ClassisBand
|
|
||||||
isOriginal: true
|
|
||||||
date: 2025-08-30T00:00:00.000Z
|
|
||||||
createTime: 2025/10/26 23:24:40
|
|
||||||
permalink: /guide/m9i0taaq/
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 基本
|
## 基本
|
||||||
|
|
||||||
### 》界面缩放
|
### 界面缩放
|
||||||
|
|
||||||
当主界面文本过大或过小时,可以调节该设置
|
当主界面文本过大或过小时,可以调节该设置
|
||||||
|
|
||||||
@ -18,7 +12,7 @@ permalink: /guide/m9i0taaq/
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
### 》背景不透明度
|
### 背景不透明度
|
||||||
|
|
||||||
该设置用于在壁纸遮挡的情况下,调节该设置可以浅露壁纸
|
该设置用于在壁纸遮挡的情况下,调节该设置可以浅露壁纸
|
||||||
|
|
||||||
@ -30,14 +24,14 @@ permalink: /guide/m9i0taaq/
|
|||||||
|
|
||||||
## 主题
|
## 主题
|
||||||
|
|
||||||
### 》应用主题
|
### 应用主题
|
||||||
|
|
||||||
该设置用于调节深浅模式
|
该设置用于调节深浅模式
|
||||||
可以根据喜好调节
|
可以根据喜好调节
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
### 》主题色来源
|
### 主题色来源
|
||||||
|
|
||||||
调整该设置将改变以下主题色设置
|
调整该设置将改变以下主题色设置
|
||||||
|
|
||||||
|
|||||||
@ -1,13 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: 你好!
|
title: 欢迎
|
||||||
icon: ic:twotone-waving-hand
|
createTime: 2025/10/27 23:28:52
|
||||||
author: ClassisBand
|
|
||||||
isOriginal: true
|
|
||||||
date: 2025-08-30T00:00:00.000Z
|
|
||||||
createTime: 2025/10/26 23:24:40
|
|
||||||
permalink: /guide/
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 欢迎来到StickyHomework2文档页面
|
### 欢迎来到StickyHomework2文档页面
|
||||||
|
|
||||||
::: important
|
::: important
|
||||||
@ -1,13 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: 科目
|
title: subject
|
||||||
icon: ic:twotone-bookmark
|
createTime: 2025/10/27 23:28:52
|
||||||
author: ClassisBand
|
|
||||||
isOriginal: true
|
|
||||||
date: 2025-08-30T00:00:00.000Z
|
|
||||||
createTime: 2025/10/26 23:24:40
|
|
||||||
permalink: /guide/j3xsucyk/
|
|
||||||
---
|
---
|
||||||
|
|
||||||
::: info 科目是使用Sh2的第一步,它将用分类作业
|
::: info 科目是使用Sh2的第一步,它将用分类作业
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|||||||
@ -1,13 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: 标签
|
title: tag
|
||||||
icon: ic:twotone-discount
|
createTime: 2025/10/27 23:28:52
|
||||||
author: ClassisBand
|
|
||||||
isOriginal: true
|
|
||||||
date: 2025-08-30T00:00:00.000Z
|
|
||||||
createTime: 2025/10/26 23:24:40
|
|
||||||
permalink: /guide/f1f1krbk/
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 添加标签
|
### 添加标签
|
||||||
|
|
||||||
你可以在 **应用设置/标签** 中找到它
|
你可以在 **应用设置/标签** 中找到它
|
||||||
|
|||||||
@ -1,13 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: 基本设置
|
title: title
|
||||||
icon: ic:twotone-video-label
|
createTime: 2025/10/27 23:28:52
|
||||||
author: ClassisBand
|
|
||||||
isOriginal: true
|
|
||||||
date: 2025-08-30T00:00:00.000Z
|
|
||||||
createTime: 2025/10/26 23:24:40
|
|
||||||
permalink: /guide/bottlptf/
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 开机自启
|
### 开机自启
|
||||||
|
|
||||||
开机后自动启动
|
开机后自动启动
|
||||||
|
|||||||
@ -1,13 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: 添加作业
|
title: use
|
||||||
icon: ic:twotone-feed
|
createTime: 2025/10/27 23:28:52
|
||||||
author: ClassisBand
|
|
||||||
isOriginal: true
|
|
||||||
date: 2025-08-30T00:00:00.000Z
|
|
||||||
createTime: 2025/10/26 23:24:40
|
|
||||||
permalink: /guide/2jbrbocg/
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 添加作业
|
## 添加作业
|
||||||
|
|
||||||
::: important 关键功能,若有问题先仔细看一遍!!!
|
::: important 关键功能,若有问题先仔细看一遍!!!
|
||||||
|
|||||||
@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
title: 通过代码帮助
|
|
||||||
icon: ic:round-code
|
|
||||||
author: ClassisBand
|
|
||||||
isOriginal: true
|
|
||||||
date: 2025-08-30
|
|
||||||
---
|
|
||||||
|
|
||||||
## 如果你有WPF能力的话
|
|
||||||
|
|
||||||
## 欢迎在Github提交代码!
|
|
||||||
|
|
||||||
### https://github.com/zji573432-cpu/StickyHomeworks2
|
|
||||||
@ -1,48 +1,40 @@
|
|||||||
---
|
---
|
||||||
home: true
|
home: true
|
||||||
config:
|
config:
|
||||||
-
|
- type: doc-hero
|
||||||
type: doc-hero
|
background: tint-plate
|
||||||
hero:
|
hero:
|
||||||
name: StickyHomeworks2
|
name: StickyHomeworks2
|
||||||
text: 你的下一款作业贴软件
|
text: 你的下一款作业贴软件
|
||||||
tagline: 专为电教委与老师设计的桌面端富文本作业管理工具<br>让作业记录更清晰·学习更有条理
|
tagline: 专为电教委与老师设计的桌面端富文本作业管理工具<br>让作业记录更清晰·学习更有条理
|
||||||
image: /stickyhomeworks2-icon256.png
|
image: /logo.png
|
||||||
actions:
|
actions:
|
||||||
-
|
- theme: brand
|
||||||
theme: brand
|
text: 开始阅读
|
||||||
text: 查看文档 →
|
icon: lucide:list-start
|
||||||
link: /guide/
|
link: /guide/
|
||||||
-
|
- theme: alt
|
||||||
theme: alt
|
|
||||||
text: Github
|
text: Github
|
||||||
|
icon: fa-brands:github
|
||||||
link: https://github.com/zji573432-cpu/StickyHomeworks2
|
link: https://github.com/zji573432-cpu/StickyHomeworks2
|
||||||
-
|
- type: image-text
|
||||||
type: image-text
|
|
||||||
title: 丰富全面的功能
|
title: 丰富全面的功能
|
||||||
image: /sh.png
|
image: /preview.png
|
||||||
width: 590px
|
width: 590px
|
||||||
list:
|
list:
|
||||||
-
|
- title: 📝富文本编辑
|
||||||
title: 📝富文本编辑
|
|
||||||
description: 像写Markdown一样记录作业详情,美观优雅
|
description: 像写Markdown一样记录作业详情,美观优雅
|
||||||
-
|
- title: 📚科目分组
|
||||||
title: 📚科目分组
|
|
||||||
description: 按学科整理作业,井井有条不混乱
|
description: 按学科整理作业,井井有条不混乱
|
||||||
-
|
- title: 🏷️智能标签
|
||||||
title: 🏷️智能标签
|
|
||||||
description: 为作业添加标签,精准筛选,快速定位
|
description: 为作业添加标签,精准筛选,快速定位
|
||||||
-
|
- title: 🗂️自动清理
|
||||||
title: 🗂️自动清理
|
|
||||||
description: 过期作业自动提醒或清理,界面更清爽
|
description: 过期作业自动提醒或清理,界面更清爽
|
||||||
-
|
- title: 🖼️导出截图
|
||||||
title: 🖼️导出截图
|
|
||||||
description: 一键导出作业内容为图片,分享或打印超方便
|
description: 一键导出作业内容为图片,分享或打印超方便
|
||||||
-
|
- title: 🔍全局缩放
|
||||||
title: 🔍全局缩放
|
|
||||||
description: 界面大小随心调,看清每一个细节
|
description: 界面大小随心调,看清每一个细节
|
||||||
-
|
- type: features
|
||||||
type: features
|
|
||||||
features:
|
features:
|
||||||
- title: 开机自启
|
- title: 开机自启
|
||||||
icon: ic:round-restart-alt
|
icon: ic:round-restart-alt
|
||||||
@ -91,28 +83,17 @@ config:
|
|||||||
- title: 更新
|
- title: 更新
|
||||||
icon: icon-park-twotone:update-rotation
|
icon: icon-park-twotone:update-rotation
|
||||||
details: 有了更新,妈妈再也不怕我的Github上不去了
|
details: 有了更新,妈妈再也不怕我的Github上不去了
|
||||||
-
|
- type: text-image
|
||||||
type: text-image
|
|
||||||
title: “独一无二” 的自定义功能
|
title: “独一无二” 的自定义功能
|
||||||
image: /sh.png
|
image: /preview.png
|
||||||
width: 590px
|
width: 590px
|
||||||
list:
|
list:
|
||||||
-
|
- title: 深色模式
|
||||||
title: 深色模式
|
|
||||||
description: 切换深浅色背景与字色,护眼又美观
|
description: 切换深浅色背景与字色,护眼又美观
|
||||||
-
|
- title: 主题色切换
|
||||||
title: 主题色切换
|
|
||||||
description: 让你的作业贴多姿多彩
|
description: 让你的作业贴多姿多彩
|
||||||
-
|
- title: 背景不透明度
|
||||||
title: 背景不透明度
|
|
||||||
description: 既不遮挡信息,又能凸显你的壁纸
|
description: 既不遮挡信息,又能凸显你的壁纸
|
||||||
-
|
- title: 更多
|
||||||
title: 更多
|
|
||||||
description: 仍有更多的设置等着你去发现
|
description: 仍有更多的设置等着你去发现
|
||||||
-
|
|
||||||
type: 'custom'
|
|
||||||
---
|
---
|
||||||
 **HelloWRC**
|
|
||||||
|
|
||||||
~~软件作者,写代码巨水~~(划掉)
|
|
||||||
|
|
||||||
7179
package-lock.json
generated
30
package.json
@ -1,25 +1,33 @@
|
|||||||
{
|
{
|
||||||
"name": "sticky-homework-2",
|
"name": "stickyhomeworks-docs",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "一款支持富文本的桌面作业贴工具",
|
"description": "",
|
||||||
|
"packageManager": "pnpm@10.18.3",
|
||||||
|
"pnpm": {
|
||||||
|
"onlyBuiltDependencies": [
|
||||||
|
"@parcel/watcher",
|
||||||
|
"esbuild"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"author": "Jursin <jursin@126.com>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "^20.6.0 || >=22.0.0"
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"docs:build": "vuepress build docs --clean-cache --clean-temp",
|
|
||||||
"docs:dev": "vuepress dev docs",
|
"docs:dev": "vuepress dev docs",
|
||||||
"docs:dev-clean": "vuepress dev docs --clean-cache --clean-temp",
|
"docs:dev-clean": "vuepress dev docs --clean-cache --clean-temp",
|
||||||
|
"docs:build": "vuepress build docs --clean-cache --clean-temp",
|
||||||
"docs:preview": "http-server docs/.vuepress/dist",
|
"docs:preview": "http-server docs/.vuepress/dist",
|
||||||
"vp-update": "npx vp-update"
|
"vp-update": "pnpm dlx vp-update"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vuepress/bundler-vite": "2.0.0-rc.26",
|
"@vuepress/bundler-vite": "2.0.0-rc.24",
|
||||||
"http-server": "^14.1.1",
|
"http-server": "^14.1.1",
|
||||||
"typescript": "^5.9.3",
|
"typescript": "^5.9.3",
|
||||||
"vue": "^3.5.22",
|
"vue": "^3.5.22",
|
||||||
"vuepress": "2.0.0-rc.26",
|
"vuepress": "2.0.0-rc.24",
|
||||||
"vuepress-theme-plume": "1.0.0-rc.174"
|
"vuepress-theme-plume": "1.0.0-rc.170"
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^20.6.0 || >=22.0.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||