mirror of
https://github.com/RhenCloud/Cloud-Index.git
synced 2025-12-06 15:26:10 +08:00
初始化文档
This commit is contained in:
22
docs/.vuepress/client.ts
Normal file
22
docs/.vuepress/client.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { defineClientConfig } from 'vuepress/client'
|
||||
// import RepoCard from 'vuepress-theme-plume/features/RepoCard.vue'
|
||||
// import NpmBadge from 'vuepress-theme-plume/features/NpmBadge.vue'
|
||||
// import NpmBadgeGroup from 'vuepress-theme-plume/features/NpmBadgeGroup.vue'
|
||||
// import Swiper from 'vuepress-theme-plume/features/Swiper.vue'
|
||||
|
||||
// import CustomComponent from './theme/components/Custom.vue'
|
||||
|
||||
// import './theme/styles/custom.css'
|
||||
|
||||
export default defineClientConfig({
|
||||
enhance({ app }) {
|
||||
// built-in components
|
||||
// app.component('RepoCard', RepoCard)
|
||||
// app.component('NpmBadge', NpmBadge)
|
||||
// app.component('NpmBadgeGroup', NpmBadgeGroup)
|
||||
// app.component('Swiper', Swiper) // you should install `swiper`
|
||||
|
||||
// your custom components
|
||||
// app.component('CustomComponent', CustomComponent)
|
||||
},
|
||||
})
|
||||
16
docs/.vuepress/collections.ts
Normal file
16
docs/.vuepress/collections.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { defineUserConfig } from "vuepress";
|
||||
import { plumeTheme } from "vuepress-theme-plume";
|
||||
|
||||
export default defineUserConfig({
|
||||
theme: plumeTheme({
|
||||
collections: [
|
||||
{
|
||||
type: "doc",
|
||||
dir: "guide",
|
||||
linkPrefix: "/guide/",
|
||||
title: "TypeScript 笔记",
|
||||
sidebar: ["basic", "types"],
|
||||
},
|
||||
],
|
||||
}),
|
||||
});
|
||||
168
docs/.vuepress/config.ts
Normal file
168
docs/.vuepress/config.ts
Normal file
@@ -0,0 +1,168 @@
|
||||
/**
|
||||
* 查看以下文档了解主题配置
|
||||
* - @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 { defineUserConfig } from "vuepress";
|
||||
import { plumeTheme } from "vuepress-theme-plume";
|
||||
|
||||
export default defineUserConfig({
|
||||
base: "/",
|
||||
lang: "zh-CN",
|
||||
title: "Cloud Index Docs",
|
||||
description: "一个支持多种云存储后端的文件管理、索引和浏览服务",
|
||||
|
||||
head: [
|
||||
// 配置站点图标
|
||||
["link", { rel: "icon", type: "image/png", href: "https://theme-plume.vuejs.press/favicon-32x32.png" }],
|
||||
],
|
||||
|
||||
bundler: viteBundler(),
|
||||
shouldPrefetch: false, // 站点较大,页面数量较多时,不建议启用
|
||||
|
||||
theme: plumeTheme({
|
||||
/* 添加您的部署域名, 有助于 SEO, 生成 sitemap */
|
||||
hostname: "https://docs.cloud-index.rhen.cloud",
|
||||
|
||||
/* 文档仓库配置,用于 editLink */
|
||||
docsRepo: "RhenCloud/Cloud Index", // TODO: 替换为你的仓库,例如 'RhenCloud/cloud-index-docs'
|
||||
docsDir: "docs",
|
||||
docsBranch: "docs",
|
||||
|
||||
/* 页内信息 */
|
||||
editLink: true,
|
||||
lastUpdated: {},
|
||||
contributors: true,
|
||||
// changelog: false,
|
||||
|
||||
/**
|
||||
* 编译缓存,加快编译速度
|
||||
* @see https://theme-plume.vuejs.press/config/basic/#cache
|
||||
*/
|
||||
cache: "filesystem",
|
||||
|
||||
/**
|
||||
* 为 markdown 文件自动添加 frontmatter 配置
|
||||
* @see https://theme-plume.vuejs.press/config/basic/#autofrontmatter
|
||||
*/
|
||||
autoFrontmatter: {
|
||||
permalink: false, // 禁用自动生成随机 permalink,改为手动配置
|
||||
createTime: true, // 是否生成创建时间
|
||||
title: true, // 是否生成标题
|
||||
},
|
||||
|
||||
/* 本地搜索, 默认启用 */
|
||||
search: { provider: "local" },
|
||||
|
||||
/**
|
||||
* Algolia DocSearch
|
||||
* 启用此搜索需要将 本地搜索 search 设置为 false
|
||||
* @see https://theme-plume.vuejs.press/config/plugins/search/#algolia-docsearch
|
||||
*/
|
||||
// search: {
|
||||
// provider: 'algolia',
|
||||
// appId: '',
|
||||
// apiKey: '',
|
||||
// indices: [''],
|
||||
// },
|
||||
|
||||
/**
|
||||
* Shiki 代码高亮
|
||||
* @see https://theme-plume.vuejs.press/config/plugins/code-highlight/
|
||||
*/
|
||||
// codeHighlighter: {
|
||||
// twoslash: true, // 启用 twoslash
|
||||
// whitespace: true, // 启用 空格/Tab 高亮
|
||||
// lineNumbers: true, // 启用行号
|
||||
// },
|
||||
|
||||
/* 文章字数统计、阅读时间,设置为 false 则禁用 */
|
||||
// readingTime: true,
|
||||
|
||||
/**
|
||||
* markdown
|
||||
* @see https://theme-plume.vuejs.press/config/markdown/
|
||||
*/
|
||||
// markdown: {
|
||||
// abbr: true, // 启用 abbr 语法 *[label]: content
|
||||
// annotation: true, // 启用 annotation 语法 [+label]: content
|
||||
// pdf: true, // 启用 PDF 嵌入 @[pdf](/xxx.pdf)
|
||||
// caniuse: true, // 启用 caniuse 语法 @[caniuse](feature_name)
|
||||
// plot: true, // 启用隐秘文本语法 !!xxxx!!
|
||||
// bilibili: true, // 启用嵌入 bilibili视频 语法 @[bilibili](bid)
|
||||
// youtube: true, // 启用嵌入 youtube视频 语法 @[youtube](video_id)
|
||||
// artPlayer: true, // 启用嵌入 artPlayer 本地视频 语法 @[artPlayer](url)
|
||||
// audioReader: true, // 启用嵌入音频朗读功能 语法 @[audioReader](url)
|
||||
// icon: { provider: 'iconify' }, // 启用内置图标语法 ::icon-name::
|
||||
// table: true, // 启用表格增强容器语法 ::: table
|
||||
// codepen: true, // 启用嵌入 codepen 语法 @[codepen](user/slash)
|
||||
// replit: true, // 启用嵌入 replit 语法 @[replit](user/repl-name)
|
||||
// codeSandbox: true, // 启用嵌入 codeSandbox 语法 @[codeSandbox](id)
|
||||
// jsfiddle: true, // 启用嵌入 jsfiddle 语法 @[jsfiddle](user/id)
|
||||
// npmTo: true, // 启用 npm-to 容器 ::: npm-to
|
||||
// demo: true, // 启用 demo 容器 ::: demo
|
||||
// repl: { // 启用 代码演示容器
|
||||
// go: true, // ::: go-repl
|
||||
// rust: true, // ::: rust-repl
|
||||
// kotlin: true, // ::: kotlin-repl
|
||||
// python: true, // ::: python-repl
|
||||
// },
|
||||
// math: { // 启用数学公式
|
||||
// type: 'katex',
|
||||
// },
|
||||
// chartjs: true, // 启用 chart.js
|
||||
// echarts: true, // 启用 ECharts
|
||||
// mermaid: true, // 启用 mermaid
|
||||
// flowchart: true, // 启用 flowchart
|
||||
// image: {
|
||||
// figure: true, // 启用 figure
|
||||
// lazyload: true, // 启用图片懒加载
|
||||
// mark: true, // 启用图片标记
|
||||
// size: true, // 启用图片大小
|
||||
// },
|
||||
// include: true, // 在 Markdown 文件中导入其他 markdown 文件内容
|
||||
// imageSize: 'local', // 启用 自动填充 图片宽高属性,避免页面抖动
|
||||
// },
|
||||
|
||||
/**
|
||||
* 水印
|
||||
* @see https://theme-plume.vuejs.press/guide/features/watermark/
|
||||
*/
|
||||
// watermark: true,
|
||||
|
||||
/**
|
||||
* 评论 comments
|
||||
* @see https://theme-plume.vuejs.press/guide/features/comments/
|
||||
*/
|
||||
// comment: {
|
||||
// provider: '', // "Artalk" | "Giscus" | "Twikoo" | "Waline"
|
||||
// comment: true,
|
||||
// repo: '',
|
||||
// repoId: '',
|
||||
// category: '',
|
||||
// categoryId: '',
|
||||
// mapping: 'pathname',
|
||||
// reactionsEnabled: true,
|
||||
// inputPosition: 'top',
|
||||
// },
|
||||
|
||||
/**
|
||||
* 资源链接替换
|
||||
* @see https://theme-plume.vuejs.press/guide/features/replace-assets/
|
||||
*/
|
||||
// replaceAssets: 'https://cdn.example.com',
|
||||
|
||||
/**
|
||||
* 加密功能
|
||||
* @see https://theme-plume.vuejs.press/guide/features/encryption/
|
||||
*/
|
||||
// encrypt: {},
|
||||
}),
|
||||
});
|
||||
30
docs/.vuepress/navbar.ts
Normal file
30
docs/.vuepress/navbar.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* @see https://theme-plume.vuejs.press/config/navigation/ 查看文档了解配置详情
|
||||
*
|
||||
* Navbar 配置文件,它在 `.vuepress/plume.config.ts` 中被导入。
|
||||
*/
|
||||
|
||||
import { defineNavbarConfig } from "vuepress-theme-plume";
|
||||
|
||||
export default defineNavbarConfig([
|
||||
{ text: "首页", link: "/" },
|
||||
{
|
||||
text: "📖 文档",
|
||||
items: [
|
||||
{ text: "项目介绍", link: "/guide/introduction" },
|
||||
{ text: "快速开始", link: "/guide/quickstart" },
|
||||
{ text: "安装指南", link: "/guide/installation" },
|
||||
{ text: "配置指南", link: "/guide/configuration" },
|
||||
{ text: "部署指南", link: "/guide/deployment" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "☁️ 存储后端",
|
||||
items: [
|
||||
{ text: "后端概览", link: "/storage/overview" },
|
||||
{ text: "Cloudflare R2", link: "/storage/r2" },
|
||||
{ text: "Amazon S3", link: "/storage/s3" },
|
||||
{ text: "GitHub", link: "/storage/github" },
|
||||
],
|
||||
},
|
||||
]);
|
||||
125
docs/.vuepress/plume.config.ts
Normal file
125
docs/.vuepress/plume.config.ts
Normal file
@@ -0,0 +1,125 @@
|
||||
/**
|
||||
* 查看以下文档了解主题配置
|
||||
* - @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 navbar from "./navbar";
|
||||
import collections from "./collections";
|
||||
|
||||
/**
|
||||
* @see https://theme-plume.vuejs.press/config/basic/
|
||||
*/
|
||||
export default defineThemeConfig({
|
||||
logo: "https://theme-plume.vuejs.press/plume.png",
|
||||
|
||||
appearance: true, // 配置 深色模式
|
||||
|
||||
social: [
|
||||
{ icon: "github", link: "https://github.com/RhenCloud/Cloud-Index" }, // TODO: 替换为实际仓库 URL
|
||||
],
|
||||
// navbarSocialInclude: ['github'], // 允许显示在导航栏的 social 社交链接
|
||||
aside: true, // 页内侧边栏, 默认显示在右侧
|
||||
outline: [2, 3], // 页内大纲, 默认显示 h2, h3
|
||||
|
||||
/**
|
||||
* 文章版权信息
|
||||
* @see https://theme-plume.vuejs.press/guide/features/copyright/
|
||||
*/
|
||||
// copyright: true,
|
||||
|
||||
// prevPage: true, // 是否启用上一页链接
|
||||
// nextPage: true, // 是否启用下一页链接
|
||||
// createTime: true, // 是否显示文章创建时间
|
||||
|
||||
/* 站点页脚 */
|
||||
// footer: {
|
||||
// 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: '',
|
||||
// },
|
||||
|
||||
/**
|
||||
* @see https://theme-plume.vuejs.press/config/basic/#profile
|
||||
*/
|
||||
profile: {
|
||||
avatar: "https://theme-plume.vuejs.press/plume.png",
|
||||
name: "Cloud Index Docs",
|
||||
description: "一个支持多种云存储后端的文件管理、索引和浏览服务",
|
||||
// circle: true,
|
||||
// location: '',
|
||||
// organization: '',
|
||||
},
|
||||
|
||||
navbar,
|
||||
// collections,
|
||||
|
||||
/**
|
||||
* 侧边栏配置
|
||||
* @see https://theme-plume.vuejs.press/config/navigation/#sidebar
|
||||
*/
|
||||
sidebar: {
|
||||
"/guide/": [
|
||||
{
|
||||
text: "📖 使用指南",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: "项目介绍", link: "/guide/introduction" },
|
||||
{ text: "快速开始", link: "/guide/quickstart" },
|
||||
{
|
||||
text: "配置",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: "配置指南", link: "/guide/configuration" },
|
||||
{ text: "环境配置", link: "/guide/environment" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "部署",
|
||||
collapsed: false,
|
||||
items: [
|
||||
// { text: "Docker 部署", link: "/guide/docker" },
|
||||
{ text: "Vercel 部署", link: "/guide/vercel" },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"/storage/": [
|
||||
{
|
||||
text: "☁️ 存储后端",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: "后端概览", link: "/storage/overview" },
|
||||
{ text: "Cloudflare R2", link: "/storage/r2" },
|
||||
{ text: "Amazon S3", link: "/storage/s3" },
|
||||
{ text: "GitHub", link: "/storage/github" },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
/**
|
||||
* 公告板
|
||||
* @see https://theme-plume.vuejs.press/guide/features/bulletin/
|
||||
*/
|
||||
// bulletin: {
|
||||
// layout: 'top-right',
|
||||
// contentType: 'markdown',
|
||||
// title: '公告板标题',
|
||||
// content: '公告板内容',
|
||||
// },
|
||||
|
||||
/* 过渡动画 @see https://theme-plume.vuejs.press/config/basic/#transition */
|
||||
// transition: {
|
||||
// page: true, // 启用 页面间跳转过渡动画
|
||||
// postList: true, // 启用 博客文章列表过渡动画
|
||||
// appearance: 'fade', // 启用 深色模式切换过渡动画, 或配置过渡动画类型
|
||||
// },
|
||||
});
|
||||
8
docs/.vuepress/public/plume.svg
Normal file
8
docs/.vuepress/public/plume.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<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>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
11
docs/.vuepress/theme/components/Custom.vue
Normal file
11
docs/.vuepress/theme/components/Custom.vue
Normal file
@@ -0,0 +1,11 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue'
|
||||
|
||||
const message = ref('Hello World!')
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="my-custom-content">
|
||||
{{ message }}
|
||||
</div>
|
||||
</template>
|
||||
6
docs/.vuepress/theme/shim.d.ts
vendored
Normal file
6
docs/.vuepress/theme/shim.d.ts
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
declare module '*.vue' {
|
||||
import type { ComponentOptions } from 'vue'
|
||||
|
||||
const comp: ComponentOptions
|
||||
export default comp
|
||||
}
|
||||
50
docs/.vuepress/theme/styles/custom.css
Normal file
50
docs/.vuepress/theme/styles/custom.css
Normal file
@@ -0,0 +1,50 @@
|
||||
:root {
|
||||
/** 主题颜色 */
|
||||
|
||||
/*
|
||||
--vp-c-brand-1: #5086a1;
|
||||
--vp-c-brand-2: #6aa1b7;
|
||||
--vp-c-brand-3: #8cccd5;
|
||||
--vp-c-brand-soft: rgba(131, 208, 218, 0.314);
|
||||
*/
|
||||
|
||||
/** 背景颜色 */
|
||||
|
||||
/*
|
||||
--vp-c-bg: #fff;
|
||||
--vp-c-bg-alt: #f6f6f7;
|
||||
--vp-c-bg-elv: #fff;
|
||||
--vp-c-bg-soft: #f6f6f7;
|
||||
*/
|
||||
|
||||
/** 文本颜色 */
|
||||
|
||||
/*
|
||||
--vp-c-text-1: rgba(60, 60, 67);
|
||||
--vp-c-text-2: rgba(60, 60, 67, 0.78);
|
||||
--vp-c-text-3: rgba(60, 60, 67, 0.56);
|
||||
*/
|
||||
}
|
||||
|
||||
/** 深色模式 */
|
||||
[data-theme="dark"] {
|
||||
/*
|
||||
--vp-c-brand-1: #8cccd5;
|
||||
--vp-c-brand-2: #6aa1b7;
|
||||
--vp-c-brand-3: #5086a1;
|
||||
--vp-c-brand-soft: rgba(131, 208, 218, 0.314);
|
||||
*/
|
||||
|
||||
/*
|
||||
--vp-c-bg: #1b1b1f;
|
||||
--vp-c-bg-alt: #161618;
|
||||
--vp-c-bg-elv: #202127;
|
||||
--vp-c-bg-soft: #202127;
|
||||
*/
|
||||
|
||||
/*
|
||||
--vp-c-text-1: rgba(255, 255, 245, 0.86);
|
||||
--vp-c-text-2: rgba(235, 235, 245, 0.6);
|
||||
--vp-c-text-3: rgba(235, 235, 245, 0.38);
|
||||
*/
|
||||
}
|
||||
Reference in New Issue
Block a user