Skip to content

Commit 3ab4ee4

Browse files
committed
chore: init
0 parents  commit 3ab4ee4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+6599
-0
lines changed

.editorconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# editorconfig.org
2+
root = true
3+
4+
[*]
5+
indent_size = 2
6+
indent_style = space
7+
end_of_line = lf
8+
charset = utf-8
9+
trim_trailing_whitespace = true
10+
insert_final_newline = true
11+
12+
[*.md]
13+
trim_trailing_whitespace = false

.env.example

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
GITHUB_TOKEN="" # GitHub token
2+
3+
NUXT_UI_PRO_LICENSE="" # Production license for @nuxt/ui-pro, get one at https://ui.nuxt.com/pro/purchase
4+
NUXT_PUBLIC_SITE_URL="https://projectm-visualizer.org" # Public URL, used for OG Image when running nuxt generate
5+
NUXT_PUBLIC_ASSET_KEY="" # Asset encryption key for the public assets
6+
7+
REMOTE_CONNECTION="" # Remote connection object, e.g., "{"host":"your-remote-host","port":22,"username":"your-username","password":"your-password"}"

.github/workflows/ci.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: CI
2+
3+
on: push
4+
5+
jobs:
6+
ci:
7+
runs-on: ${{ matrix.os }}
8+
9+
strategy:
10+
matrix:
11+
os: [ubuntu-latest]
12+
node: [22]
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
persist-credentials: false
20+
21+
- name: Cache bun
22+
uses: actions/cache@v4
23+
with:
24+
path: |
25+
~/.bun
26+
~/.cache/bun
27+
node_modules
28+
key: bun-${{ runner.os }}-${{ hashFiles('bun.lockb') }}
29+
restore-keys: |
30+
bun-${{ runner.os }}-
31+
32+
- name: Install bun
33+
uses: oven-sh/setup-bun@v2
34+
with:
35+
bun-version: latest
36+
37+
- name: Install dependencies
38+
run: bun install
39+
40+
- name: Lint
41+
run: bun run lint
42+
43+
- name: Typecheck
44+
run: bun run typecheck
45+
46+
- name: Build
47+
run: bun run generate
48+
env:
49+
NUXT_UI_PRO_LICENSE: ${{ secrets.NUXT_UI_PRO_LICENSE }}
50+
NUXT_PUBLIC_SITE_URL: ${{ secrets.NUXT_PUBLIC_SITE_URL }}
51+
NUXT_PUBLIC_ASSET_KEY: ${{ secrets.NUXT_PUBLIC_ASSET_KEY }}

.github/workflows/release.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: Release
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
release:
8+
runs-on: ${{ matrix.os }}
9+
permissions:
10+
contents: write
11+
12+
strategy:
13+
matrix:
14+
os: [ubuntu-latest]
15+
node: [22]
16+
17+
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
with:
21+
fetch-depth: 0
22+
persist-credentials: false
23+
24+
- name: Cache bun
25+
uses: actions/cache@v4
26+
with:
27+
path: |
28+
~/.bun
29+
~/.cache/bun
30+
node_modules
31+
key: bun-${{ runner.os }}-${{ hashFiles('bun.lockb') }}
32+
restore-keys: |
33+
bun-${{ runner.os }}-
34+
35+
- name: Install bun
36+
uses: oven-sh/setup-bun@v2
37+
with:
38+
bun-version: latest
39+
40+
- name: Install dependencies
41+
run: bun install
42+
43+
- name: Generate reports
44+
run: bun run generate-reports
45+
env:
46+
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
47+
NUXT_PUBLIC_ASSET_KEY: ${{ secrets.NUXT_PUBLIC_ASSET_KEY }}
48+
49+
- name: Push assets
50+
run: bun run ftp:assets:push
51+
env:
52+
REMOTE_CONNECTION: ${{ secrets.REMOTE_CONNECTION }}
53+
54+
- name: Build
55+
run: bun run generate
56+
env:
57+
NUXT_UI_PRO_LICENSE: ${{ secrets.NUXT_UI_PRO_LICENSE }}
58+
NUXT_PUBLIC_SITE_URL: ${{ secrets.NUXT_PUBLIC_SITE_URL }}
59+
NUXT_PUBLIC_ASSET_KEY: ${{ secrets.NUXT_PUBLIC_ASSET_KEY }}
60+
61+
- name: Package
62+
run: |
63+
PACKAGE_NAME=$(jq -r '.name' package.json)
64+
PACKAGE_VERSION=$(jq -r '.version' package.json)
65+
66+
cd dist
67+
tar -czvf ../$PACKAGE_NAME-$PACKAGE_VERSION.tar.gz .
68+
zip -r ../$PACKAGE_NAME-$PACKAGE_VERSION.zip .
69+
70+
- name: Release
71+
env:
72+
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
73+
run: bun release
74+
75+
- name: Deploy
76+
run: bun run ftp:site:push
77+
env:
78+
REMOTE_CONNECTION: ${{ secrets.REMOTE_CONNECTION }}

