{{ title }}
+{{ desc }}
+From 0978615de54cda874e9afd1ff947ff799fc7b70d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=A2=E8=A1=80=E7=90=83AE3803?= <2544390577@qq.com> Date: Sun, 8 Dec 2024 18:43:06 +0900 Subject: [PATCH] Initial commit --- .editorconfig | 14 + .github/workflows/deploy.yml | 65 + .gitignore | 32 + .husky/commit-msg | 4 + .husky/pre-commit | 4 + .npmrc | 6 + .prettierignore | 20 + LICENSE | 21 + README.md | 88 + docs/.vitepress/config.ts | 83 + docs/.vitepress/configs/head.ts | 11 + docs/.vitepress/configs/index.ts | 3 + docs/.vitepress/configs/nav.ts | 15 + docs/.vitepress/configs/sidebar.ts | 3 + .../theme/components/MDocFooter.vue | 67 + docs/.vitepress/theme/components/MLayout.vue | 111 + docs/.vitepress/theme/components/MNavLink.vue | 135 + .../.vitepress/theme/components/MNavLinks.vue | 60 + .../theme/components/MNavVisitor.vue | 29 + docs/.vitepress/theme/composables/index.ts | 3 + .../theme/composables/useFormatPath.ts | 12 + .../theme/composables/useMediumZoom.ts | 49 + .../.vitepress/theme/composables/usePageId.ts | 14 + docs/.vitepress/theme/index.ts | 78 + docs/.vitepress/theme/styles/index.scss | 5 + docs/.vitepress/theme/styles/medium-zoom.scss | 14 + docs/.vitepress/theme/styles/rainbow.scss | 679 +++++ docs/.vitepress/theme/styles/tailwind.scss | 3 + docs/.vitepress/theme/styles/vars.scss | 103 + docs/.vitepress/theme/styles/vitepress.scss | 94 + docs/.vitepress/theme/types.ts | 10 + docs/index.md | 71 + docs/nav/data.ts | 606 ++++ docs/nav/index.md | 19 + docs/nav/index.scss | 36 + docs/public/favicon.ico | Bin 0 -> 4286 bytes docs/public/icons/chatgpt.png | Bin 0 -> 4159 bytes docs/public/icons/cnblogs.svg | 1 + docs/public/icons/es6.svg | 1 + docs/public/icons/jquery.svg | 1 + docs/public/icons/json-cn.ico | Bin 0 -> 16958 bytes docs/public/icons/koa.svg | 1 + docs/public/icons/nodejs.svg | 1 + docs/public/icons/pixiv.png | Bin 0 -> 975 bytes docs/public/icons/taro.svg | 1 + docs/public/icons/twitter.svg | 1 + docs/public/logo.png | Bin 0 -> 95858 bytes docs/test.md | 13 + env.d.ts | 32 + guide.md | 194 ++ netlify.toml | 6 + package.json | 55 + .../vite-plugin-markdown-preview@1.1.1.patch | 32 + pnpm-lock.yaml | 2662 +++++++++++++++++ postcss.config.js | 6 + tailwind.config.js | 7 + tsconfig.json | 14 + vercel.json | 7 + 58 files changed, 5602 insertions(+) create mode 100644 .editorconfig create mode 100644 .github/workflows/deploy.yml create mode 100644 .gitignore create mode 100755 .husky/commit-msg create mode 100755 .husky/pre-commit create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 docs/.vitepress/config.ts create mode 100644 docs/.vitepress/configs/head.ts create mode 100644 docs/.vitepress/configs/index.ts create mode 100644 docs/.vitepress/configs/nav.ts create mode 100644 docs/.vitepress/configs/sidebar.ts create mode 100644 docs/.vitepress/theme/components/MDocFooter.vue create mode 100644 docs/.vitepress/theme/components/MLayout.vue create mode 100644 docs/.vitepress/theme/components/MNavLink.vue create mode 100644 docs/.vitepress/theme/components/MNavLinks.vue create mode 100644 docs/.vitepress/theme/components/MNavVisitor.vue create mode 100644 docs/.vitepress/theme/composables/index.ts create mode 100644 docs/.vitepress/theme/composables/useFormatPath.ts create mode 100644 docs/.vitepress/theme/composables/useMediumZoom.ts create mode 100644 docs/.vitepress/theme/composables/usePageId.ts create mode 100644 docs/.vitepress/theme/index.ts create mode 100644 docs/.vitepress/theme/styles/index.scss create mode 100644 docs/.vitepress/theme/styles/medium-zoom.scss create mode 100644 docs/.vitepress/theme/styles/rainbow.scss create mode 100644 docs/.vitepress/theme/styles/tailwind.scss create mode 100644 docs/.vitepress/theme/styles/vars.scss create mode 100644 docs/.vitepress/theme/styles/vitepress.scss create mode 100644 docs/.vitepress/theme/types.ts create mode 100644 docs/index.md create mode 100644 docs/nav/data.ts create mode 100644 docs/nav/index.md create mode 100644 docs/nav/index.scss create mode 100644 docs/public/favicon.ico create mode 100644 docs/public/icons/chatgpt.png create mode 100644 docs/public/icons/cnblogs.svg create mode 100644 docs/public/icons/es6.svg create mode 100644 docs/public/icons/jquery.svg create mode 100644 docs/public/icons/json-cn.ico create mode 100644 docs/public/icons/koa.svg create mode 100644 docs/public/icons/nodejs.svg create mode 100644 docs/public/icons/pixiv.png create mode 100644 docs/public/icons/taro.svg create mode 100644 docs/public/icons/twitter.svg create mode 100644 docs/public/logo.png create mode 100644 docs/test.md create mode 100644 env.d.ts create mode 100644 guide.md create mode 100644 netlify.toml create mode 100644 package.json create mode 100644 patches/vite-plugin-markdown-preview@1.1.1.patch create mode 100644 pnpm-lock.yaml create mode 100644 postcss.config.js create mode 100644 tailwind.config.js create mode 100644 tsconfig.json create mode 100644 vercel.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c197a87 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +# http://editorconfig.org + +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..764ec48 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,65 @@ +name: GitHub Actions Build and Deploy + +# 触发条件 +on: + # 手动触发 + workflow_dispatch: + # push 到指定分支 + push: + branches: + - main + # 只在下列路径变更时触发 + paths: + - 'docs/**' + - 'package.json' + +# 设置权限 +permissions: + contents: write + +# 设置上海时区 +env: + TZ: Asia/Shanghai + +# 任务 +jobs: + build-and-deploy: + # 服务器环境:最新版 ubuntu + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [20] + steps: + # 拉取代码 + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + # 安装 pnpm + - name: Install pnpm + uses: pnpm/action-setup@v3 + with: + version: 8 + + # 设置 node 版本 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: 'pnpm' + + # 打包静态文件 + - name: Build + env: + APP_BASE_PATH: /${{ github.repository }} + run: pnpm install && pnpm run build + + # 部署 + - name: Deploy + uses: JamesIves/github-pages-deploy-action@v4 + with: + # GitHub Pages 读取的分支 + branch: gh-pages + # 静态文件所在目录 + folder: dist diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..42ad749 --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# editor directories and files +.idea +.vscode + +# dependencies +node_modules + +# compiled output +dist +dist-dev +build +cache +.cache +.temp +.tmp +.turbo + +# log and lock files +*.log +yarn.lock +package-lock.json + +# local env files +.env.local +.env.*.local + +# misc +.DS_Store + +# user-specific files diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 0000000..c3c6f55 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx femm-verify-commit $1 diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..5f1a273 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx lint-staged --quiet diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..20723e4 --- /dev/null +++ b/.npmrc @@ -0,0 +1,6 @@ +# https://docs.npmjs.com/cli/configuring-npm/npmrc/ +# https://pnpm.io/npmrc + +auto-install-peers=true + +registry=https://registry.npmmirror.com diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..bb5e06a --- /dev/null +++ b/.prettierignore @@ -0,0 +1,20 @@ +# See https://github.com/prettier/prettier/blob/main/docs/ignore.md + +# dependencies +node_modules + +# compiled output +dist +dist-dev +build +cache +.cache +.temp +.tmp + +# lock files +pnpm-lock.yaml +package-lock.json +yarn.lock + +# user-specific files diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..27fe280 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 maomao + +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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..386298d --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# vitepress-nav-template + +
+ +
+基于 VitePress 的个人前端导航页面模板
+ + +--- + +## 预览地址 + +-{{ desc }}
+;A(FY9
zwp-Q={P62dI7MLz$Dfv5U0OOTY2^7AEiaD`;9z`u`Jsb%HaDl#XP+@0=yW2(P%-xm
zn#dvux}+2n@Wi 9=mZdF-wgPGM{Jf#d$M35SU*z6(M!(%|t!
z$-$9JH(vhO#*vYYmyV2FIx>91#)sZ}EC214JI9kl! |_GtKH-I6RK$De^F=r51L
zAqWuUPC$Sxon@#@0D@Lv?P|HwZfR_`Tn;ri2w??%@u&wOWmB?W#^sI@vet-TXf%);
zrT{|V?P<@=JsEmC_Pj9Hs#aXh%HX${GIS>+e5eyGb4p9#z!^}8So%U$q8ALK3qo!M
z2|XaB*Arc*lGJZ<39m?B5TNMmDq&2-L}vXx5Xh)L3KVo(+P=M5%nn@m=H+*7yIB~8
zi3uD;99YHxFZPQ~I3hNP$qogbb&7aBcK6H2?A?3J1IIk@z~>Kq{^^FRf4%1Gdz76!
z0nPCnh6i`5H~kn|QUcaFx;?2hstXX9sZ*#6f~0FSBg+DWNpEu%HDEg^)VH*%o)HF4
z&G8{I!{lma-D|a~b>=ne{!}9Z0h+4Sf|?tAT>cRm;Ep@nbFEgnLiJ3B6)dWoj^_yy
zT*6D7I~ev-DuY=F*Mm(h*v7gT1e*E79pE!6jsk?dq}yE%AgQwv&Iqx(AkdDMP#_?|
zQmCad0Rmqe1VI8-R)C M;mVO@xG_y~6w`^(cdTw!gesRxSv+}y5bJ>z@!wWsn
zb%TL|!%a|7Lcu6f1whaNLUt_>NEZa9pcPapCZRVZD1>p^AA~L`T%p{wWQ%G03PKLn
z5qrJ>450PvzW?a$#~zt^sCdq=f`eWJpq^L%YH~PGT>HWhe)j37pT7UVZx3SdyFwU%
z@D#uLCi`CcqE8+}cL`SV^5Kz3-`E}YEYFbAqX-BIMC$~G9TeoeNI7a48JBo+IODak
z;H)|~w>ZCLe%G-J(~ApFy!hfB!My?G*8
zLT)aEe~e*kfPjb0_j<+W@0aD2Eo2QY1h+l6eYEl13HsFMlq~@QeZ#BSGew=nFbCM&
zq=MN6*pk;b_VhM@@H7{Jt+|27CR4E!^Ut|oc=)Jz$F9ubm67TD!_Qy8$3UQufL%<>
z8r+wenE=7Bs7N5ml8Pxb+KYEpBMiJSxo=)=hPQ~^aJWC*v$#bN@LQ?4pT2N*5!+~B
zOq#9!dJszDB(#Eq)kY-(p?@<7UIdR`#YVYfsO9cR^$(-8rCZlBwsfK$zM|-|zNT8j
zCJwn~N)`Jx0>Kq;cN4N}yxD;~#2cE)?U77^hq;Re2o^Y(lB{xWo95v-`&tl^f_V!o
ziVrDoMd7J22Kpopf+BQTN3yV6O4&@-3)8{pwr_uRZ0JS`lz-vXxMjdjrys;o8u4D0
zVn9*^1yPie`L@@QT~0PM0;9pWtzY-e8UZQ+|F$CeBfEFv`+f5xLpR1hw-$t2KI`0<
zE0T95K#)~rkeEtvxKMv|pyUn^q>i3H?z^KQQH)}8P^s>k{s-1@>pB4>+&z7&kE{vB
z8YK-n2njEN5(y;?1awFf2vHmjm=x=;+zf)~3n>~>#x(yNjW+gIw@1?#n;Vw_0{q2B
zsDx|%&ag>vV;T}eZtxcYffoN8Tz!o<01yIfa2CbM)gmM!2wfv+oW*5xBK_nvi-;YG
z0}>uSf<+!#Qqb?rg%ltZ;!HXSGG=c*)$LPzzWt~ucRuTd_Tb6w+wZl-LHGuBrcuQB
zjiw@eCgCp9QA<^ R$q(sboaC$`atW#}woP#kD_!&Y2HW39Jl
z8W1vmb;?ZKzRh&uc8_orp86)BS0S@lu-QBE1c97?8V_t
zNge)?Q($247CeQ$7lsibeoeOwhBQ~Ur!Jnpa5|N7po`7{NEmC5U?2C0R05e
z&wp*@&<^XsgM9?Tp~KU4-HJ@pEF=a9Ok_pvc;y)OOj*Vd36A_M`43@(0RnRt$vEiF
zqLEF~IoP{FBN!kY{b74cd#wQi5<04hnv+yoFSAK5ZERse97LjvZ74r)uWM*qY{Zm-
zEk8S3=0$*D670;mLk-ed+S3&V2pm9QK?8|~TBaz*L4fhcu_9D&goCJgTp=rmBOo+0
z-oR^|Ae}va;d24eg6xtRARv77x)fVp)_iVJ5vl&%8}$~o8VcdLkB`njOfG(c6rItd
z2IecG7F7fY7z}UUa?FtO?^xJSYS5W5ex1>=`~JCo1_;(Keg5+|a(9?&9`38yQJnnc
zL4bf*QG#p&0TXW>9mhYF(U5VFwzr{e)ePH^`tLl1^f8zPxQe)C7!
MN6u{MqrKm{(pKIvon%7-(Q5(1l$UCa!@1hCyNwzVN8v
zF#!gtiH3hA3~3__1j4{w;4kREo!z?;dFPqSG!=${P&Qb*SJzQ45eQXL5ZEqH;@m0N
z1_D9l;F*C?%0Q?*-`Z{Dbrh$WIU_c2L(Cx4q;-~Pw3NU4Gm!9~-vfjXT6=uqaHx?%
z;3SRjfO$Z$C}a4+fdYb6v`8-54(kpVAxzAOUZ=Pc1cHEFWV2+V?!}1sOoB%*+Ngt>
zI#^7GCcXErKP@M1TiJ9_8}fAakIx1vqFKD)Yg81%%MG|NVYY$n0waO02_=Dxpbl!B
zVOUvxT7GL~M3KG(gkpEb^i12<9cigqcPIVqt59-lW-AVsM?f$vX