Fix SSR compatibility and complete Nuxt SSG migration

Agent-Logs-Url: https://github.com/hykilpikonna/corner/sessions/5ad4b623-9a6b-480e-80fa-d83eee774f01

Co-authored-by: hykilpikonna <22280294+hykilpikonna@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-23 20:59:54 +00:00
committed by GitHub
parent 12c0dc46bf
commit 41297fbd2f
11 changed files with 13544 additions and 5012 deletions
+8759 -253
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -28,7 +28,8 @@
</template>
<script setup lang="ts">
import {nextTick, onMounted, onUnmounted, ref, ComponentPublicInstance, watch} from 'vue';
import {nextTick, onMounted, onUnmounted, ref, watch} from 'vue';
import type {ComponentPublicInstance} from 'vue'
const route = useRoute()
+1 -1
View File
@@ -12,7 +12,7 @@
<script setup lang="ts">
import Tag from "@/components/Tag.vue";
import {pushQuery} from "@/scripts/router";
import {BlogMeta} from "@/scripts/models";
import type {BlogMeta} from "@/scripts/models";
import {globals} from "@/scripts/global";
withDefaults(defineProps<{ mode?: 'tags' | 'categories' }>(), {
+1 -1
View File
@@ -28,7 +28,7 @@
<script lang="ts" setup>
import Tag from "@/components/Tag.vue";
import {BlogPost} from "@/scripts/models";
import type {BlogPost} from "@/scripts/models";
import {pushQuery} from "@/scripts/router";
import {$, hosts} from "@/scripts/constants";
import {marked} from "marked";
+16
View File
@@ -0,0 +1,16 @@
<script lang="ts">
import {defineComponent, h} from 'vue'
export default defineComponent({
name: 'Dynamic',
props: {
template: {
type: String,
required: true
}
},
render() {
return h({template: this.template})
}
})
</script>
+1 -1
View File
@@ -30,7 +30,7 @@ import MetaTable from "@/components/MetaTable.vue";
import {capitalize} from "@/scripts/utils";
import linkifyUrls from "linkify-urls";
import {$} from '@/scripts/constants';
import {ZoteroData, ZoteroItem} from "@/scripts/zotero";
import type {ZoteroData, ZoteroItem} from "@/scripts/zotero";
const props = defineProps<{ item: ZoteroItem }>()
+1 -1
View File
@@ -1,4 +1,4 @@
import {BlogMeta} from "@/scripts/models";
import type {BlogMeta} from "@/scripts/models";
export let globals = {
staticMeta: {tags: [], categories: [], posts: []} as BlogMeta,
+2 -1
View File
@@ -1,4 +1,5 @@
import {NavigationFailure, useRoute, useRouter} from 'vue-router'
import {useRoute, useRouter} from 'vue-router'
import type {NavigationFailure} from 'vue-router'
export function pushQuery(query: {[id: string]: string | null}): Promise<void | NavigationFailure | undefined> {
const route = useRoute()
+1 -1
View File
@@ -17,7 +17,7 @@ import {parseExtensions} from '@/scripts/extended_markdown'
import ZoteroPublication from "@/components/ZoteroPublication.vue";
import {hosts} from "@/scripts/constants";
import Loading from "@/components/Loading.vue";
import {ZoteroAttachment, ZoteroItem} from "@/scripts/zotero";
import type {ZoteroAttachment, ZoteroItem} from "@/scripts/zotero";
const html = ref("")
const publications = ref<ZoteroItem[]>([])
+3 -2
View File
@@ -18,8 +18,9 @@
<script setup lang="ts">
import BlogPostPreview from "@/components/BlogPost.vue";
import Loading from "@/components/Loading.vue";
import {BlogMeta} from "@/scripts/models";
import {Ref, ref, computed, onMounted} from "vue";
import type {BlogMeta} from "@/scripts/models";
import {ref, computed, onMounted} from "vue";
import type {Ref} from "vue";
import {hosts} from "@/scripts/constants";
import {globals} from "@/scripts/global";
+7
View File
@@ -1,4 +1,5 @@
<template>
<ClientOnly>
<TgBlog postsUrl="https://profile-api.hydev.org/exports/hykilp/posts.json">
<div class="title">
<h2>生活</h2>
@@ -12,6 +13,12 @@
</div>
</div>
</TgBlog>
<template #fallback>
<div class="title">
<h2>生活</h2>
</div>
</template>
</ClientOnly>
</template>
<script lang="ts" setup>