.gitignore

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Nuxt dev/build outputs
2+
.output
3+
.data
4+
.nuxt
5+
.nitro
6+
.cache
7+
dist
8+
9+
# Node dependencies
10+
node_modules
11+
12+
# Logs
13+
logs
14+
*.log
15+
16+
# Misc
17+
.DS_Store
18+
.fleet
19+
.idea
20+
21+
# Local env files
22+
.env
23+
.env.*
24+
!.env.example
25+
26+
# VSC
27+
.history
28+
29+
# Project
30+
public/assets
31+
TODO.md

.nuxtignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
public/assets

README.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# ProjectM Visualizer Organization Website
2+
3+
This is the official website for the Projectm Visualizer organization, which hosts various visualizer projects and resources.
4+
5+
## Development
6+
7+
To set up the development environment, follow these steps:
8+
9+
1. Clone the repository:
10+
```bash
11+
git clone https://github.com/projectM-visualizer/projectm-visualizer.org
12+
```
13+
14+
2. Install bun.sh
15+
```bash
16+
# Linux / macOS
17+
curl -fsSL https://bun.sh/install | bash
18+
```
19+
```powershell
20+
# Windows
21+
powershell -c "irm bun.sh/install.ps1 | iex"
22+
```
23+
24+
3. Install dependencies:
25+
```bash
26+
bun install
27+
```
28+
29+
4. Start the development server:
30+
```bash
31+
bun dev
32+
```
33+
34+
5. Open your browser and navigate to `http://localhost:3000` to view the website.
35+
36+
<br>
37+
38+
## Screenshots
39+
40+
<div align="center">
41+
<!-- <img
42+
src="./.github/assets/example.png"
43+
alt="ProjectM Visualizer Website Screenshot"
44+
width="100%"
45+
/> -->
46+
</div>

app/app.config.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export default defineAppConfig({
2+
ui: {
3+
colors: {
4+
primary: 'teal',
5+
neutral: 'gray'
6+
}
7+
}
8+
})

app/app.vue

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<script setup lang="ts">
2+
const colorMode = useColorMode()
3+
4+
const color = computed(() => colorMode.value === 'dark' ? '#030712' : 'white')
5+
6+
useHead({
7+
meta: [
8+
{ charset: 'utf-8' },
9+
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
10+
{ key: 'theme-color', name: 'theme-color', content: color }
11+
],
12+
link: [
13+
{ rel: 'icon', href: '/favicon.ico' }
14+
],
15+
htmlAttrs: {
16+
lang: 'en'
17+
}
18+
})
19+
20+
// useSeoMeta({
21+
// titleTemplate: '%s - ProjectM Visualizer Organization',
22+
// ogImage: '',
23+
// twitterImage: '',
24+
// twitterCard: 'summary_large_image'
25+
// })
26+
27+
const { data: navigation } = await useAsyncData('navigation', () => queryCollectionNavigation('docs'), {
28+
transform: data => data.find(item => item.path === '/docs')?.children || []
29+
})
30+
const { data: files } = useLazyAsyncData('search', () => queryCollectionSearchSections('docs'), {
31+
server: false
32+
})
33+
34+
const { data: app } = await useAsyncData('links', () => queryCollection('app').first())
35+
36+
provide('navigation', navigation)
37+
</script>
38+
39+
<template>
40+
<UApp>
41+
<NuxtLoadingIndicator />
42+
43+
<NuxtLayout>
44+
<NuxtPage />
45+
</NuxtLayout>
46+
47+
<ClientOnly>
48+
<LazyUContentSearch
49+
:files="files"
50+
shortcut="meta_k"
51+
:navigation="navigation"
52+
:links="app?.links"
53+
:fuse="{ resultLimit: 42 }"
54+
/>
55+
</ClientOnly>
56+
</UApp>
57+
</template>

app/assets/css/main.css

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
@import "tailwindcss";
2+
@import "@nuxt/ui-pro";
3+
4+
@source "../../../content/**/*";
5+
6+
@theme static {
7+
--font-logo: 'Aldrich', fantasy;
8+
--font-sans: 'Public Sans', sans-serif;
9+
10+
--color-green-50: #EFFDF5;
11+
--color-green-100: #D9FBE8;
12+
--color-green-200: #B3F5D1;
13+
--color-green-300: #75EDAE;
14+
--color-green-400: #00DC82;
15+
--color-green-500: #00C16A;
16+
--color-green-600: #00A155;
17+
--color-green-700: #007F45;
18+
--color-green-800: #016538;
19+
--color-green-900: #0A5331;
20+
--color-green-950: #052E16;
21+
}
22+
23+
.dark {
24+
--ui-bg: var(--ui-color-neutral-950);
25+
--ui-bg-muted: var(--ui-color-neutral-900);
26+
--ui-bg-elevated: var(--ui-color-neutral-900);
27+
--ui-bg-accented: var(--ui-color-neutral-800);
28+
}

0 commit comments

Comments
 (0)