📝 [docs]: 新增在线展示
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
<script setup lang="ts">
|
||||
import DefaultTheme from "vitepress/theme";
|
||||
import {ref, onMounted, onUnmounted} from "vue";
|
||||
import {ref, onMounted, onUnmounted, watch} from "vue";
|
||||
import {statsApi, GithubStats, RepoUrl, StarMapUrl} from "./scripts/statsApi";
|
||||
import {getTextRef, updateRef} from "./scripts/i18n";
|
||||
import {getTextRef, updateRefData} from "./scripts/i18n";
|
||||
import { onBeforeRouteUpdate } from 'vue-router';
|
||||
import {useData} from "vitepress";
|
||||
|
||||
const {Layout} = DefaultTheme;
|
||||
|
||||
@ -82,20 +84,27 @@ async function updateData() {
|
||||
dataSections.prs.value.value = githubStats?.prs || 0;
|
||||
}
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
const intervalId = setInterval(updateData, 10000);
|
||||
updateData();
|
||||
updateRefData();
|
||||
onUnmounted(() => {
|
||||
clearInterval(intervalId);
|
||||
});
|
||||
});
|
||||
|
||||
onBeforeRouteUpdate(() => {
|
||||
updateRefData();
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Layout>
|
||||
<template #home-features-before>
|
||||
<div class="stats-bar-content">
|
||||
<div class="button" @click="updateRefData">Update</div>
|
||||
<div class="stats-bar">
|
||||
<div class="stats-info">
|
||||
<div v-for="section in Object.values(dataSections)" :key="section.name" class="section">
|
||||
|
@ -1,4 +1,5 @@
|
||||
import {ref} from "vue";
|
||||
|
||||
import {useData} from "vitepress";
|
||||
|
||||
const i18nData = {
|
||||
@ -34,7 +35,7 @@ let refData = {}
|
||||
|
||||
function getText(lang: string, key: string): string {
|
||||
lang = formatLang(lang);
|
||||
return i18nData[key][key];
|
||||
return i18nData[lang][key];
|
||||
}
|
||||
|
||||
function formatLang(lang: string): string {
|
||||
@ -44,8 +45,8 @@ function formatLang(lang: string): string {
|
||||
return lang;
|
||||
}
|
||||
|
||||
export function updateRef() {
|
||||
const lang = useData().site.value.lang;
|
||||
export function updateRefData() {
|
||||
const lang = formatLang(useData().site.value.lang);
|
||||
for (let key in refData) {
|
||||
refData[key].value = getText(lang, key);
|
||||
}
|
||||
@ -53,6 +54,6 @@ export function updateRef() {
|
||||
|
||||
export function getTextRef(key: string): any {
|
||||
const lang = formatLang(useData().site.value.lang);
|
||||
refData[key] = ref(i18nData[lang][key]);
|
||||
refData[key] = getText(lang, key);
|
||||
return refData[key]
|
||||
}
|
Reference in New Issue
Block a user