refactor: styles and i18n for documents site

This commit is contained in:
Hintay 2023-05-05 23:08:03 +08:00
parent 5b34f0f052
commit a2fe98e1a2
No known key found for this signature in database
GPG key ID: 120FC7FF121F2F2D
14 changed files with 493 additions and 107 deletions

View file

@ -1,103 +0,0 @@
import {defineConfig} from 'vitepress'
// https://vitepress.dev/reference/site-config
function thisYear() {
return new Date().getFullYear()
}
export default defineConfig({
lang: 'en-US',
title: 'Nginx UI',
description: 'Yet another Nginx Web UI',
lastUpdated: true,
locales: {
root: {
label: 'English',
lang: 'en'
},
zh_CN: {
label: '简体中文',
lang: 'zh_CN'
}
},
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
nav: [
{text: 'Home', link: '/'},
{text: 'Guide', link: '/guide/about'},
{text: 'Demo', link: 'https://demo.nginxui.com'}
],
sidebar: sidebar(),
editLink: {
pattern: 'https://github.com/0xJacky/nginx-ui/edit/master/frontend/docs/:path'
},
search: {
provider: 'local'
},
footer: {
message: 'Released under the AGPL-3.0 License.',
copyright: 'Copyright © 2021-' + thisYear() + ' Nginx UI Team'
},
socialLinks: [
{icon: 'github', link: 'https://github.com/0xJacky/nginx-ui'}
]
}
})
function sidebar() {
return {
'/guide/': [
{
text: 'Introduction',
collapsed: false,
items: [
{text: 'What is Nginx UI?', link: '/guide/about'},
{text: 'Getting Started', link: '/guide/getting-started'},
{text: 'Nginx Proxy Example', link: '/guide/nginx-proxy-example'},
{text: 'Contributing', link: '/guide/contributing'},
{text: 'License', link: '/guide/license'}
]
},
{
text: 'Configuration',
collapsed: false,
items: [
{text: 'Server', link: '/guide/config-server'},
{text: 'Nginx Log', link: '/guide/config-nginx-log'},
{text: 'Open AI', link: '/guide/config-openai'}
]
}
],
'/zh_CN/guide/': [
{
text: '介绍',
collapsed: false,
items: [
{text: '何为 Nginx UI?', link: '/zh_CN/guide/about'},
{text: '即刻开始', link: '/zh_CN/guide/getting-started'},
{text: 'Nginx 代理示例', link: '/zh_CN/guide/nginx-proxy-example'},
{text: '贡献代码', link: '/zh_CN/guide/contributing'},
{text: '开源协议', link: '/zh_CN/guide/license'}
]
},
{
text: '配置',
collapsed: false,
items: [
{text: '服务端', link: '/zh_CN/guide/config-server'},
{text: 'Nginx 日志', link: '/zh_CN/guide/config-nginx-log'},
{text: 'Open AI', link: '/zh_CN/guide/config-openai'}
]
}
]
}
}

View file

@ -0,0 +1,36 @@
import {LocaleSpecificConfig, DefaultTheme} from "vitepress"
export const enConfig: LocaleSpecificConfig<DefaultTheme.Config> = {
themeConfig: {
nav: [
{text: 'Home', link: '/'},
{text: 'Guide', link: '/guide/about'},
{text: 'Demo', link: 'https://demo.nginxui.com'}
],
sidebar: {
'/guide/': [
{
text: 'Introduction',
collapsed: false,
items: [
{text: 'What is Nginx UI?', link: '/guide/about'},
{text: 'Getting Started', link: '/guide/getting-started'},
{text: 'Nginx Proxy Example', link: '/guide/nginx-proxy-example'},
{text: 'Contributing', link: '/guide/contributing'},
{text: 'License', link: '/guide/license'}
]
},
{
text: 'Configuration',
collapsed: false,
items: [
{text: 'Server', link: '/guide/config-server'},
{text: 'Nginx Log', link: '/guide/config-nginx-log'},
{text: 'Open AI', link: '/guide/config-openai'}
]
}
],
},
}
}

View file

