From d7890131daa4fc87327faffefc6d4246b1cddfe0 Mon Sep 17 00:00:00 2001
From: MusicOnline <39178127+MusicOnline@users.noreply.github.com>
Date: Sun, 10 Mar 2024 11:49:47 +0800
Subject: [PATCH] feat: add footer and credits
---
README.md | 9 +++++
app.vue | 4 +++
components/Footer.vue | 74 ++++++++++++++++++++++++++++++++++++++++
components/GitStatus.vue | 64 ++++++++++++++++++++++++++++++++++
nuxt.config.ts | 21 ++++++++++++
package.json | 3 ++
pnpm-lock.yaml | 27 +++++++++++++++
7 files changed, 202 insertions(+)
create mode 100644 components/Footer.vue
create mode 100644 components/GitStatus.vue
diff --git a/README.md b/README.md
index 770de8c..1840490 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,9 @@ NUXT_APP_BASE_URL=/RepositoryNameHere/
# For generating SEO meta tags that require the base URL including the domain name
# Omit the trailing slash
NUXT_PUBLIC_FULL_BASE_URL=http://localhost:3000
+
+# Optional git remote repository commit base URL
+NUXT_PUBLIC_COMMIT_BASE_URL=https://github.com/MusicOnline/LimbusCompute/commit
```
### Development Server
@@ -92,3 +95,9 @@ Additionally, any pushes to the main branch of this repository will trigger the
GitHub Pages Mirror: https://musiconline.github.io/LimbusCompute/
Artifacts for both builds are available for download in their respective GitHub Actions pages.
+
+## Special Thanks
+
+In no particular order:
+
+- [SyxP](https://github.com/SyxP) ([ObiterDicta.jl](https://github.com/SyxP/ObiterDicta.jl))
diff --git a/app.vue b/app.vue
index e314acd..0c371d4 100644
--- a/app.vue
+++ b/app.vue
@@ -52,6 +52,10 @@ useHead({
+
+
+
+
diff --git a/components/Footer.vue b/components/Footer.vue
new file mode 100644
index 0000000..cf8e114
--- /dev/null
+++ b/components/Footer.vue
@@ -0,0 +1,74 @@
+
+
+
diff --git a/components/GitStatus.vue b/components/GitStatus.vue
new file mode 100644
index 0000000..005efa8
--- /dev/null
+++ b/components/GitStatus.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+ {{ commit.id }}
+ {{ commit.message }}
+
+ ({{ relativeTime }})
+
+
+
+
+
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 743a6c5..b80d694 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -1,3 +1,9 @@
+import { execSync } from "child_process"
+
+function runTerminal(command: string): string {
+ return execSync(command).toString().trim()
+}
+
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
app: {
@@ -34,9 +40,24 @@ export default defineNuxtConfig({
ssr: process.env.ENABLE_SSR?.toLowerCase() === "true",
modules: ["@nuxt/ui"],
devtools: { enabled: true },
+ ui: {
+ icons: ["heroicons", "mdi", "logos", "emojione"],
+ },
runtimeConfig: {
public: {
fullBaseUrl: process.env.NUXT_PUBLIC_FULL_BASE_URL,
+ commit: {
+ id:
+ process.env.NUXT_PUBLIC_COMMIT_ID ||
+ runTerminal("git log --format=%h -n 1"),
+ message:
+ process.env.NUXT_PUBLIC_COMMIT_MESSAGE ||
+ runTerminal("git log --format=%s -n 1"),
+ timestamp:
+ process.env.NUXT_PUBLIC_COMMIT_TIMESTAMP ||
+ runTerminal("git log --format=%ct -n 1"),
+ baseUrl: process.env.NUXT_PUBLIC_COMMIT_BASE_URL,
+ },
},
},
})
diff --git a/package.json b/package.json
index 104f7d2..eac9bae 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,9 @@
"semi": false
},
"devDependencies": {
+ "@iconify-json/emojione": "^1.1.10",
+ "@iconify-json/logos": "^1.1.42",
+ "@iconify-json/mdi": "^1.1.64",
"@nuxt/ui": "^2.14.2",
"@viz-js/viz": "^3.4.0",
"sass": "^1.71.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 88d1785..8bb3cd0 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16,6 +16,15 @@ dependencies:
version: 4.3.0(vue@3.4.21)
devDependencies:
+ '@iconify-json/emojione':
+ specifier: ^1.1.10
+ version: 1.1.10
+ '@iconify-json/logos':
+ specifier: ^1.1.42
+ version: 1.1.42
+ '@iconify-json/mdi':
+ specifier: ^1.1.64
+ version: 1.1.64
'@nuxt/ui':
specifier: ^2.14.2
version: 2.14.2(nuxt@3.10.3)(vite@5.1.4)(vue@3.4.21)
@@ -816,12 +825,30 @@ packages:
vue: 3.4.21
dev: true
+ /@iconify-json/emojione@1.1.10:
+ resolution: {integrity: sha512-gzv5tbkbyoJFArWmmtGDmhvKjCcpa9a+qEFbW35IlKHc9LBL5lluRccP+BckCoYcoi5qi1VCPxzz6QL/UYW5VQ==}
+ dependencies:
+ '@iconify/types': 2.0.0
+ dev: true
+
/@iconify-json/heroicons@1.1.20:
resolution: {integrity: sha512-puNt1al/rDw8Rb5x8sfk20UA8AQjMskLMh63nSUBj+8I0lQ7LtX+0Qn8wow2xTXTEsynJ9xXLD8Aat53e0qi8A==}
dependencies:
'@iconify/types': 2.0.0
dev: true
+ /@iconify-json/logos@1.1.42:
+ resolution: {integrity: sha512-/f+frtPm3m3Z30oy8Pk+QqRDkbmAiIaWGPl5CmsCXm15MVfvw9a/V/gD7WzdyuSGAZcFuQaqbHXj92y/n+2ifg==}
+ dependencies:
+ '@iconify/types': 2.0.0
+ dev: true
+
+ /@iconify-json/mdi@1.1.64:
+ resolution: {integrity: sha512-zGeo5TjhNFAY6FmSDBLAzDO811t77r6v/mDi7CAL9w5eXqKez6bIjk8R9AL/RHIeq44ALP4Ozr4lMqFTkHr7ug==}
+ dependencies:
+ '@iconify/types': 2.0.0
+ dev: true
+
/@iconify/collections@1.0.401:
resolution: {integrity: sha512-rjcwIh6jYxAaWavMkDQoM9TkpqUZ9v5NrlZ2gJX/9X2WF6DSXguG+HqhqIhRWJYGT1AQE9qAvgUGZbjylYn+GA==}
dependencies: