mirror of
https://github.com/hpware/news-analyze.git
synced 2025-06-23 15:51:01 +08:00
Enhance footer and localization: add open source references, update footer design, and optimize descriptions for clarity.
This commit is contained in:
parent
96b297f617
commit
861c6b8e35
@ -1,15 +1,17 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { HeartIcon } from 'lucide-vue-next';
|
||||||
const localeLink = useLocalePath();
|
const localeLink = useLocalePath();
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
class="flex flex-col justify-center align-center text-center absolute inset-x-0"
|
class="flex flex-col justify-center align-center text-center absolute inset-x-0"
|
||||||
>
|
>
|
||||||
<span class="text-sm m-4 mb-0 text-center align-center justify-center"
|
<span class="text-sm text-center align-center justify-center flex flex-row group mb-0"><span>Made with </span><HeartIcon class="w-5 h-5 mx-2 text-red-500 transition-all duration-300 group-hover:scale-125" /><span> & <a href="https://github.com/hpware/news-analyze" class="hover:text-sky-500 transition-all duration-100">Open Source</a></span></span>
|
||||||
>2025 - {{ new Date().getFullYear() }} © yh</span
|
<span class="text-sm m-4 mt-0 mb-0 text-center align-center justify-center"
|
||||||
|
>2025 - {{ new Date().getFullYear() }} © hpware</span
|
||||||
>
|
>
|
||||||
<span class="text-xs mt-0 m-2 text-center align-center justify-center">
|
<span class="text-xs mt-0 m-2 text-center align-center justify-center">
|
||||||
Inspired by Ground.News
|
Optimized for Google Chrome
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -36,12 +36,14 @@
|
|||||||
"title": {
|
"title": {
|
||||||
"find": "Find",
|
"find": "Find",
|
||||||
"interface": "Interface",
|
"interface": "Interface",
|
||||||
"documentation": "Documentation"
|
"documentation": "Documentation",
|
||||||
|
"opensource": "Open Source"
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"find": "You can easily find the same topic from different news sources.",
|
"find": "You can easily find the same topic from different news sources.",
|
||||||
"interface": "Use a desktop like interface, the one that you already got used to.",
|
"interface": "Use a desktop like interface, the one that you already got used to.",
|
||||||
"documentation": "We provide a documentation for you to learn how to use the app."
|
"documentation": "We provide a documentation for you to learn how to use the app.",
|
||||||
|
"opensource": "This platform is open source! minus the database part, but I'm going to try!"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -36,12 +36,14 @@
|
|||||||
"title": {
|
"title": {
|
||||||
"find": "尋找",
|
"find": "尋找",
|
||||||
"interface": "使用者介面",
|
"interface": "使用者介面",
|
||||||
"documentation": "教學"
|
"documentation": "教學",
|
||||||
|
"opensource": "開源"
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"find": "你可以輕鬆地從不同的新聞來源找到相同的主題。",
|
"find": "你可以輕鬆地從不同的新聞來源找到相同的主題。",
|
||||||
"interface": "這個網站使用類似 Xfce / MacOS / DSM 的介面,讓你可以簡單使用這個網站。",
|
"interface": "這個網站使用類似 Xfce / MacOS / DSM 的介面,讓你可以簡單使用這個網站。",
|
||||||
"documentation": "我做了一組教學,讓你可以學會如何使用這個網站 UI。"
|
"documentation": "我做了一組教學,讓你可以學會如何使用這個網站 UI。",
|
||||||
|
"opensource": "這個平台的所有程式碼都放在Github上,沒有開源的資料庫,我會想辦法把它用其他方式開源!"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -70,6 +70,7 @@ const progress = ref(0);
|
|||||||
const titleAppName = ref("Desktop");
|
const titleAppName = ref("Desktop");
|
||||||
const openingAppViaAnApp = ref(false);
|
const openingAppViaAnApp = ref(false);
|
||||||
const passedValues = ref();
|
const passedValues = ref();
|
||||||
|
const globalWindowVal = ref(new Map());
|
||||||
|
|
||||||
// Key Data
|
// Key Data
|
||||||
const menuItems = [
|
const menuItems = [
|
||||||
@ -162,17 +163,6 @@ const associAppWindow = [
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
currentNavBar.value = [
|
|
||||||
{
|
|
||||||
name: "anything",
|
|
||||||
icon: "anything",
|
|
||||||
action: "s",
|
|
||||||
flash: true,
|
|
||||||
windowAssociated: "322",
|
|
||||||
minimized: true,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
const keyboardShortcuts = {
|
const keyboardShortcuts = {
|
||||||
'Meta+k': {
|
'Meta+k': {
|
||||||
@ -247,6 +237,15 @@ onMounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// functions
|
// functions
|
||||||
|
onMounted(() => {
|
||||||
|
associAppWindow.forEach((window) => {
|
||||||
|
globalWindowVal.value.set(window.name, {
|
||||||
|
id: window.id,
|
||||||
|
title: window.title,
|
||||||
|
windowCount: 1
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
const openWindow = (windowName?: string) => {
|
const openWindow = (windowName?: string) => {
|
||||||
if (windowName === "leave") {
|
if (windowName === "leave") {
|
||||||
router.push(localePath("/home"));
|
router.push(localePath("/home"));
|
||||||
@ -301,10 +300,10 @@ const findAndOpenWindow = (windowName: string) => {
|
|||||||
// Use shallowRef for better performance with components
|
// Use shallowRef for better performance with components
|
||||||
const windowComponent = shallowRef(app.component);
|
const windowComponent = shallowRef(app.component);
|
||||||
titleAppName.value = app.title;
|
titleAppName.value = app.title;
|
||||||
|
const abosluteId = uuidv4();
|
||||||
activeWindows.value.push({
|
activeWindows.value.push({
|
||||||
id: currentOpenAppId.value,
|
id: currentOpenAppId.value,
|
||||||
absoluteId: uuidv4(),
|
absoluteId: abosluteId,
|
||||||
component: windowComponent,
|
component: windowComponent,
|
||||||
name: windowName,
|
name: windowName,
|
||||||
title: app.title,
|
title: app.title,
|
||||||
@ -313,14 +312,18 @@ const findAndOpenWindow = (windowName: string) => {
|
|||||||
});
|
});
|
||||||
currentOpenAppId.value++;
|
currentOpenAppId.value++;
|
||||||
// Add to navbar
|
// Add to navbar
|
||||||
|
const windowNameVal2 = globalWindowVal.value.get(windowName).windowCount === 1 ? windowName : windowName + "(" + globalWindowVal.value.get(windowName).windowCount + ")"
|
||||||
|
console.log(globalWindowVal.value.get(windowName))
|
||||||
|
console.log(windowNameVal2)
|
||||||
currentNavBar.value.push({
|
currentNavBar.value.push({
|
||||||
name: "anything",
|
name: windowNameVal2,
|
||||||
icon: "anything",
|
icon: "anything",
|
||||||
action: "s",
|
action: "idk",
|
||||||
flash: true,
|
flash: true,
|
||||||
windowAssociated: "322",
|
windowAssociated: abosluteId,
|
||||||
minimized: true,
|
minimized: false,
|
||||||
});
|
});
|
||||||
|
globalWindowVal.value.get(windowName).windowCount++
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ import {
|
|||||||
ViewfinderCircleIcon,
|
ViewfinderCircleIcon,
|
||||||
DocumentDuplicateIcon,
|
DocumentDuplicateIcon,
|
||||||
} from "@heroicons/vue/24/outline";
|
} from "@heroicons/vue/24/outline";
|
||||||
|
import { GithubIcon } from "lucide-vue-next";
|
||||||
import { gsap } from "gsap";
|
import { gsap } from "gsap";
|
||||||
import { TextPlugin } from "gsap/TextPlugin";
|
import { TextPlugin } from "gsap/TextPlugin";
|
||||||
gsap.registerPlugin(TextPlugin);
|
gsap.registerPlugin(TextPlugin);
|
||||||
@ -44,6 +45,11 @@ const cards = [
|
|||||||
title: t("home.cards.title.documentation"),
|
title: t("home.cards.title.documentation"),
|
||||||
description: t("home.cards.description.documentation"),
|
description: t("home.cards.description.documentation"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
icon: GithubIcon,
|
||||||
|
title: t("home.cards.title.opensource"),
|
||||||
|
description: t("home.cards.description.opensource")
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
const accordionItems = [
|
const accordionItems = [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user