@ -0,0 +1,12 @@
import { defineConfig } from 'vitepress'
import { sharedConfig } from './shared'
import { enConfig } from "./en"
import { zhCNConfig } from "./zh_CN"
export default defineConfig({
...sharedConfig,
locales: {
root: { label: 'English', lang: 'en', ...enConfig },
zh_CN: { label: '简体中文', lang: 'zh-CN', ...zhCNConfig }
}
})

View file

@ -0,0 +1,33 @@
import { defineConfig } from 'vitepress'
function thisYear() {
return new Date().getFullYear()
}
export const sharedConfig = defineConfig({
title: 'Nginx UI',
description: 'Yet another Nginx Web UI',
lastUpdated: true,
themeConfig: {
logo: '/logo.svg',
search: {
provider: 'local'
},
editLink: {
pattern: 'https://github.com/0xJacky/nginx-ui/edit/master/docs/:path'
},
footer: {
message: 'Released under the AGPL-3.0 License.',
copyright: 'Copyright © 2021-' + thisYear() + ' Nginx UI Team'
},
socialLinks: [
{icon: 'github', link: 'https://github.com/0xJacky/nginx-ui'}
]
}
})

View file

@ -0,0 +1,76 @@
import {LocaleSpecificConfig, DefaultTheme} from "vitepress"
export const zhCNConfig: LocaleSpecificConfig<DefaultTheme.Config> = {
themeConfig: {
nav: [
{text: '首页', link: '/zh_CN/'},
{text: '手册', link: '/zh_CN/guide/about'},
{text: '演示', link: 'https://demo.nginxui.com'}
],
editLink: {
text: '编辑此页',
pattern: 'https://github.com/0xJacky/nginx-ui/edit/master/docs/:path'
},
sidebar: {
'/zh_CN/guide/': [
{
text: '介绍',
collapsed: false,
items: [
{text: '何为 Nginx UI?', link: '/zh_CN/guide/about'},
{text: '即刻开始', link: '/zh_CN/guide/getting-started'},
{text: 'Nginx 代理示例', link: '/zh_CN/guide/nginx-proxy-example'},
{text: '贡献代码', link: '/zh_CN/guide/contributing'},
{text: '开源协议', link: '/zh_CN/guide/license'}
]
},
{
text: '配置',
collapsed: false,
items: [
{text: '服务端', link: '/zh_CN/guide/config-server'},
{text: 'Nginx 日志', link: '/zh_CN/guide/config-nginx-log'},
{text: 'Open AI', link: '/zh_CN/guide/config-openai'}
]
}
]
},
docFooter: {
prev: '上一页',
next: '下一页',
},
returnToTopLabel: '返回顶部',
outlineTitle: '导航栏',
darkModeSwitchLabel: '外观',
sidebarMenuLabel: '归档',
lastUpdatedText: '更新于',
search: {
provider: 'local',
options: {
locales: {
zh_CN: {
translations: {
button: {
buttonText: '搜索文档',
buttonAriaLabel: '搜索文档'
},
modal: {
noResultsText: '无法找到相关结果',
resetButtonTitle: '清除查询条件',
footer: {
selectText: '选择',
navigateText: '切换',
closeText: '关闭'
}
}
}
}
}
}
}
}
}

View file

@ -0,0 +1,12 @@
<script setup>
import DefaultTheme from 'vitepress/theme'
const { Layout } = DefaultTheme
</script>
<template>
<Layout />
</template>
<style scoped lang="less">
</style>

View file

@ -0,0 +1,8 @@
import DefaultTheme from 'vitepress/theme'
import Layout from './Layout.vue'
import './styles/custom.less'
export default {
extends: DefaultTheme,
Layout: Layout
}

View file

