From 7b9463f6aa68719cddd43ab5d943f66684fc5d93 Mon Sep 17 00:00:00 2001 From: Axi404 Date: Fri, 30 Aug 2024 14:22:30 +0800 Subject: [PATCH] update .gitignore --- .gitignore | 1 - docs/.vitepress/config.mts | 97 ++++++++++++++ docs/.vitepress/theme/components/Layout.vue | 64 +++++++++ docs/.vitepress/theme/index.ts | 71 ++++++++++ docs/.vitepress/theme/style.css | 139 ++++++++++++++++++++ 5 files changed, 371 insertions(+), 1 deletion(-) create mode 100644 docs/.vitepress/config.mts create mode 100644 docs/.vitepress/theme/components/Layout.vue create mode 100644 docs/.vitepress/theme/index.ts create mode 100644 docs/.vitepress/theme/style.css diff --git a/.gitignore b/.gitignore index 6a16f8b..8dca5fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ node_modules -.vitepress docs/.vitepress/cache diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts new file mode 100644 index 0000000..ceae5ec --- /dev/null +++ b/docs/.vitepress/config.mts @@ -0,0 +1,97 @@ +import { defineConfig } from 'vitepress' +import { generateSidebar } from 'vitepress-sidebar'; + + +// https://vitepress.dev/reference/site-config +export default defineConfig({ + appearance: false, + markdown: { + image: { + lazyLoading: true + }, + math: true + }, + vite: { + optimizeDeps: { + exclude: [ + '@nolebase/vitepress-plugin-enhanced-readabilities/client', + ], + }, + ssr: { + noExternal: [ + // 如果还有别的依赖需要添加的话,并排填写和配置到这里即可 + '@nolebase/vitepress-plugin-enhanced-readabilities', + ], + }, + }, + lastUpdated: true, + lang: 'zh-CN', + base: '/', + title: "RMVision-001", + description: "西安交大视觉组教程", + themeConfig: { + sidebarMenuLabel:'目录', + returnToTopLabel:'返回顶部', + lastUpdated: { + text: '上次更新于', + formatOptions: { + dateStyle: 'full', + timeStyle: 'medium' + }, + }, + footer: { + message: 'Released under the MIT License.', + copyright: 'Copyright © 2023-2024present XJTU-RMV', + }, + docFooter: { + prev: '上一页', + next: '下一页', + }, + editLink: { + pattern: 'https://github.com/XJTU-RMV/XJTU-RMV.github.io/edit/main/docs/:path', // 改成自己的仓库 + text: '在GitHub编辑本页' + }, + outline: { + level: 'deep', // 显示2-6级标题 + label: '目录' // 文字显示 + }, + search: { + provider: 'local' + }, + // logo: { + // src: '/logo.svg', + // alt: 'Logo: XiStudyGroup', + // }, + siteTitle: false, //标题隐藏 + // https://vitepress.dev/reference/default-theme-config + nav: [ + { text: 'Home', link: '/' }, + { text: '前言', link: '/前言/' }, + { text: '贡献指南', link: '/前言/贡献指南' }, + { text: '任务书', link: '/任务书/' }, + ], + + sidebar: [ + { + text: '前言', + link: '/前言/', + collapsed: true, + items: [ + { text: '贡献指南', link: '/前言/贡献指南' }, + ] + }, + { + text: '任务书', + link: '/任务书/', + collapsed: true, + items: [ + { text: '安装 Ubuntu 20.04', link: '/任务书/Ubuntu' }, + ] + }, + ], + + socialLinks: [ + { icon: 'github', link: 'https://github.com/XJTU-RMV/XJTU-RMV.github.io' } + ] + } +}) diff --git a/docs/.vitepress/theme/components/Layout.vue b/docs/.vitepress/theme/components/Layout.vue new file mode 100644 index 0000000..3c5ee23 --- /dev/null +++ b/docs/.vitepress/theme/components/Layout.vue @@ -0,0 +1,64 @@ + + + + + + + \ No newline at end of file diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts new file mode 100644 index 0000000..8e7c9e5 --- /dev/null +++ b/docs/.vitepress/theme/index.ts @@ -0,0 +1,71 @@ +// https://vitepress.dev/guide/custom-theme +import { h } from 'vue' +import type { Theme } from 'vitepress' +import DefaultTheme from 'vitepress/theme' +import giscusTalk from 'vitepress-plugin-comment-with-giscus'; +import { useData, useRoute } from 'vitepress'; +import googleAnalytics from 'vitepress-plugin-google-analytics' +import "./components/Layout.vue" +import { inBrowser } from 'vitepress' +import busuanzi from 'busuanzi.pure.js' + +import { + NolebaseEnhancedReadabilitiesMenu, + NolebaseEnhancedReadabilitiesPlugin, + NolebaseEnhancedReadabilitiesScreenMenu, +} from '@nolebase/vitepress-plugin-enhanced-readabilities/client' + +import '@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css' + +import './style.css' + +export default { + extends: DefaultTheme, + setup() { + // Get frontmatter and route + const { frontmatter } = useData(); + const route = useRoute(); + + // giscus配置 + giscusTalk({ + repo: 'XJTU-RMV/XJTU-RMV.github.io', //仓库 + repoId: 'R_kgDOMqXVEA', //仓库ID + category: 'Announcements', // 讨论分类 + categoryId: 'DIC_kwDOMqXVEM4CiDzM', //讨论分类ID + mapping: 'pathname', + inputPosition: 'bottom', + lang: 'zh-CN', + }, + { + frontmatter, route + }, + //默认值为true,表示已启用,此参数可以忽略; + //如果为false,则表示未启用 + //您可以使用“comment:true”序言在页面上单独启用它 + true + ); + }, + Layout: () => { + return h(DefaultTheme.Layout, null, { + // https://vitepress.dev/guide/extending-default-theme#layout-slots + 'nav-bar-content-after': () => h(NolebaseEnhancedReadabilitiesMenu), + // 为较窄的屏幕(通常是小于 iPad Mini)添加阅读增强菜单 + 'nav-screen-content-after': () => h(NolebaseEnhancedReadabilitiesScreenMenu) + }) + }, + enhanceApp({ app, router, siteData }) { + if (inBrowser) { + router.onAfterRouteChanged = () => { + busuanzi.fetch() + } + } + googleAnalytics({ + id: 'G-Y4NJEXCBER', //跟踪ID,在analytics.google.com注册即可 + }), + app.use(NolebaseEnhancedReadabilitiesPlugin, { + spotlight: { + defaultToggle: true, + }, + }) + } +} satisfies Theme diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css new file mode 100644 index 0000000..d63aee8 --- /dev/null +++ b/docs/.vitepress/theme/style.css @@ -0,0 +1,139 @@ +/** + * Customize default theme styling by overriding CSS variables: + * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css + */ + +/** + * Colors + * + * Each colors have exact same color scale system with 3 levels of solid + * colors with different brightness, and 1 soft color. + * + * - `XXX-1`: The most solid color used mainly for colored text. It must + * satisfy the contrast ratio against when used on top of `XXX-soft`. + * + * - `XXX-2`: The color used mainly for hover state of the button. + * + * - `XXX-3`: The color for solid background, such as bg color of the button. + * It must satisfy the contrast ratio with pure white (#ffffff) text on + * top of it. + * + * - `XXX-soft`: The color used for subtle background such as custom container + * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors + * on top of it. + * + * The soft color must be semi transparent alpha channel. This is crucial + * because it allows adding multiple "soft" colors on top of each other + * to create a accent, such as when having inline code block inside + * custom containers. + * + * - `default`: The color used purely for subtle indication without any + * special meanings attched to it such as bg color for menu hover state. + * + * - `brand`: Used for primary brand colors, such as link text, button with + * brand theme, etc. + * + * - `tip`: Used to indicate useful information. The default theme uses the + * brand color for this by default. + * + * - `warning`: Used to indicate warning to the users. Used in custom + * container, badges, etc. + * + * - `danger`: Used to show error, or dangerous message to the users. Used + * in custom container, badges, etc. + * -------------------------------------------------------------------------- */ + + :root { + --vp-c-default-1: var(--vp-c-gray-1); + --vp-c-default-2: var(--vp-c-gray-2); + --vp-c-default-3: var(--vp-c-gray-3); + --vp-c-default-soft: var(--vp-c-gray-soft); + + --vp-c-brand-1: var(--vp-c-indigo-1); + --vp-c-brand-2: var(--vp-c-indigo-2); + --vp-c-brand-3: var(--vp-c-indigo-3); + --vp-c-brand-soft: var(--vp-c-indigo-soft); + + --vp-c-tip-1: var(--vp-c-brand-1); + --vp-c-tip-2: var(--vp-c-brand-2); + --vp-c-tip-3: var(--vp-c-brand-3); + --vp-c-tip-soft: var(--vp-c-brand-soft); + + --vp-c-warning-1: var(--vp-c-yellow-1); + --vp-c-warning-2: var(--vp-c-yellow-2); + --vp-c-warning-3: var(--vp-c-yellow-3); + --vp-c-warning-soft: var(--vp-c-yellow-soft); + + --vp-c-danger-1: var(--vp-c-red-1); + --vp-c-danger-2: var(--vp-c-red-2); + --vp-c-danger-3: var(--vp-c-red-3); + --vp-c-danger-soft: var(--vp-c-red-soft); +} + +/** + * Component: Button + * -------------------------------------------------------------------------- */ + +:root { + --vp-button-brand-border: transparent; + --vp-button-brand-text: var(--vp-c-white); + --vp-button-brand-bg: var(--vp-c-brand-3); + --vp-button-brand-hover-border: transparent; + --vp-button-brand-hover-text: var(--vp-c-white); + --vp-button-brand-hover-bg: var(--vp-c-brand-2); + --vp-button-brand-active-border: transparent; + --vp-button-brand-active-text: var(--vp-c-white); + --vp-button-brand-active-bg: var(--vp-c-brand-1); +} + +/** + * Component: Home + * -------------------------------------------------------------------------- */ + +:root { + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: -webkit-linear-gradient( + 120deg, + #bd34fe 30%, + #41d1ff + ); + + --vp-home-hero-image-background-image: linear-gradient( + -45deg, + #bd34fe 50%, + #47caff 50% + ); + --vp-home-hero-image-filter: blur(44px); +} + +@media (min-width: 640px) { + :root { + --vp-home-hero-image-filter: blur(56px); + } +} + +@media (min-width: 960px) { + :root { + --vp-home-hero-image-filter: blur(68px); + } +} + +/** + * Component: Custom Block + * -------------------------------------------------------------------------- */ + +:root { + --vp-custom-block-tip-border: transparent; + --vp-custom-block-tip-text: var(--vp-c-text-1); + --vp-custom-block-tip-bg: var(--vp-c-brand-soft); + --vp-custom-block-tip-code-bg: var(--vp-c-brand-soft); +} + +/** + * Component: Algolia + * -------------------------------------------------------------------------- */ + +.DocSearch { + --docsearch-primary-color: var(--vp-c-brand-1) !important; +} +