Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
wsvaio committed Dec 13, 2023
0 parents commit 03bfbb3
Show file tree
Hide file tree
Showing 162 changed files with 17,111 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
> 1%
last 2 version
not ie <= 10
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.js
18 changes: 18 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
"*.vue" eol=lf
"*.js" eol=lf
"*.ts" eol=lf
"*.jsx" eol=lf
"*.tsx" eol=lf
"*.cjs" eol=lf
"*.cts" eol=lf
"*.mjs" eol=lf
"*.mts" eol=lf
"*.json" eol=lf
"*.html" eol=lf
"*.css" eol=lf
"*.less" eol=lf
"*.scss" eol=lf
"*.sass" eol=lf
"*.styl" eol=lf
"*.md" eol=

39 changes: 39 additions & 0 deletions .github/workflows/deployment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: deployment

on:
push:
branches: ["prod"]

jobs:
build:
runs-on: ubuntu-latest
env:
DATABASE_URL: ${{ secrets.database_url }}
EMAIL_PASS: ${{ secrets.email_pass }}
DOCKER_NAME: blog
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: latest


- run: |
npm install
npm run build
npx prisma migrate deploy
- uses: cross-the-world/ssh-scp-ssh-pipelines@latest
with:
host: 121.40.126.12
user: root
pass: ${{ secrets.ssh_password }}
connect_timeout: 10s
first_ssh: |
rm -rf /app/service/blog
scp: |
./.output/* => /app/service/blog
last_ssh: |
docker rm -fv $DOCKER_NAME
docker run -d -v /app/service/blog:/app -e PORT=7100 -e DATABASE_URL=$DATABASE_URL -e EMAIL_PASS=$EMAIL_PASS --name $DOCKER_NAME -p 7100:7100 node node /app/server/index.mjs
29 changes: 29 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Nuxt dev/build outputs
.output
.data
.nuxt
.nitro
.cache
dist

# Node dependencies

node_modules



# Logs
logs
*.log

# Misc
.DS_Store
.fleet
.idea

# Local env files
.env
# .env.*
# !.env.

.stylelintcache
6 changes: 6 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# registry=https://registry.npmjs.org/
# registry=http://registry.npm.taobao.org/
registry=https://registry.npmmirror.com/

# 默认情况下,pnpm 创建一个半严格的 node_modules,这意味着依赖项可以访问未声明的依赖项,但 node_modules 之外的模块不行。 通过这种布局,生态系统中的大多数的包都可以正常工作。 但是,如果某些工具仅在提升的依赖项位于根目录的 node_modules 时才有效,您可以将其设置为 true 来为您提升它们。
# shamefully-hoist=true
18 changes: 18 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"arrowParens": "avoid",
"bracketSameLine": false,
"bracketSpacing": true,
"endOfLine": "lf",
"htmlWhitespaceSensitivity": "ignore",
"insertPragma": false,
"jsxSingleQuote": false,
"printWidth": 120,
"proseWrap": "never",
"quoteProps": "consistent",
"semi": true,
"singleAttributePerLine": false,
"singleQuote": false,
"tabWidth": 2,
"trailingComma": "es5",
"useTabs": false
}
38 changes: 38 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"editor.tabSize": 2,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.acceptSuggestionOnCommitCharacter": false,
"editor.suggest.snippetsPreventQuickSuggestions": false,
"editor.quickSuggestions": {
"other": true,
"comments": true,
"strings": true
},
"stylelint.enable": true,
"stylelint.validate": ["css", "less", "postcss", "scss", "vue", "sass", "html"],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.fixAll.stylelint": true
},
"less.lint.unknownAtRules": "ignore",
"npm.packageManager": "pnpm",
"search.exclude": {
"dist": true,
"node_modules": true,
"CHANGELOG.md": true,
"pnpm-lock.yaml": true
},
"files.eol": "\n",
"vue.complete.casing.props": "kebab",
"vue.complete.casing.tags": "kebab",
"[svg]": {
"editor.defaultFormatter": "jock.svg"
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[prisma]": {
"editor.defaultFormatter": "Prisma.prisma"
},
"editor.inlineSuggest.showToolbar": "always"
}
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## 关于本站

一个个人博客网站,记录一些学习笔记,我的所见所得,锻炼锻炼写作能力。

## 关于设计

参考了很多博客主题,包括但不限:[butterfly](https://github.com/jerryc127/hexo-theme-butterfly)[sakura](https://github.com/mashirozx/Sakura)[cuteen](https://blog.zwying.com/)[volantis](https://github.com/volantis-x/hexo-theme-volantis)

壁纸来源:[必应壁纸 api](https://bing-wallpaper.apifox.cn/)

看板娘、头像、每日一言等 api:[免费 api](https://api.aa1.cn/)

音乐播放器:[aplayer](https://aplayer.js.org/)

## 关于我

一位码农,喜欢撸代码、玩游戏、骑自行车、听音乐、吃和睡觉。
22 changes: 22 additions & 0 deletions app.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<script setup lang="ts"></script>

<template>
<article min="h-100dvh" font="!sans" flex="~ col">
<!-- <isbuilding /> -->
<music />
<background />
<nuxt-loading-indicator />

<LayoutHeader />

<transition name="fade">
<global-loading v-show="useMainStore().globalLoading" />
</transition>

<nuxt-page />

<LayoutFooter mt="auto" />
</article>
</template>

<style lang="less" scoped></style>
72 changes: 72 additions & 0 deletions assets/css/main.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
body {
margin: 0;
// line-height: 1.25;
background-color: var(--bg-color);
color: var(--text-color);
}

img {
display: block;
width: 100%;
}

.card {
padding: 2em;
overflow: hidden;
// border: 1px solid #e7eaf1;
border-radius: 4px;
background-color: var(--bg-color);
// background-color: white;
box-shadow: 0 1px 3px rgb(0 37 55 / 6%);
// backdrop-filter: saturate(200%) blur(20px);
}

::-webkit-scrollbar {
width: 6px;
height: 6px;
background-color: var(--primary-color2);
}

::-webkit-scrollbar-thumb {
// border: 1px solid transparent;
// border-radius: 10px;
// background-clip: content-box;
background-color: var(--primary-color5);
}

::-webkit-scrollbar-thumb:hover {
background-color: var(--primary-color);
}

::-webkit-scrollbar-thumb:active {
background-color: var(--primary-color7);
}

::-webkit-scrollbar-corner {
display: none;
}

* {
scrollbar-width: thin;
}

.fade-enter-active,
.fade-leave-active {
transition: opacity var(--transition-duration, 0.2s);
}

.fade-enter-from,
.fade-leave-to {
opacity: 0;
}

.page-enter-active,
.page-leave-active {
transition: all 0.4s;
}

.page-enter-from,
.page-leave-to {
opacity: 0;
filter: blur(1rem);
}
Binary file added assets/img/avatar.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/avatar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/banner.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/bear.webp
Binary file not shown.
Binary file added assets/img/hmbb.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/occupy.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/test.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/textarea.webp
Binary file not shown.
Binary file added assets/img/textarea1.webp
Binary file not shown.
79 changes: 79 additions & 0 deletions components/about-card/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<script setup lang="ts">
const { data } = await useFetch<Record<any, any>>("/api/common/image", {
query: computed(() =>
useMainStore().easterEgg
? {
type: "dongman",
}
: undefined
),
});
const list = useListStore();
</script>

<template>
<div class="about-card card" pos="relative" grid="~ rows-[0.384fr_1fr]" p="0">
<div pos="relative" flex="~ col" items="center" pt="48px">
<img
:src="data?.content"
w="full"
h="full"
pos="absolute"
inset="0"
aspect-ratio="square"
object="cover"
z="1"
:style="{
'maskImage': 'linear-gradient(black 61.8%, transparent)',
'-webkit-mask-image': 'linear-gradient(black 61.8%, transparent)',
}"
/>
<img
src="@/assets/img/avatar.png"
w="75px"
h="75px"
rounded="full"
shadow="[0_1px_4px_rgba(100,110,120,.53)]"
box="border"
z="2"
/>
</div>
<div flex="~ col" items="center" p="t-0 2em">
<h2 text="16px" font="normal" m="1em">王上上同学</h2>
<p mt="0" text="14px">好好学习,天天向上</p>
<!-- <hr bg="1px solid [#e7eaf1]" w="[80%]" border="none" h="1px" /> -->
<ul m="0" p="0" list="none" text="28px">
<li>
<nuxt-link to="https://github.com/wsvaio" un-text="inherit">
<div class="i-mdi:github" />
</nuxt-link>
</li>
</ul>
<hr bg="1px solid [#e7eaf1]" w="full" border="none" h="1px" />
<ul
flex="~" justify="between" m="0" p="0"
list="none" w="full" items="center"
>
<li flex="~ col" items="center">
<span>{{ list.$articles().length }}</span>
<span>文章</span>
</li>
<li>|</li>
<li flex="~ col" items="center">
<span>{{ list.$tags().length }}</span>
<span>标签</span>
</li>
<li>|</li>
<li flex="~ col" items="center">
<span>{{ list.$types().length }}</span>
<span>分类</span>
</li>
</ul>
</div>
</div>
</template>
<style lang="less" scoped></style>
Loading

0 comments on commit 03bfbb3

Please sign in to comment.