From 92da6ff9ced55944f2698ed70219c43ffecd6d70 Mon Sep 17 00:00:00 2001 From: Charles Click Date: Wed, 9 Oct 2024 06:50:17 +0000 Subject: [PATCH] Push to Valaxy Branch. Initial push. Testing switch to new codebase. --- .gitignore | 28 +++++++- .valaxy/typed-router.d.ts | 26 +++++++ archetypes/default.md | 5 -- content/pages/_index.md | 17 ----- hugo.toml | 53 -------------- {static/images => images}/Avatar.jpg | Bin locales/en.yml | 2 + locales/zh-CN.yml | 2 + package.json | 19 +++++ pages/about.md | 14 ++++ pages/archives/index.md | 6 ++ pages/projects/index.md | 102 +++++++++++++++++++++++++++ .hugo_build.lock => public/.nojekyll | 0 public/_headers | 3 + public/favicon.svg | 5 ++ public/pwa-192x192.png | Bin 0 -> 7074 bytes public/pwa-512x512.png | Bin 0 -> 20263 bytes public/safari-pinned-tab.svg | 41 +++++++++++ shims.d.ts | 5 ++ static/Sitemap | 2 - static/images/PyMoe_Stars.png | Bin 1651 -> 0 bytes static/robots.txt | 7 -- styles/README.md | 3 + styles/docs.scss | 32 +++++++++ styles/index.scss | 2 + styles/vars.scss | 2 + themes/gokarna | 1 - tsconfig.json | 18 +++++ valaxy.config.ts | 90 +++++++++++++++++++++++ vite.config.ts | 5 ++ 30 files changed, 404 insertions(+), 86 deletions(-) create mode 100644 .valaxy/typed-router.d.ts delete mode 100644 archetypes/default.md delete mode 100644 content/pages/_index.md delete mode 100644 hugo.toml rename {static/images => images}/Avatar.jpg (100%) create mode 100644 locales/en.yml create mode 100644 locales/zh-CN.yml create mode 100644 package.json create mode 100644 pages/about.md create mode 100644 pages/archives/index.md create mode 100644 pages/projects/index.md rename .hugo_build.lock => public/.nojekyll (100%) create mode 100644 public/_headers create mode 100644 public/favicon.svg create mode 100644 public/pwa-192x192.png create mode 100644 public/pwa-512x512.png create mode 100644 public/safari-pinned-tab.svg create mode 100644 shims.d.ts delete mode 100644 static/Sitemap delete mode 100644 static/images/PyMoe_Stars.png delete mode 100644 static/robots.txt create mode 100644 styles/README.md create mode 100644 styles/docs.scss create mode 100644 styles/index.scss create mode 100644 styles/vars.scss delete mode 160000 themes/gokarna create mode 100644 tsconfig.json create mode 100644 valaxy.config.ts create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore index a48cf0d..0d6241c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,27 @@ -public +# vite-ssg +.vite-ssg-dist +.vite-ssg-temp + +temp/ + +.DS_Store +*.local +dist +dist-ssr +node_modules +.idea/ +*.log + +components.d.ts + +# valaxy rss +public/feed.xml + +# valaxy rss +public/atom.xml + +# valaxy rss +public/feed.json + +# valaxy fuse +public/valaxy-fuse-list.json diff --git a/.valaxy/typed-router.d.ts b/.valaxy/typed-router.d.ts new file mode 100644 index 0000000..a16c32a --- /dev/null +++ b/.valaxy/typed-router.d.ts @@ -0,0 +1,26 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-router. ‼️ DO NOT MODIFY THIS FILE ‼️ +// It's recommended to commit this file. +// Make sure to add this file to your tsconfig.json file as an "includes" or "files" entry. + +declare module 'vue-router/auto-routes' { + import type { + RouteRecordInfo, + ParamValue, + ParamValueOneOrMore, + ParamValueZeroOrMore, + ParamValueZeroOrOne, + } from 'vue-router' + + /** + * Route name map generated by unplugin-vue-router + */ + export interface RouteNamedMap { + '/': RouteRecordInfo<'/', '/', Record, Record>, + '/[...path]': RouteRecordInfo<'/[...path]', '/:path(.*)', { path: ParamValue }, { path: ParamValue }>, + '/about': RouteRecordInfo<'/about', '/about', Record, Record>, + '/projects/': RouteRecordInfo<'/projects/', '/projects', Record, Record>, + } +} diff --git a/archetypes/default.md b/archetypes/default.md deleted file mode 100644 index c6f3fce..0000000 --- a/archetypes/default.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = '{{ replace .File.ContentBaseName "-" " " | title }}' -date = {{ .Date }} -draft = true -+++ diff --git a/content/pages/_index.md b/content/pages/_index.md deleted file mode 100644 index f471f67..0000000 --- a/content/pages/_index.md +++ /dev/null @@ -1,17 +0,0 @@ -+++ -date = 2024-02-26T01:11:55-05:00 -type = 'page' -image = 'Test' -+++ - -# Projects -A list of projects I've worked on that I like to showcase. - -## [PyMoe](https://github.com/ccubed/PyMoe) -PyMoe started out as a library I used in my AngelBot project to interact with the APIs available at various websites focusing on Anime, Manga, Light Novels, Web Novels, and Visual Novels. It has now become it's own independent project supporting the latest versions of Python 3 and recently updated to include several new services. It has over eighty stars and is currently used in over six hundred projects on Github. - -## [Earl](https://github.com/ccubed/Earl) -Earl also started out as a library to be used in Angelbot, however it later grew into a more general use project. Earl is a C++ extension for Python built against CPython to allow native packing and unpacking of the External Term Format used by Erlang. At the time, this was created to make parsing the ETF data received by Discord faster. Bots made in other languages had a slight speed advantage at parsing ETF. This extension leveled the playing field by utilizing C++ to very quickly serialize ETF into and out of Python objects. - -## [Downloop](https://github.com/ccubed/Downloop) -Downloop was a hobby project to create a Python image host with a built in web interface and API that would allow anyone to programmatically create and distribute a link to a hosted image. Downloop was focused on privacy and kept no data on who uploaded what. Images were not stored by name making them completely anonymous and all images were returned as binary data. It was able to shard itself automatically to distribute load, direct requests to the correct shard, and separated all stored image data into different root database tables based on shard. This meant that no one shard had a copy of all the images and that shards didn't know what existed between them. It also meant that we had no way to recover an image link if someone lost their initial link given upon image upload. \ No newline at end of file diff --git a/hugo.toml b/hugo.toml deleted file mode 100644 index 8ff3eb5..0000000 --- a/hugo.toml +++ /dev/null @@ -1,53 +0,0 @@ -baseURL = 'https://www.vertinext.com' -defaultContentLanguage = 'en-us' -languageCode = 'en-us' -title = 'Charles Click' -theme = 'gokarna' -enableRobotsTXT = true - -[menu] - [[menu.main]] - identifier = 'home' - url = '/' - pre = '' - post = '' - name = 'Home' - weight = 1 - [[menu.main]] - identifier = 'projects' - url = '/pages/' - pre = '' - post = '' - name = 'Projects' - weight = 2 - [[menu.main]] - identifier = 'github' - url = 'https://www.github.com/ccubed' - weight = 3 - pre = '' - name = 'Github' - [[menu.main]] - identifier = 'keybase' - url = 'https://keybase.io/cclick' - weight = 4 - pre = '' - name = 'Keybase' - [[menu.main]] - identifier = 'resume' - url = 'https://drive.google.com/file/d/1xIWfZk8b3xa9ygUxurgAyUwHblPE_CrB/view?usp=sharing' - weight = 5 - pre = '' - name = 'Resume' - -[params] - avatarURL = '/images/Avatar.jpg' - avatarSize = 'size-m' - description = 'Sometimes I ask the computer to do things' - footer = 'Charles Click @ vertinext.com' - socialIcons = [ - {name = 'linkedin', url = 'https://www.linkedin.com/in/charles-click-b078a959/'}, - {name = 'mastodon', url = 'https://mastodon.social/@RoryEjinn'}, - {name = 'twitch', url = 'https://www.twitch.tv/teshiko'}, - {name = 'email', url = 'mailto:ccubed.techno@gmail.com'} - ] - metaKeywords = ['vertinext', 'charles click', 'portfolio', 'cooper'] \ No newline at end of file diff --git a/static/images/Avatar.jpg b/images/Avatar.jpg similarity index 100% rename from static/images/Avatar.jpg rename to images/Avatar.jpg diff --git a/locales/en.yml b/locales/en.yml new file mode 100644 index 0000000..1f36c64 --- /dev/null +++ b/locales/en.yml @@ -0,0 +1,2 @@ +docs: + view_docs: See Docs diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml new file mode 100644 index 0000000..3e37087 --- /dev/null +++ b/locales/zh-CN.yml @@ -0,0 +1,2 @@ +docs: + view_docs: 查看文档指南 diff --git a/package.json b/package.json new file mode 100644 index 0000000..e0c483f --- /dev/null +++ b/package.json @@ -0,0 +1,19 @@ +{ + "type": "module", + "private": true, + "scripts": { + "build": "npm run build:ssg && npm run rss", + "build:spa": "valaxy build", + "build:ssg": "valaxy build --ssg --log=info", + "dev": "valaxy", + "rss": "valaxy rss", + "serve": "vite preview" + }, + "dependencies": { + "valaxy": "^0.19.12", + "valaxy-theme-gitlink": "link:../valaxy-theme-yun" + }, + "devDependencies": { + "nodemon": "^3.1.7" + } +} diff --git a/pages/about.md b/pages/about.md new file mode 100644 index 0000000..92d77a1 --- /dev/null +++ b/pages/about.md @@ -0,0 +1,14 @@ +--- +title: Charles Click - Vertinext +--- + +## About + + + +This site is made using Valaxy and the Valaxy Gitlink Theme. Please visit these projects and support their development. + +## Useful Links + +- [valaxy](https://github.com/YunYouJun/valaxy) +- [valaxy-theme-gitlink](https://github.com/valaxyjs/valaxy-theme-gitlink) diff --git a/pages/archives/index.md b/pages/archives/index.md new file mode 100644 index 0000000..f0e6d4e --- /dev/null +++ b/pages/archives/index.md @@ -0,0 +1,6 @@ +--- +layout: archives +title: 归档 +nav: false +comment: false +--- diff --git a/pages/projects/index.md b/pages/projects/index.md new file mode 100644 index 0000000..29f1917 --- /dev/null +++ b/pages/projects/index.md @@ -0,0 +1,102 @@ +--- +title: My Projects +layout: projects +projects: + design: + title: '🕹️ Gaming' + children: + - name: Ultralight + desc: The prototype for a text based game written in Go. + color: '#0078E7' + url: https://git.vertinext.com/roryejinn/Ultralight + - name: lotj-mudlet-ui + desc: A custom mudlet User Interface for Legends of the Jedi, a star wars mud. + color: '#22bbff' + url: https://git.vertinext.com/roryejinn/lotj-mudlet-ui + - name: Reach + desc: Code for the now closed Reach Mush + color: '#4682b4' + github: ccubed/Reach + - name: Requiem for Kingsmouth + desc: Code for the now closed Requiem of Kingsmouth Mush + color: '#e41c13' + github: ccubed/RFK + + applets: + title: '💡 Apps' + children: + - name: Requiem for Kingsmouth Web UI + desc: Web based Admin dashboard and Player portal + color: '#bff2d3' + github: ccubed/RFKWeb + - name: AngelBot + desc: AngelBot was a self hosted Discord bot that ingested web APIs and displayed them in Discord. + color: gray + textColor: white + github: ccubed/AngelBot + - name: Sanxian + desc: Sanxian was a self hosted Discord music bot that played music over voice channels. + color: pink + github: ccubed/Sanxian + - name: Downloop + desc: Downloop is a python based anonymous image uploader/storage platform using a Redis Cache and auto sharding. + color: '#5387b1' + github: ccubed/Downloop + + tools: + title: 🔧 Tools and Libraries + children: + - name: AvalonUI + color: '#2b7489' + desc: Prototype for a universal Mudlet UI package. + url: https://git.vertinext.com/roryejinn/AvalonUI + - name: PyMoe + desc: PyMoe is a python library that simplifies getting information on anima, manga, and light novels from various websites. + color: steelblue + github: ccubed/PyMoe + docs: https://ccubed.github.io/PyMoe/ + - name: Earl + desc: Earl is a C++ extension for Python compiled against CPython for working with External Term Format messages. + github: ccubed/Earl + - name: Dyslexml + desc: Dyslexml is a Python library that makes working with XML easier. + color: '#222' + github: ccubed/Dyslexml + - name: OTPy + desc: Python 3 OTP Implementation that passes the RFC tests. + color: '#f1e05a' + github: ccubed/OTPy + + interesting: + title: ⭐ Projects I Watch + children: + - name: X-Pipe + color: '#4ea5f5' + desc: X-Pipe is a great way to maintain and store the connection profiles for devices across your infrastructure. + textColor: white + github: xpipe-io/xpipe + url: https://www.xpipe.io + - name: Mermaid Live editor + desc: A great web based app that allows you to use a simple syntax to create Mermaid diagrams and charts. + color: '#8a91d0' + textColor: white + github: mermaid-js/mermaid-live-editor + - name: GoMud + desc: A MUD (Multi-User Dungeon) engine written in Go. + color: '#20c077' + textColor: white + github: Volte6/GoMud + - name: Sigma File Manager + desc: An interesting take on the future of file managers that uses web technologies to unify all your data sources. + color: red + textColor: white + github: aleksey-hoffman/sigma-file-manager + - name: Monogatari + desc: A Visual Novel Engine designed using web technologies that allow it to be easily ported across platforms and screen types. + color: green + github: Monogatari/Monogatari + - name: Bubbletea + desc: The best TUI interface I have ever come across written in Go. They also make some other amazing projects like [huh](https://github.com/charmbracelet/huh), [gum](https://github.com/charmbracelet/gum) and [wish](https://github.com/charmbracelet/wish). + color: '#f8d0a0' + github: charmbracelet/bubbletea +--- diff --git a/.hugo_build.lock b/public/.nojekyll similarity index 100% rename from .hugo_build.lock rename to public/.nojekyll diff --git a/public/_headers b/public/_headers new file mode 100644 index 0000000..9079d85 --- /dev/null +++ b/public/_headers @@ -0,0 +1,3 @@ +/assets/* + cache-control: max-age=31536000 + cache-control: immutable diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..c0711d3 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/pwa-192x192.png b/public/pwa-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..32b4d992490be18ff642b5f2bab495cbc8d5f06c GIT binary patch literal 7074 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 F{y#iCXD0vv literal 0 HcmV?d00001 diff --git a/public/pwa-512x512.png b/public/pwa-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..4f368f8ce205a5f29a9022f3871ec25155a0a7dc GIT binary patch literal 20263 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 + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + diff --git a/shims.d.ts b/shims.d.ts new file mode 100644 index 0000000..95bbebe --- /dev/null +++ b/shims.d.ts @@ -0,0 +1,5 @@ +declare interface Window { + // extend the window + __DEV__: boolean + $pageData: any +} diff --git a/static/Sitemap b/static/Sitemap deleted file mode 100644 index 852fa71..0000000 --- a/static/Sitemap +++ /dev/null @@ -1,2 +0,0 @@ -http://www.vertinext.com/ -http://www.vertinext.com/projects/ diff --git a/static/images/PyMoe_Stars.png b/static/images/PyMoe_Stars.png deleted file mode 100644 index f3ec5f56bad2c4e16daf5afbf93cbab42fe4b33f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1651 zcmV-(28{WMP)000I$NklJ?(yTtGq$$2vnsBut)-5R4tn+K6_0}(kaBwhC`Q*tH+P80?DVL&W&z{W=qyU-1!@^_$)vE*0!lEKNaNvMR4KszZ{{={` z9Ri5{etz`f!-rY@TC-*iRaI9nIxxYK1!v^my?Yg4y?_6n+>ae&CRSBd@ppZFJvlo& z^EiaLmzNiZxWB(Ye>dH|OBNOu2B0S=CsS){D?i`Ae?Q&4c~c$}8XBtjZ3-qzI{N$j zHG%Bu=^?ehr%s(BJcroZ+fzwNiEK(zQW8CU_)z{G6B9$;-rfpR<S0e6Dc@2SfQu0vy)cHutGvY$jZu!GBPr_|HqFX z^!@vHZ6J5=-mU0384$p%+rE7}H3}fLn1%^pu7|rj;nV_KD{tR605UEvj?SGsM;;y? zv}DN=5@jptvvk9T4a{~h{O#MfJm1yTl~PhtsGy*LYHDf-W6*b7=ub;aqo+@wD#mH; z#ETa%6hIm~WU$#$QBid5+BH^#Hf+X5Lk=A}r1-71mdwaqyLKu1?S7u(fk8n8YR@L| z7cNjkLjw=#6(^;>=yW<6Ab^40hb&#Xl!4u{WebOPZf-8Ue*KzKQ&TA~FOR{itgNJa z_wI2U8v)1KMFhaf%*;&I1GZnidX)|yJZNAd${Z<24h{}7DYOKe3oyY%2$%^{fOROL ze0_c8X&X0gWSi6?1F5dJ>_skv96o%Q^78X%1v28y899ga{A7y$1c27q*ho1!Is7;> zGLqZ{i+y~27|48~AI>0!NMkUrqN0M0t`(&hK;5=&8#6yJFi=*HG;vJiaW4ORJvK}VZA1z-4Mah$?da&pm|VJaNwJ&^PEf+jX!rJUpDc!Mfw31_h94M?^$$xITLHNDgNJ+1%XBj6@r@KnFmF9x1%R zm@rYIsby$rXilMxXuyGrRE7;feSGA|5l$f>0oKEt3;K>8J<55#xVTswNcEddVnPBl z1cDH}5Fbx#*REAe28bC~t}xpmU|IU*%Zf2YqQ z7x|ReXC&HSBy2+HA@Sqza&vQIojCo~g0NJVKU#SbY(sj;&d!!?3=n4oHWzDEi_#8J z0gR9@r9S=jWJap<$FL}O5PE-zu)Qmc@9piSSdp8gu!3WmVsS}UuU<`m-oI}EHg*#R zVZJ0SEiIgXZr!@YAVU!D*RNmaww;|Fk4M$e-QCS&%F4shDjfg{LKT9rk=oK&fP-iFpe^M=WBSx<<8orI1vvoIU;o>; zZ?ZaE=;(`npY&X2ByyFO08G?*U~G&yAyH66{ucQ&Jrm7w93XfVl!W zUz21YH*MNvR2M>|NPy`l-e4pkk?5;Mf({c&-&k2OU*qOG|IM2>3k#%pm72k2=pX8cpQCnXg~Ja$@~m1peTbTr2nEb{u)uR2SJ36BGaDc>&Pb_|;{_ xiWP(i)4Cm(d>bDhr_Y~1o8+$s{M~>v<{y{+O2^i3vYh|`002ovPDHLkV1f|b7+U}U diff --git a/static/robots.txt b/static/robots.txt deleted file mode 100644 index 9488d48..0000000 --- a/static/robots.txt +++ /dev/null @@ -1,7 +0,0 @@ -User-agent: Googlebot -Disallow: * -Allow: index.html - -User-agent: * -Disallow: * -Sitemap: http://www.vertinext.com/sitemap.xml diff --git a/styles/README.md b/styles/README.md new file mode 100644 index 0000000..f69985f --- /dev/null +++ b/styles/README.md @@ -0,0 +1,3 @@ +# styles + +You can custom styles in `styles/index.scss`. diff --git a/styles/docs.scss b/styles/docs.scss new file mode 100644 index 0000000..609d885 --- /dev/null +++ b/styles/docs.scss @@ -0,0 +1,32 @@ +.gradient-text { + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.sese-btn { + position: relative; + z-index: 0; + + @apply from-blue-500 to-blue-700; + + &::before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; + transition: all 0.4s; + z-index: -1; + + @apply rounded bg-gradient-to-r from-red-500 to-red-700; + } + + &:hover { + &::before { + opacity: 1; + } + } +} diff --git a/styles/index.scss b/styles/index.scss new file mode 100644 index 0000000..76b8a97 --- /dev/null +++ b/styles/index.scss @@ -0,0 +1,2 @@ +// @use "./markdown.scss" as *; +@use "./docs.scss"; diff --git a/styles/vars.scss b/styles/vars.scss new file mode 100644 index 0000000..91be4f3 --- /dev/null +++ b/styles/vars.scss @@ -0,0 +1,2 @@ +// :root {} +// html.dark{} diff --git a/themes/gokarna b/themes/gokarna deleted file mode 160000 index cdc6384..0000000 --- a/themes/gokarna +++ /dev/null @@ -1 +0,0 @@ -Subproject commit cdc638496bdc730843751b73cf8a6afc8968ab96 diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..892d8c9 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ESNext", + "jsx": "preserve", + "lib": ["DOM", "ESNext"], + "baseUrl": ".", + "module": "ESNext", + "moduleResolution": "node", + "resolveJsonModule": true, + "strict": true, + "strictNullChecks": true, + "noUnusedLocals": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true + }, + "exclude": ["dist", "node_modules"] +} diff --git a/valaxy.config.ts b/valaxy.config.ts new file mode 100644 index 0000000..152656c --- /dev/null +++ b/valaxy.config.ts @@ -0,0 +1,90 @@ +import type { ThemeConfig } from 'valaxy-theme-gitlink' +import { defineConfig } from 'valaxy' + +/** + * User Config + * do not use export const config to avoid defu conflict + */ +export default defineConfig({ + siteConfig: { + lang: 'en', + title: 'Charles Click - Vertinext', + url: 'https://www.vertinext.com/', + author: { + avatar: 'https://www.vertinext.com/images/Avatar.jpg', + name: 'Charles Click', + // intro: '希望能成为一个有趣的人。 希望能创造出可以成为他人回忆的事物。', + }, + description: 'Portfolio of Charles Click and homepage of vertinext.com.', + social: [ + { + name: 'RSS', + link: '/atom.xml', + icon: 'i-ri-rss-line', + color: 'orange', + }, + { + name: 'Gitea - roryejinn', + link: 'https://git.vertinext.com/roryejinn', + icon: 'i-ri-git-branch-line', + color: '#12B7F5', + }, + { + name: 'GitHub - ccubed', + link: 'https://github.com/ccubed', + icon: 'i-ri-github-line', + color: '#6e5494', + }, + { + name: 'Linkedin - Charles Click', + link: 'https://www.linkedin.com/in/charles-click-b078a959/', + icon: 'i-ri-linkedin-line', + color: '#E6162D', + }, + { + name: 'Twitch.tv - Teshiko', + link: 'https://www.twitch.tv/teshiko', + icon: 'i-ri-twitch-line', + color: '#007722', + }, + { + name: 'Keybase - cclick', + link: 'https://keybase.io/cclick', + icon: 'i-ri-key-line', + color: '#C20C0C', + }, + { + name: 'E-Mail', + link: 'mailto:click.charles.c@gmail.com', + icon: 'i-ri-mail-line', + color: '#8E71C1', + }, + ], + comment: { + enable: false, + }, + }, + + theme: 'gitlink', + + themeConfig: { + // colors: { + // primary: 'red', + // }, + + nav: [ + { + text: 'Projects', + link: '/projects', + }, + { + text: 'About', + link: '/about', + }, + ], + + footer: { + since: 2024, + }, + }, +}) diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..a7e0d03 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from 'vite' + +// import { VitePWA } from 'vite-plugin-pwa' + +export default defineConfig({})