@ -0,0 +1,123 @@
/**
* Colors
* -------------------------------------------------------------------------- */
@brand-color: #3682D8;
@brand-gradient-color: #00D2FF;
:root {
--vp-c-brand: @brand-color;
--vp-c-brand-light: lighten(@brand-color, 8%);
--vp-c-brand-lighter: lighten(@brand-color, 16%);
--vp-c-brand-lightest: lighten(@brand-color, 24%);
--vp-c-brand-dark: darken(@brand-color, 8%);
--vp-c-brand-darker: darken(@brand-color, 16%);
--vp-c-brand-dimm: rgba(100, 108, 255, 0.08);
}
/**
* Component: Button
* -------------------------------------------------------------------------- */
:root {
--vp-button-brand-border: var(--vp-c-brand-light);
--vp-button-brand-text: var(--vp-c-text-dark-1);
--vp-button-brand-bg: var(--vp-c-brand);
--vp-button-brand-hover-border: var(--vp-c-brand-light);
--vp-button-brand-hover-text: var(--vp-c-text-dark-1);
--vp-button-brand-hover-bg: var(--vp-c-brand-light);
--vp-button-brand-active-border: var(--vp-c-brand-light);
--vp-button-brand-active-text: var(--vp-c-text-dark-1);
--vp-button-brand-active-bg: var(--vp-button-brand-bg);
}
/**
* Component: Home
* -------------------------------------------------------------------------- */
:root {
--vp-home-hero-name-color: transparent;
--vp-home-hero-name-background: -webkit-linear-gradient(
120deg,
@brand-color 30%,
@brand-gradient-color
);
--vp-home-hero-image-background-image: linear-gradient(
-45deg,
@brand-color 50%,
@brand-gradient-color 50%
);
--vp-home-hero-image-filter: blur(40px);
}
@media (min-width: 640px) {
:root {
--vp-home-hero-image-filter: blur(56px);
}
}
@media (min-width: 960px) {
:root {
--vp-home-hero-image-filter: blur(72px);
}
}
/**
* Component: Custom Block
* -------------------------------------------------------------------------- */
:root {
--vp-custom-block-tip-border: var(--vp-c-brand);
--vp-custom-block-tip-text: var(--vp-c-brand-darker);
--vp-custom-block-tip-bg: var(--vp-c-brand-dimm);
}
.dark {
--vp-custom-block-tip-border: var(--vp-c-brand);
--vp-custom-block-tip-text: var(--vp-c-brand-lightest);
--vp-custom-block-tip-bg: var(--vp-c-brand-dimm);
}
/**
* Component: Algolia
* -------------------------------------------------------------------------- */
.DocSearch {
--docsearch-primary-color: var(--vp-c-brand) !important;
}
/**
* VitePress: Custom fix
* -------------------------------------------------------------------------- */
/*
Use lighter colors for links in dark mode for a11y.
Also specify some classes twice to have higher specificity
over scoped class data attribute.
*/
.dark .vp-doc a,
.dark .vp-doc a > code,
.dark .VPNavBarMenuLink.VPNavBarMenuLink:hover,
.dark .VPNavBarMenuLink.VPNavBarMenuLink.active,
.dark .link.link:hover,
.dark .link.link.active,
.dark .edit-link-button.edit-link-button,
.dark .pager-link .title {
color: var(--vp-c-brand-lighter);
}
.dark .vp-doc a:hover,
.dark .vp-doc a > code:hover {
color: var(--vp-c-brand-lightest);
opacity: 1;
}
/* Transition by color instead of opacity */
.dark .vp-doc .custom-block a {
transition: color 0.25s;
}
.VPNavBar {
white-space: nowrap;
}

View file

@ -9,6 +9,9 @@ hero:
name: "Nginx UI"
text: "Yet another Nginx Web UI"
tagline: Simple, powerful, and fast.
image:
src: /icon.svg
alt: Nginx UI
actions:
- theme: brand
text: Get Started

View file

@ -8,5 +8,9 @@
},
"dependencies": {
"vitepress": "^1.0.0-alpha.75"
},
"devDependencies": {
"less": "^4.1.3",
"less-loader": "^11.1.0"
}
}

