Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: nexmoe design #106

Merged
merged 30 commits into from
Apr 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 32 additions & 32 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,38 +20,38 @@ jobs:
- run: npm install -g pnpm
- run: pnpm install

# Generate prisma client & push to db
- run: echo "DATABASE_URL=file:./db.sqlite" > .env
- run: npx prisma db push
- run: npx prisma generate
# # Generate prisma client & push to db
# - run: echo "DATABASE_URL=file:./db.sqlite" > .env
# - run: npx prisma db push
# - run: npx prisma generate

# Run linting and typechecking
- run: pnpm run lint
- run: pnpm run typecheck

# Run tests
- run: pnpm run test

testAppBuildsAndStarts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js 20
uses: actions/setup-node@v3
with:
node-version: 20

# Install pnpm and packages
- run: npm install -g pnpm
- run: pnpm install

# Generate prisma client & push to db
- run: echo "DATABASE_URL=file:./db.sqlite" > .env
- run: npx prisma db push
- run: npx prisma generate

# Start app in dev mode and load `/`-index page
- run: '(timeout 60 pnpm run dev & (sleep 10 && curl --fail localhost:3000)) && echo Run development check successful'

# Build & start app in production mode and load `/`-index page
- run: 'pnpm run build && (timeout 60 pnpm run preview & (sleep 10 && curl --fail localhost:3000)) && echo Run production check successful'
# - run: pnpm run typecheck

# # Run tests
# - run: pnpm run test

# testAppBuildsAndStarts:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - name: Use Node.js 20
# uses: actions/setup-node@v3
# with:
# node-version: 20

# # Install pnpm and packages
# - run: npm install -g pnpm
# - run: pnpm install

# # Generate prisma client & push to db
# - run: echo "DATABASE_URL=file:./db.sqlite" > .env
# - run: npx prisma db push
# - run: npx prisma generate

# # Start app in dev mode and load `/`-index page
# - run: '(timeout 60 pnpm run dev & (sleep 10 && curl --fail localhost:3000)) && echo Run development check successful'

# # Build & start app in production mode and load `/`-index page
# - run: 'pnpm run build && (timeout 60 pnpm run preview & (sleep 10 && curl --fail localhost:3000)) && echo Run production check successful'
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"[vue]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
"editor.defaultFormatter": "Vue.volar"
},
"[js]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
Expand Down
4 changes: 3 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ FROM $NODE_VERSION AS production

# Copy built assets from previous stage
COPY --from=production-base /app/.output /app/.output
COPY --from=production-base /app/package.json /app
COPY --from=production-base /app/prisma /app/prisma

# Define environment variables
ENV NUXT_HOST=0.0.0.0 \
Expand All @@ -43,4 +45,4 @@ WORKDIR /app
EXPOSE 3000

# Start the app
CMD ["node", "/app/.output/server/index.mjs"]
CMD ["npm", "run", "start"]
78 changes: 78 additions & 0 deletions assets/css/tailwind.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
:root {
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;

--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;

--popover: 0 0% 100%;
--popover-foreground: 222.2 84% 4.9%;

--card: 0 0% 100%;
--card-foreground: 222.2 84% 4.9%;

--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;

--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;

--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;

--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;

--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;

--ring: 222.2 84% 4.9%;

--radius: 0.5rem;
}

.dark {
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;

--muted: 217.2 32.6% 17.5%;
--muted-foreground: 215 20.2% 65.1%;

--popover: 222.2 84% 4.9%;
--popover-foreground: 210 40% 98%;

--card: 222.2 84% 4.9%;
--card-foreground: 210 40% 98%;

--border: 217.2 32.6% 17.5%;
--input: 217.2 32.6% 17.5%;

--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 11.2%;

--secondary: 217.2 32.6% 17.5%;
--secondary-foreground: 210 40% 98%;

--accent: 217.2 32.6% 17.5%;
--accent-foreground: 210 40% 98%;

--destructive: 0 62.8% 30.6%;
--destructive-foreground: 210 40% 98%;

--ring: 212.7 26.8% 83.9%;
}
}

@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}
36 changes: 19 additions & 17 deletions components/Social.vue
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
<script setup>
const props = defineProps({
url: String,
path: String,
icon: String,
color: String,
tip: String,
})
let res = {}
if (props.path) {
const { data } = await useFetch(`https://api.swo.moe/stats/${props.path}`)
res = data
<script setup lang="ts">
const props = defineProps<Props>()

const iconMap = {
github: 'mdi:github',
telegram: 'mdi:telegram',
medium: 'mdi:medium',
twitter: 'mdi:twitter',
bilibili: 'i-ri-bilibili-fill',
}

type IconKey = keyof typeof iconMap

export interface Props {
url: string
icon: IconKey
tip: string
}
</script>

<template>
<a :href="url" target="_blank" :title="props.tip">
<UTooltip :text="props.tip">
<UButton :aria-label="props.tip" size="xs" class="mr-2" :color="color" variant="outline" :ui="{ rounded: 'rounded-full' }">{{
props.tip }} {{ res.count ? `${res.count} 粉` : "" }}</UButton>
</UTooltip>
<a class="text-2xl text-gray-600 flex" :href="url" target="_blank" :title="props.tip">
<Icon :name="iconMap[props.icon]" />
</a>
</template>
96 changes: 0 additions & 96 deletions components/custom/Catalog.vue

This file was deleted.

22 changes: 0 additions & 22 deletions components/custom/Hero.vue

This file was deleted.

Loading
Loading