1
docs/public/Icon.svg Normal file
View file

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512"><defs><style>.e{fill:#fff;fill-rule:evenodd;}.f{fill:url(#c);}</style><radialGradient id="c" cx="257.68" cy="166.3" fx="257.68" fy="166.3" r="388.1" gradientTransform="matrix(1, 0, 0, 1, 0, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#00d2ff"/><stop offset=".34" stop-color="#3682d8"/></radialGradient></defs><path id="b" class="e" d="M453.68,15.23C435.1,5.29,416.68,0,365.86,0H146.14C95.32,0,76.9,5.29,58.32,15.23,39.74,25.16,25.16,39.74,15.23,58.32,5.29,76.9,0,95.32,0,146.14v219.72c0,50.82,5.29,69.24,15.23,87.82,9.94,18.58,24.52,33.16,43.09,43.09,18.58,9.94,37.01,15.23,87.82,15.23h219.72c50.82,0,69.24-5.29,87.82-15.23,18.58-9.94,33.16-24.52,43.09-43.09,9.94-18.58,15.23-37.01,15.23-87.82V146.14c0-50.82-5.29-69.24-15.23-87.82-9.94-18.58-24.52-33.16-43.09-43.09Z"/><path id="d" class="f" d="M189.14,139.38l133.32,191.73h.99V139.38h27.06v235.62h-27.72L188.81,181.29h-.99v193.71h-27.06V139.38h28.38Z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
docs/public/logo.svg Normal file
View file

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 311 356"><defs><style>.f{fill:url(#b);filter:url(#c);}</style><radialGradient id="b" cx="157.68" cy="87.3" fx="157.68" fy="87.3" r="388.1" gradientTransform="matrix(1, 0, 0, 1, 0, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#00d2ff"/><stop offset=".34" stop-color="#3682d8"/></radialGradient><filter id="c" filterUnits="userSpaceOnUse"><feOffset dx="0" dy="0"/><feGaussianBlur result="d" stdDeviation="20"/><feFlood flood-color="#fff" flood-opacity=".5"/><feComposite in2="d" operator="in"/><feComposite in="SourceGraphic"/></filter></defs><path id="e" class="f" d="M89.14,60.38L222.46,252.11h.99V60.38h27.06v235.62h-27.72L88.81,102.29h-.99v193.71h-27.06V60.38h28.38Z"/></svg>

After

Width:  |  Height:  |  Size: 837 B

View file

@ -777,6 +777,15 @@ __metadata:
languageName: node
linkType: hard
"copy-anything@npm:^2.0.1":
version: 2.0.6
resolution: "copy-anything@npm:2.0.6"
dependencies:
is-what: ^3.14.1
checksum: 7318dc00ca14f846d14fc886845cff63bf20a3c5f4fcdd31f68c40a213648c78a1093426947ac0f8f8577845e9a7a11eeaaeefb05d9a6f1b78ca5ec60c2aaf6e
languageName: node
linkType: hard
"csstype@npm:^2.6.8":
version: 2.6.21
resolution: "csstype@npm:2.6.21"
@ -796,6 +805,15 @@ __metadata:
languageName: node
linkType: hard
"debug@npm:^3.2.6":
version: 3.2.7
resolution: "debug@npm:3.2.7"
dependencies:
ms: ^2.1.1
checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c
languageName: node
linkType: hard
"delegates@npm:^1.0.0":
version: 1.0.0
resolution: "delegates@npm:1.0.0"
@ -814,6 +832,8 @@ __metadata:
version: 0.0.0-use.local
resolution: "docs@workspace:."
dependencies:
less: ^4.1.3
less-loader: ^11.1.0
vitepress: ^1.0.0-alpha.75
languageName: unknown
linkType: soft
@ -848,6 +868,17 @@ __metadata:
languageName: node
linkType: hard
"errno@npm:^0.1.1":
version: 0.1.8
resolution: "errno@npm:0.1.8"
dependencies:
prr: ~1.0.1
bin:
errno: cli.js
checksum: 1271f7b9fbb3bcbec76ffde932485d1e3561856d21d847ec613a9722ee924cdd4e523a62dc71a44174d91e898fe21fdc8d5b50823f4b5e0ce8c35c8271e6ef4a
languageName: node
linkType: hard
"esbuild@npm:^0.17.5":
version: 0.17.18
resolution: "esbuild@npm:0.17.18"
@ -1010,7 +1041,7 @@ __metadata:
languageName: node
linkType: hard
"graceful-fs@npm:^4.2.6":
"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.2.6":
version: 4.2.11
resolution: "graceful-fs@npm:4.2.11"
checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7
@ -1061,7 +1092,7 @@ __metadata:
languageName: node
linkType: hard
"iconv-lite@npm:^0.6.2":
"iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3":
version: 0.6.3
resolution: "iconv-lite@npm:0.6.3"
dependencies:
@ -1070,6 +1101,15 @@ __metadata:
languageName: node
linkType: hard
"image-size@npm:~0.5.0":
version: 0.5.5
resolution: "image-size@npm:0.5.5"
bin:
image-size: bin/image-size.js
checksum: 6709d5cb73e96d5097ae5e9aa746dd36d6a9c8cf645e7eecac72ea07dbd6f312a65183752762fa92e2f3b698d4ed8d85dd55bf5207b6367245996bd16576d8fe
languageName: node
linkType: hard
"imurmurhash@npm:^0.1.4":
version: 0.1.4
resolution: "imurmurhash@npm:0.1.4"
@ -1129,6 +1169,13 @@ __metadata:
languageName: node
linkType: hard
"is-what@npm:^3.14.1":
version: 3.14.1
resolution: "is-what@npm:3.14.1"
checksum: a9a6ce92d33799f1ae0916c7afb6f8128a23ce9d28bd69d9ec3ec88910e7a1f68432e6236c3c8a4d544cf0b864675e5d828437efde60ee0cf8102061d395c1df
languageName: node
linkType: hard
"isexe@npm:^2.0.0":
version: 2.0.0
resolution: "isexe@npm:2.0.0"
@ -1143,6 +1190,60 @@ __metadata:
languageName: node
linkType: hard
"klona@npm:^2.0.4":
version: 2.0.6
resolution: "klona@npm:2.0.6"
checksum: ac9ee3732e42b96feb67faae4d27cf49494e8a3bf3fa7115ce242fe04786788e0aff4741a07a45a2462e2079aa983d73d38519c85d65b70ef11447bbc3c58ce7
languageName: node
linkType: hard
"less-loader@npm:^11.1.0":
version: 11.1.0
resolution: "less-loader@npm:11.1.0"
dependencies:
klona: ^2.0.4
peerDependencies:
less: ^3.5.0 || ^4.0.0
webpack: ^5.0.0
checksum: 041216e0a6d95e24c9724f470719db3eb70b3888c45b1a1e9cd55edabe8ae79709522cd6c6713b466b3e9948544074e2a5b2be50ac3ced5ff41dfa9675f3b182
languageName: node
linkType: hard
"less@npm:^4.1.3":
version: 4.1.3
resolution: "less@npm:4.1.3"
dependencies:
copy-anything: ^2.0.1
errno: ^0.1.1
graceful-fs: ^4.1.2
image-size: ~0.5.0
make-dir: ^2.1.0
mime: ^1.4.1
needle: ^3.1.0
parse-node-version: ^1.0.1
source-map: ~0.6.0
tslib: ^2.3.0
dependenciesMeta:
errno:
optional: true
graceful-fs:
optional: true
image-size:
optional: true
make-dir:
optional: true
mime:
optional: true
needle:
optional: true
source-map:
optional: true
bin:
lessc: bin/lessc
checksum: 1470fbec993a375eb28d729cd906805fd62b7a7f1b4f5b4d62d04e81eaba987a9373e74aa0b9fa9191149ebc0bfb42e2ea98a038555555b7b241c10a854067cc
languageName: node
linkType: hard
"lru-cache@npm:^6.0.0":
version: 6.0.0
resolution: "lru-cache@npm:6.0.0"
@ -1168,6 +1269,16 @@ __metadata:
languageName: node
linkType: hard
"make-dir@npm:^2.1.0":
version: 2.1.0
resolution: "make-dir@npm:2.1.0"
dependencies:
pify: ^4.0.1
semver: ^5.6.0
checksum: 043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab
languageName: node
linkType: hard
"make-fetch-happen@npm:^10.0.3":
version: 10.2.1
resolution: "make-fetch-happen@npm:10.2.1"
@ -1199,6 +1310,15 @@ __metadata:
languageName: node
linkType: hard
"mime@npm:^1.4.1":
version: 1.6.0
resolution: "mime@npm:1.6.0"
bin:
mime: cli.js
checksum: fef25e39263e6d207580bdc629f8872a3f9772c923c7f8c7e793175cee22777bbe8bba95e5d509a40aaa292d8974514ce634ae35769faa45f22d17edda5e8557
languageName: node
linkType: hard
"minimatch@npm:^3.1.1":
version: 3.1.2
resolution: "minimatch@npm:3.1.2"
@ -1317,7 +1437,7 @@ __metadata:
languageName: node
linkType: hard
"ms@npm:^2.0.0":
"ms@npm:^2.0.0, ms@npm:^2.1.1":
version: 2.1.3
resolution: "ms@npm:2.1.3"
checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
@ -1333,6 +1453,19 @@ __metadata:
languageName: node
linkType: hard
"needle@npm:^3.1.0":
version: 3.2.0
resolution: "needle@npm:3.2.0"
dependencies:
debug: ^3.2.6
iconv-lite: ^0.6.3
sax: ^1.2.4
bin:
needle: bin/needle
checksum: d6f3e8668bbaf943d28ced0ad843eff793b56025e80152e511fd02313b8974e4dd9674bcbe3d8f9aa31882adb190dafe29ea5fce03a92b4724adf4850070bcfc
languageName: node
linkType: hard
"negotiator@npm:^0.6.3":
version: 0.6.3
resolution: "negotiator@npm:0.6.3"
@ -1401,6 +1534,13 @@ __metadata:
languageName: node
linkType: hard
"parse-node-version@npm:^1.0.1":
version: 1.0.1
resolution: "parse-node-version@npm:1.0.1"
checksum: c192393b6a978092c1ef8df2c42c0a02e4534b96543e23d335f1b9b5b913ac75473d18fe6050b58d6995c57fb383ee71a5cb8397e363caaf38a6df8215cc52fd
languageName: node
linkType: hard
"path-is-absolute@npm:^1.0.0":
version: 1.0.1
resolution: "path-is-absolute@npm:1.0.1"
@ -1415,6 +1555,13 @@ __metadata:
languageName: node
linkType: hard
"pify@npm:^4.0.1":
version: 4.0.1
resolution: "pify@npm:4.0.1"
checksum: 9c4e34278cb09987685fa5ef81499c82546c033713518f6441778fbec623fc708777fe8ac633097c72d88470d5963094076c7305cafc7ad340aae27cfacd856b
languageName: node
linkType: hard
"postcss@npm:^8.1.10, postcss@npm:^8.4.23":
version: 8.4.23
resolution: "postcss@npm:8.4.23"
@ -1450,6 +1597,13 @@ __metadata:
languageName: node
linkType: hard
"prr@npm:~1.0.1":
version: 1.0.1
resolution: "prr@npm:1.0.1"
checksum: 3bca2db0479fd38f8c4c9439139b0c42dcaadcc2fbb7bb8e0e6afaa1383457f1d19aea9e5f961d5b080f1cfc05bfa1fe9e45c97a1d3fd6d421950a73d3108381
languageName: node
linkType: hard
"readable-stream@npm:^3.6.0":
version: 3.6.2
resolution: "readable-stream@npm:3.6.2"
@ -1507,6 +1661,22 @@ __metadata:
languageName: node
linkType: hard
"sax@npm:^1.2.4":
version: 1.2.4
resolution: "sax@npm:1.2.4"
checksum: d3df7d32b897a2c2f28e941f732c71ba90e27c24f62ee918bd4d9a8cfb3553f2f81e5493c7f0be94a11c1911b643a9108f231dd6f60df3fa9586b5d2e3e9e1fe
languageName: node
linkType: hard
"semver@npm:^5.6.0":
version: 5.7.1
resolution: "semver@npm:5.7.1"
bin:
semver: ./bin/semver
checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf
languageName: node
linkType: hard
"semver@npm:^7.3.5":
version: 7.5.0
resolution: "semver@npm:7.5.0"
@ -1579,7 +1749,7 @@ __metadata:
languageName: node
linkType: hard
"source-map@npm:^0.6.1":
"source-map@npm:^0.6.1, source-map@npm:~0.6.0":
version: 0.6.1
resolution: "source-map@npm:0.6.1"
checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2
@ -1652,6 +1822,13 @@ __metadata:
languageName: node
linkType: hard
"tslib@npm:^2.3.0":
version: 2.5.0
resolution: "tslib@npm:2.5.0"
checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1
languageName: node
linkType: hard
"unique-filename@npm:^2.0.0":
version: 2.0.1
resolution: "unique-filename@npm:2.0.1"

View file

@ -9,6 +9,9 @@ hero:
name: "Nginx UI"
text: "Nginx 网络管理界面的新选择"
tagline: 简单、强大、高速
image:
src: /icon.svg
alt: Nginx UI
actions:
- theme: brand
text: 即刻开始