Repository navigation
Expand file tree
/
Copy pathposts.html
More file actions
180 lines (177 loc) · 45.9 KB
/
Copy pathposts.html
File metadata and controls
180 lines (177 loc) · 45.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.svg">
<script>
;(function () {
const prefersDark =
window.matchMedia &&
window.matchMedia('(prefers-color-scheme: dark)').matches
const setting = localStorage.getItem('vueuse-color-scheme') || 'auto'
if (setting === 'dark' || (prefersDark && setting !== 'light'))
document.documentElement.classList.toggle('dark', true)
})()
</script>
<style type="text/css">
:root { color-scheme: light dark; --va-c-bg: #fff; }
html.dark { --va-c-bg: #000; }
html { background-color: var(--va-c-bg); }
</style><style id="valaxy-fouc">body{opacity:0!important}</style><style>body{transition:opacity .15s ease}</style><noscript><style>body{opacity:1!important}</style></noscript><script>(function foucGuardScript(maxDuration) {
var done = 0;
function reveal() {
if (done) return;
done = 1;
var s = document.getElementById("valaxy-fouc");
if (s) s.remove();
}
function check() {
var links = document.querySelectorAll('link[rel="stylesheet"]');
for (var i = 0; i < links.length; i++) {
if (!links[i].sheet) return;
}
reveal();
}
new MutationObserver(check).observe(document.head, {
childList: true,
attributes: true,
attributeFilter: ["media", "rel"]
});
addEventListener("load", reveal);
if (maxDuration)
setTimeout(reveal, maxDuration);
})(5000)</script>
<script>
const locale = localStorage.getItem('valaxy-locale') || 'zh-CN';
document.documentElement.setAttribute('lang', locale);
</script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3550370964530707"
crossorigin="anonymous"></script>
<script type="module" crossorigin src="/assets/index.CFalTyWr.js"></script>
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime.BWaJ3C7D.js">
<link rel="modulepreload" crossorigin href="/assets/framework.Cowi0K9s.js">
<link rel="modulepreload" crossorigin href="/assets/chunks/vue-i18n.CPH0LMY3.js">
<link rel="modulepreload" crossorigin href="/assets/chunks/vue-router.9-_rSFdg.js">
<link rel="modulepreload" crossorigin href="/assets/chunks/dayjs.Cy-y3ib_.js">
<link rel="modulepreload" crossorigin href="/assets/chunks/pinia.CB4ntaYp.js">
<link rel="modulepreload" crossorigin href="/assets/chunks/@vueuse/motion.jrlBnzDE.js">
<link rel="modulepreload" crossorigin href="/assets/theme.BcfB-gPk.js">
<link rel="modulepreload" crossorigin href="/assets/chunks/nprogress.B1osA4lt.js">
<link rel="stylesheet" crossorigin href="/assets/style.CStTcmUF.css">
<link rel="preload" href="/assets/KaTeX_AMS-Regular.BQhdFMY1.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_AMS-Regular.DMm9YOAa.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Caligraphic-Bold.BEiXGLvX.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Caligraphic-Regular.CTRA-rTL.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Fraktur-Bold.CL6g_b3V.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Fraktur-Bold.BsDP51OF.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Fraktur-Regular.CTYiF6lA.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Fraktur-Regular.Dxdc4cR9.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Main-Bold.Cx986IdX.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Main-Bold.Jm3AIy58.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Main-BoldItalic.SpSLRI95.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Main-Italic.NWA7e6Wa.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Main-Italic.BMLOBm91.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Main-Regular.B22Nviop.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Main-Regular.Dr94JaBh.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Math-BoldItalic.iY-2wyZ7.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Math-Italic.t53AETM-.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Math-Italic.DA0__PXp.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_SansSerif-Bold.D1sUS0GD.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_SansSerif-Bold.DbIhKOiC.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_SansSerif-Italic.C3H0VqGB.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_SansSerif-Italic.DN2j7dab.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_SansSerif-Regular.CS6fqUqJ.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Script-Regular.D3wIWfF6.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Script-Regular.D5yQViql.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Size1-Regular.mCD8mA8B.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Size1-Regular.C195tn64.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Size2-Regular.Dy4dx90m.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Size2-Regular.oD1tc_U0.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Size3-Regular.CTq5MqoE.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Size4-Regular.Dl5lxZxV.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Size4-Regular.BF-4gkZK.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/KaTeX_Typewriter-Regular.CO6r4hn1.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/KaTeX_Typewriter-Regular.C0xS9mPB.woff" as="font" type="font/woff" crossorigin>
<link rel="modulepreload" crossorigin href="/assets/theme.BcfB-gPk.js">
<link rel="preload" href="/assets/none.DLM1AMsD.jpg" as="image">
<link rel="preload" href="/assets/bg-img.kXdNMxcF.jpg" as="image">
<link rel="preload" href="/assets/sidebar-bg-img.mp54gEws.webp" as="image">
<link rel="preload" href="/assets/lg.CosQH4Cu.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/assets/lg.B0dIV2BS.svg" as="image">
<link rel="preload" href="/assets/loading.BZOHaeKn.gif" as="image">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mirari's Blog</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@900&display=swap">
<meta property="og:locale:alternate" content="en">
<meta name="description" content="严重拖延症">
<meta property="og:description" content="严重拖延症">
<meta property="og:locale" content="zh-CN">
<meta property="og:site_name" content="Mirari's Blog">
<meta property="og:title" content="Mirari's Blog">
<meta property="og:image" content="https://mirari.cc/favicon.svg">
<meta property="og:image:alt" content="Mirari's Blog">
<meta property="og:type" content="website">
<meta property="og:url" content="https://mirari.cc/posts">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:description" content="严重拖延症">
<meta name="twitter:image" content="https://mirari.cc/favicon.svg">
<meta name="twitter:title" content="Mirari's Blog">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<meta name="generator" content="Valaxy 1.2.0">
<link rel="canonical" href="https://mirari.cc/posts">
<meta name="theme-color" content="#fff">
<meta name="msapplication-TileColor" content="#fff">
</head>
<body>
<div id="app"><!--[--><!--[--><!--[--><!--v-if--><div class="yun-page-header-gradient"></div><div class="yun-nav-menu z-$yun-z-nav-menu fixed bg-transparent is-glass" data-v-e1dd1ae4><!-- --><div class="inline-flex justify-start items-center flex-1" data-v-e1dd1ae4><button type="button" class="vt-hamburger menu-btn sidebar-toggle leading-4 size-12 lg:hidden!" aria-label="mobile navigation" aria-expanded="false" inline-flex cursor="pointer" hover="bg-white/80 dark:bg-black/80" z="$yun-z-menu-btn" data-v-e1dd1ae4><span class="vt-hamburger-container"><span class="vt-hamburger-top"></span><span class="vt-hamburger-middle"></span><span class="vt-hamburger-bottom"></span></span></button><a href="/" class="va-link size-12 inline-flex-center cursor-pointer z-$yun-z-nav-menu text-$va-c-text" hover="bg-white/80 dark:bg-black/80 op-100" op-80 data-v-e1dd1ae4><!--[--><div class="size-6 i-ri-home-4-line"></div><!--]--></a><div class="hidden lg:contents" data-v-e1dd1ae4><!--[--><a aria-current="page" href="/posts/" class="router-link-active router-link-exact-active va-link size-12 inline-flex-center cursor-pointer z-$yun-z-nav-menu text-$va-c-text" hover="bg-white/80 dark:bg-black/80 op-100" op-80 title="menu.posts" data-v-e1dd1ae4><!--[--><div class="size-6 i-ri-article-line"></div><!--]--></a><a href="/sites/" class="va-link size-12 inline-flex-center cursor-pointer z-$yun-z-nav-menu text-$va-c-text" hover="bg-white/80 dark:bg-black/80 op-100" op-80 title="站点地图" data-v-e1dd1ae4><!--[--><div class="size-6 i-ri-planet-line"></div><!--]--></a><!--]--></div></div><div class="flex flex-1 flex-center" data-v-e1dd1ae4><div flex="~ center col h-full" class="nav-menu-title-container cursor-pointer" data-v-e1dd1ae4><!----><span class="font-light truncate">Mirari's Blog</span></div></div><div class="inline-flex-center justify-end items-center flex-1" data-v-e1dd1ae4><!-- <template v-if="!app.isMobile && themeConfig.nav">
<template v-for="item in themeConfig.nav" :key="item.text">
<AppLink
v-if="'link' in item"
:to="item.link"
class="menu-btn inline-flex-center p-2 transition text-$va-c-text"
inline-flex cursor="pointer"
hover="bg-white/80 dark:bg-black/80"
z="$yun-z-menu-btn"
>
{{ item.text }}
</AppLink>
<template v-else-if="'items' in item" />
</template>
</template> --><button class="yun-icon-btn rounded-none! hidden sm:inline-flex" title="切换语言" style="color:var(--va-c-text);" data-v-e1dd1ae4><div i-ri-translate class="transition transform"></div></button><button type="button" class="yun-icon-btn yun-toggle-dark rounded-none!" title="切换深色模式" aria-label="切换深色模式" data-v-e1dd1ae4><div i="ri-sun-line dark:ri-moon-line"></div></button><!--[--><button class="yun-search-btn yun-icon-btn yun-search-action popup-trigger" title="搜索"><div i-ri-search-line aria-hidden="true"></div></button><!--[--><!--v-if--><!--]--><!--]--></div></div><!----><!--v-if--><!----><!--[--><div class="yun-bg"></div><!--]--><!----><button type="button" class="back-to-top yun-icon-btn" aria-label="回到顶部" title="回到顶部" tabindex="-1" aria-hidden="true" style="--yun-back-top-progress:0deg;"><div class="back-to-top-arrow" i-ri-arrow-up-s-line aria-hidden="true"></div></button><!--]--><!--[--><!--]--><!----><!--]--><div class="min-h-screen flex flex-col"><!----><div class="mt-12 md:mt-24 yun-layout-wrapper-content yun-layout-wrapper__content"><!--[--><div w="full"><div flex="~ col" class="yun-post-list gap-4 items-center" w="full" p="x-4 lt-sm:0"><!----><!--[--><!--[--><div class="post-card-link flex-center w-full"><div class="yun-card flex-center overflow-hidden post-card-wrapper w-full hover:scale-102 hover:z-1 post-card" flex="col" min-h="100px" bg="$va-c-bg-light" mx="4" overflow="hidden" data-v-430e6195><!----><!----><div class="yun-card-body relative" w="full" flex="~ col" items="center" data-v-430e6195><!--[--><!-- Overlay link covers the entire card --><a href="/posts/2026-03-13-what_is_it_like_to_raise_a_lobster_that_complains_in_a_tavern/" class="va-link post-card-overlay" aria-label="养一只会跑去酒馆吐槽的龙虾是什么体验?" tabindex="0"><!--[--><!--]--></a><div class="flex flex-1 of-hidden justify-start items-start post-card-info" w="full"><!----><div class="post-card-body flex flex-col items-center relative" w="full"><a href="/posts/2026-03-13-what_is_it_like_to_raise_a_lobster_that_complains_in_a_tavern/" class="va-link post-title-link bg-gradient-to-r gradient-text from-$va-c-primary to-$va-c-primary-lighter" m="t-3" tabindex="-1"><!--[--><div class="post-card-title flex-center title text-2xl" text="center" font="serif black"><!--v-if--><span>养一只会跑去酒馆吐槽的龙虾是什么体验?</span></div><!--]--></a><!--[--><!----><div flex="~ center" text="sm" class="post-meta-col post-meta gap-4"><div class="post-time flex items-center gap-4"><span class="posted-time inline-flex-center gap-1" title="发表于2026-03-13 01:24:42"><div class="inline-block" i-ri-calendar-line></div><time class="op-80">2026-03-13</time></span><span class="edited-time inline-flex-center gap-1" title="更新于2026-10-21 14:18:59"><div i-ri-calendar-2-line></div><time class="op-80">2026-10-21</time></span></div><!--[--><!--]--><div class="inline-flex-center gap-4"><div class="inline-flex-center post-counter gap-4"><span class="word-count inline-flex-center gap-1" title="本文字数"><div class="inline-block" i-ri-file-word-line></div><span class="op-80">1k</span></span><span class="reading-time inline-flex-center gap-1" title="阅读时长"><div i-ri-timer-line></div><time class="op-80">5m</time></span></div><div class="inline-flex gap-4" text="sm" h="5"><div inline-flex justify="center" items="center" title="阅读次数"><div inline-flex i-ri-eye-line></div><span ml-1 inline-flex class="waline-pageview-count op-80" data-path="/posts"></span></div><div inline-flex justify="center" items="center" title="评论数"><div inline-flex i-ri-chat-4-line></div><span ml-1 inline-flex class="waline-comment-count op-80" data-path="/posts"></span></div></div><!----></div></div><!--]--><div class="post-card-excerpt" flex="~ grow col" w="full" justify="center" items="center"><!----><!--[--><div class="post-card-excerpt-content markdown-body" text="left" w="full" p="x-6 y-2"><p>关于“养龙虾”的基本概念就不赘述了。如果只是把它接入聊天工具,那它充其量还是个问答助手,和豆包之类没有本质区别;如果只是利用它保持在线的能力,硬塞一些普通的日程提醒,也纯粹是为了做而做,缺乏真正的必要性。</p>
<p>但是,如果你放手让它自己出去探索、学习和实践,然后再暗中观察它的行动表现,绝对能让你找回当年玩《旅行青蛙》时那种“养儿子”的奇妙感觉。</p>
<p>国外的Moltbook已经火了两个月了,简单来...</p>
</div><!--]--></div><!----><!----></div></div><!-- always show --><div w="full" class="yun-card-actions flex items-center justify-between" p="x-4 y-2" text="sm"><div class="post-categories inline-flex gap-2" flex="wrap 1" items="center"><a href="/categories?category=%E7%94%9F%E6%B4%BB%E9%9A%8F%E7%AC%94" class="transition post-category inline-flex-center text-xs border-$va-c-divider" px-2 h="7" border rounded-full hover="bg-blue-500 text-white"><div m="x-1" inline-flex i-ri-folder-2-line></div><span>生活随笔</span></a><!----></div><div class="post-tags inline-flex" items="center" gap="1" flex="wrap 1" justify="end" m="l-2"><!--[--><a href="/tags/?tag=AI" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>AI</span></a><a href="/tags/?tag=Agent" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>Agent</span></a><a href="/tags/?tag=Moltbook" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>Moltbook</span></a><a href="/tags/?tag=InStreet" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>InStreet</span></a><!--]--></div></div><!--]--></div><!----></div></div><!--]--><!--[--><div class="post-card-link flex-center w-full"><div class="yun-card flex-center overflow-hidden post-card-wrapper w-full hover:scale-102 hover:z-1 post-card" flex="col" min-h="100px" bg="$va-c-bg-light" mx="4" overflow="hidden" data-v-430e6195><!----><!----><div class="yun-card-body relative" w="full" flex="~ col" items="center" data-v-430e6195><!--[--><!-- Overlay link covers the entire card --><a href="/posts/2024-09-03-alipay_mini_program_automated_deployment/" class="va-link post-card-overlay" aria-label="支付宝小程序批量自动化部署" tabindex="0"><!--[--><!--]--></a><div class="flex flex-1 of-hidden justify-start items-start post-card-info" w="full"><!----><div class="post-card-body flex flex-col items-center relative" w="full"><a href="/posts/2024-09-03-alipay_mini_program_automated_deployment/" class="va-link post-title-link bg-gradient-to-r gradient-text from-$va-c-primary to-$va-c-primary-lighter" m="t-3" tabindex="-1"><!--[--><div class="post-card-title flex-center title text-2xl" text="center" font="serif black"><!--v-if--><span>支付宝小程序批量自动化部署</span></div><!--]--></a><!--[--><!----><div flex="~ center" text="sm" class="post-meta-col post-meta gap-4"><div class="post-time flex items-center gap-4"><span class="posted-time inline-flex-center gap-1" title="发表于2024-09-03 15:10:46"><div class="inline-block" i-ri-calendar-line></div><time class="op-80">2024-09-03</time></span><span class="edited-time inline-flex-center gap-1" title="更新于2026-10-21 14:18:59"><div i-ri-calendar-2-line></div><time class="op-80">2026-10-21</time></span></div><!--[--><!--]--><div class="inline-flex-center gap-4"><div class="inline-flex-center post-counter gap-4"><span class="word-count inline-flex-center gap-1" title="本文字数"><div class="inline-block" i-ri-file-word-line></div><span class="op-80">1.6k</span></span><span class="reading-time inline-flex-center gap-1" title="阅读时长"><div i-ri-timer-line></div><time class="op-80">10m</time></span></div><div class="inline-flex gap-4" text="sm" h="5"><div inline-flex justify="center" items="center" title="阅读次数"><div inline-flex i-ri-eye-line></div><span ml-1 inline-flex class="waline-pageview-count op-80" data-path="/posts"></span></div><div inline-flex justify="center" items="center" title="评论数"><div inline-flex i-ri-chat-4-line></div><span ml-1 inline-flex class="waline-comment-count op-80" data-path="/posts"></span></div></div><!----></div></div><!--]--><div class="post-card-excerpt" flex="~ grow col" w="full" justify="center" items="center"><!----><!--[--><div class="post-card-excerpt-content markdown-body" text="left" w="full" p="x-6 y-2"><p>下面梳理一下支付宝小程序的批量自动化部署实现流程。</p>
<p>大致流程与微信小程序类似,请参考<a href="/posts/2024-07-18-wechat_mini_program_automated_deployment">微信小程序批量自动化部署</a>。</p>
<p>跟着文档操作,首先需要到支付宝小程序管理后台右上角点击头像后点击[<strong>账户中心</strong>](<a href="https://open.alipay.com/develop/" target="_blank" rel="noreferrer">https://open.alipay.com/develop/</a>...</p>
</div><!--]--></div><!----><!----></div></div><!-- always show --><div w="full" class="yun-card-actions flex items-center justify-between" p="x-4 y-2" text="sm"><div class="post-categories inline-flex gap-2" flex="wrap 1" items="center"><a href="/categories?category=%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0" class="transition post-category inline-flex-center text-xs border-$va-c-divider" px-2 h="7" border rounded-full hover="bg-blue-500 text-white"><div m="x-1" inline-flex i-ri-folder-2-line></div><span>学习笔记</span></a><!----></div><div class="post-tags inline-flex" items="center" gap="1" flex="wrap 1" justify="end" m="l-2"><!--[--><a href="/tags/?tag=uni-app" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>uni-app</span></a><a href="/tags/?tag=nodejs" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>nodejs</span></a><a href="/tags/?tag=vue3" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>vue3</span></a><a href="/tags/?tag=%E5%B0%8F%E7%A8%8B%E5%BA%8F" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>小程序</span></a><!--]--></div></div><!--]--></div><!----></div></div><!--]--><!--[--><div class="post-card-link flex-center w-full"><div class="yun-card flex-center overflow-hidden post-card-wrapper w-full hover:scale-102 hover:z-1 post-card" flex="col" min-h="100px" bg="$va-c-bg-light" mx="4" overflow="hidden" data-v-430e6195><!----><!----><div class="yun-card-body relative" w="full" flex="~ col" items="center" data-v-430e6195><!--[--><!-- Overlay link covers the entire card --><a href="/posts/2024-09-03-toutiao_mini_program_automated_deployment/" class="va-link post-card-overlay" aria-label="头条小程序批量自动化部署" tabindex="0"><!--[--><!--]--></a><div class="flex flex-1 of-hidden justify-start items-start post-card-info" w="full"><!----><div class="post-card-body flex flex-col items-center relative" w="full"><a href="/posts/2024-09-03-toutiao_mini_program_automated_deployment/" class="va-link post-title-link bg-gradient-to-r gradient-text from-$va-c-primary to-$va-c-primary-lighter" m="t-3" tabindex="-1"><!--[--><div class="post-card-title flex-center title text-2xl" text="center" font="serif black"><!--v-if--><span>头条小程序批量自动化部署</span></div><!--]--></a><!--[--><!----><div flex="~ center" text="sm" class="post-meta-col post-meta gap-4"><div class="post-time flex items-center gap-4"><span class="posted-time inline-flex-center gap-1" title="发表于2024-09-03 15:10:17"><div class="inline-block" i-ri-calendar-line></div><time class="op-80">2024-09-03</time></span><span class="edited-time inline-flex-center gap-1" title="更新于2026-10-21 14:18:59"><div i-ri-calendar-2-line></div><time class="op-80">2026-10-21</time></span></div><!--[--><!--]--><div class="inline-flex-center gap-4"><div class="inline-flex-center post-counter gap-4"><span class="word-count inline-flex-center gap-1" title="本文字数"><div class="inline-block" i-ri-file-word-line></div><span class="op-80">1.9k</span></span><span class="reading-time inline-flex-center gap-1" title="阅读时长"><div i-ri-timer-line></div><time class="op-80">11m</time></span></div><div class="inline-flex gap-4" text="sm" h="5"><div inline-flex justify="center" items="center" title="阅读次数"><div inline-flex i-ri-eye-line></div><span ml-1 inline-flex class="waline-pageview-count op-80" data-path="/posts"></span></div><div inline-flex justify="center" items="center" title="评论数"><div inline-flex i-ri-chat-4-line></div><span ml-1 inline-flex class="waline-comment-count op-80" data-path="/posts"></span></div></div><!----></div></div><!--]--><div class="post-card-excerpt" flex="~ grow col" w="full" justify="center" items="center"><!----><!--[--><div class="post-card-excerpt-content markdown-body" text="left" w="full" p="x-6 y-2"><p>下面梳理一下头条小程序的批量自动化部署实现流程。</p>
<p>大致流程与微信小程序类似,请参考<a href="/posts/2024-07-18-wechat_mini_program_automated_deployment">微信小程序批量自动化部署</a>。</p>
<p>跟着文档操作,首先需要到头条小程序管理后台的开发设置中进行配置。</p>
<p>点击立即启用按钮即可创建密钥,关闭后只能重新生成。</p>
<figure><img src="./1.png" alt="" loading="lazy" decoding="async"></figure>
<p>将...</p>
</div><!--]--></div><!----><!----></div></div><!-- always show --><div w="full" class="yun-card-actions flex items-center justify-between" p="x-4 y-2" text="sm"><div class="post-categories inline-flex gap-2" flex="wrap 1" items="center"><a href="/categories?category=%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0" class="transition post-category inline-flex-center text-xs border-$va-c-divider" px-2 h="7" border rounded-full hover="bg-blue-500 text-white"><div m="x-1" inline-flex i-ri-folder-2-line></div><span>学习笔记</span></a><!----></div><div class="post-tags inline-flex" items="center" gap="1" flex="wrap 1" justify="end" m="l-2"><!--[--><a href="/tags/?tag=uni-app" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>uni-app</span></a><a href="/tags/?tag=nodejs" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>nodejs</span></a><a href="/tags/?tag=vue3" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>vue3</span></a><a href="/tags/?tag=%E5%B0%8F%E7%A8%8B%E5%BA%8F" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>小程序</span></a><!--]--></div></div><!--]--></div><!----></div></div><!--]--><!--[--><div class="post-card-link flex-center w-full"><div class="yun-card flex-center overflow-hidden post-card-wrapper w-full hover:scale-102 hover:z-1 post-card" flex="col" min-h="100px" bg="$va-c-bg-light" mx="4" overflow="hidden" data-v-430e6195><!----><!----><div class="yun-card-body relative" w="full" flex="~ col" items="center" data-v-430e6195><!--[--><!-- Overlay link covers the entire card --><a href="/posts/2024-07-18-wechat_mini_program_automated_deployment/" class="va-link post-card-overlay" aria-label="微信小程序批量自动化部署" tabindex="0"><!--[--><!--]--></a><div class="flex flex-1 of-hidden justify-start items-start post-card-info" w="full"><!----><div class="post-card-body flex flex-col items-center relative" w="full"><a href="/posts/2024-07-18-wechat_mini_program_automated_deployment/" class="va-link post-title-link bg-gradient-to-r gradient-text from-$va-c-primary to-$va-c-primary-lighter" m="t-3" tabindex="-1"><!--[--><div class="post-card-title flex-center title text-2xl" text="center" font="serif black"><!--v-if--><span>微信小程序批量自动化部署</span></div><!--]--></a><!--[--><!----><div flex="~ center" text="sm" class="post-meta-col post-meta gap-4"><div class="post-time flex items-center gap-4"><span class="posted-time inline-flex-center gap-1" title="发表于2024-07-18 14:24:14"><div class="inline-block" i-ri-calendar-line></div><time class="op-80">2024-07-18</time></span><span class="edited-time inline-flex-center gap-1" title="更新于2026-10-21 14:18:59"><div i-ri-calendar-2-line></div><time class="op-80">2026-10-21</time></span></div><!--[--><!--]--><div class="inline-flex-center gap-4"><div class="inline-flex-center post-counter gap-4"><span class="word-count inline-flex-center gap-1" title="本文字数"><div class="inline-block" i-ri-file-word-line></div><span class="op-80">3.4k</span></span><span class="reading-time inline-flex-center gap-1" title="阅读时长"><div i-ri-timer-line></div><time class="op-80">19m</time></span></div><div class="inline-flex gap-4" text="sm" h="5"><div inline-flex justify="center" items="center" title="阅读次数"><div inline-flex i-ri-eye-line></div><span ml-1 inline-flex class="waline-pageview-count op-80" data-path="/posts"></span></div><div inline-flex justify="center" items="center" title="评论数"><div inline-flex i-ri-chat-4-line></div><span ml-1 inline-flex class="waline-comment-count op-80" data-path="/posts"></span></div></div><!----></div></div><!--]--><div class="post-card-excerpt" flex="~ grow col" w="full" justify="center" items="center"><!----><!--[--><div class="post-card-excerpt-content markdown-body" text="left" w="full" p="x-6 y-2"><p>CI/CD这个概念很实用,但我们这种小作坊,没有一些很高大上的应用。</p>
<p>最常见的使用场景就是,开发者一键提交分支master,交给工作流工具完成构建,部署的后续操作,自动更新测试或线上环境。</p>
<p>个人博客等项目可以使用Github action来实现,但公司的代码在云效上,我更习惯于使用云效Flow来实现自动化部署。他的操作菜单是可视化的,非常方便,还有一些推送机器人消息的傻瓜化配置插件。</p>
<p>目前遇...</p>
</div><!--]--></div><!----><!----></div></div><!-- always show --><div w="full" class="yun-card-actions flex items-center justify-between" p="x-4 y-2" text="sm"><div class="post-categories inline-flex gap-2" flex="wrap 1" items="center"><a href="/categories?category=%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0" class="transition post-category inline-flex-center text-xs border-$va-c-divider" px-2 h="7" border rounded-full hover="bg-blue-500 text-white"><div m="x-1" inline-flex i-ri-folder-2-line></div><span>学习笔记</span></a><!----></div><div class="post-tags inline-flex" items="center" gap="1" flex="wrap 1" justify="end" m="l-2"><!--[--><a href="/tags/?tag=uni-app" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>uni-app</span></a><a href="/tags/?tag=nodejs" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>nodejs</span></a><a href="/tags/?tag=vue3" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>vue3</span></a><a href="/tags/?tag=%E5%B0%8F%E7%A8%8B%E5%BA%8F" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>小程序</span></a><!--]--></div></div><!--]--></div><!----></div></div><!--]--><!--[--><div class="post-card-link flex-center w-full"><div class="yun-card flex-center overflow-hidden post-card-wrapper w-full hover:scale-102 hover:z-1 post-card" flex="col" min-h="100px" bg="$va-c-bg-light" mx="4" overflow="hidden" data-v-430e6195><!----><!----><div class="yun-card-body relative" w="full" flex="~ col" items="center" data-v-430e6195><!--[--><!-- Overlay link covers the entire card --><a href="/posts/2024-05-21-fixing_apps_not_opening_on_mac_systems/" class="va-link post-card-overlay" aria-label="Mac修复应用无法打开" tabindex="0"><!--[--><!--]--></a><div class="flex flex-1 of-hidden justify-start items-start post-card-info" w="full"><!----><div class="post-card-body flex flex-col items-center relative" w="full"><a href="/posts/2024-05-21-fixing_apps_not_opening_on_mac_systems/" class="va-link post-title-link bg-gradient-to-r gradient-text from-$va-c-primary to-$va-c-primary-lighter" m="t-3" tabindex="-1"><!--[--><div class="post-card-title flex-center title text-2xl" text="center" font="serif black"><!--v-if--><span>Mac修复应用无法打开</span></div><!--]--></a><!--[--><!----><div flex="~ center" text="sm" class="post-meta-col post-meta gap-4"><div class="post-time flex items-center gap-4"><span class="posted-time inline-flex-center gap-1" title="发表于2024-05-21 17:46:29"><div class="inline-block" i-ri-calendar-line></div><time class="op-80">2024-05-21</time></span><span class="edited-time inline-flex-center gap-1" title="更新于2026-10-21 14:18:59"><div i-ri-calendar-2-line></div><time class="op-80">2026-10-21</time></span></div><!--[--><!--]--><div class="inline-flex-center gap-4"><div class="inline-flex-center post-counter gap-4"><span class="word-count inline-flex-center gap-1" title="本文字数"><div class="inline-block" i-ri-file-word-line></div><span class="op-80">295</span></span><span class="reading-time inline-flex-center gap-1" title="阅读时长"><div i-ri-timer-line></div><time class="op-80">2m</time></span></div><div class="inline-flex gap-4" text="sm" h="5"><div inline-flex justify="center" items="center" title="阅读次数"><div inline-flex i-ri-eye-line></div><span ml-1 inline-flex class="waline-pageview-count op-80" data-path="/posts"></span></div><div inline-flex justify="center" items="center" title="评论数"><div inline-flex i-ri-chat-4-line></div><span ml-1 inline-flex class="waline-comment-count op-80" data-path="/posts"></span></div></div><!----></div></div><!--]--><div class="post-card-excerpt" flex="~ grow col" w="full" justify="center" items="center"><!----><!--[--><div class="post-card-excerpt-content markdown-body" text="left" w="full" p="x-6 y-2"><p>在一些第三方网站下载安装MacOS应用时,打开dmg文件,有时候会有一个“修复无法打开”的图标。</p>
<p>遇到应用拖动到Applications文件夹无法打开时,双击运行一下就可以解决问题。</p>
<p>但是在Sonoma 14.5版本下,这些操作失效了。</p>
<p>在隐私与安全性中配置“任何来源”<code>(sudo spctl --master-disable)</code>与点击“仍要打开”这些基本操作就不说了,只记录下如何解决“修复...</p>
</div><!--]--></div><!----><!----></div></div><!-- always show --><div w="full" class="yun-card-actions flex items-center justify-between" p="x-4 y-2" text="sm"><div class="post-categories inline-flex gap-2" flex="wrap 1" items="center"><a href="/categories?category=%E5%A5%BD%E4%BA%BA%E4%BF%AE%E7%94%B5%E8%84%91" class="transition post-category inline-flex-center text-xs border-$va-c-divider" px-2 h="7" border rounded-full hover="bg-blue-500 text-white"><div m="x-1" inline-flex i-ri-folder-2-line></div><span>好人修电脑</span></a><!----></div><div class="post-tags inline-flex" items="center" gap="1" flex="wrap 1" justify="end" m="l-2"><!--[--><a href="/tags/?tag=%E5%A5%BD%E4%BA%BA%E4%BF%AE%E7%94%B5%E8%84%91" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>好人修电脑</span></a><a href="/tags/?tag=MacOS" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>MacOS</span></a><!--]--></div></div><!--]--></div><!----></div></div><!--]--><!--[--><div class="post-card-link flex-center w-full"><div class="yun-card flex-center overflow-hidden post-card-wrapper w-full hover:scale-102 hover:z-1 post-card" flex="col" min-h="100px" bg="$va-c-bg-light" mx="4" overflow="hidden" data-v-430e6195><!----><!----><div class="yun-card-body relative" w="full" flex="~ col" items="center" data-v-430e6195><!--[--><!-- Overlay link covers the entire card --><a href="/posts/2024-05-18-vue_implements_ai_assistant_4_sse/" class="va-link post-card-overlay" aria-label="vue实现AI问答小助手(4)——服务端推送(SSE)" tabindex="0"><!--[--><!--]--></a><div class="flex flex-1 of-hidden justify-start items-start post-card-info" w="full"><!----><div class="post-card-body flex flex-col items-center relative" w="full"><a href="/posts/2024-05-18-vue_implements_ai_assistant_4_sse/" class="va-link post-title-link bg-gradient-to-r gradient-text from-$va-c-primary to-$va-c-primary-lighter" m="t-3" tabindex="-1"><!--[--><div class="post-card-title flex-center title text-2xl" text="center" font="serif black"><!--v-if--><span>vue实现AI问答小助手(4)——服务端推送(SSE)</span></div><!--]--></a><!--[--><!----><div flex="~ center" text="sm" class="post-meta-col post-meta gap-4"><div class="post-time flex items-center gap-4"><span class="posted-time inline-flex-center gap-1" title="发表于2024-05-18 17:40:12"><div class="inline-block" i-ri-calendar-line></div><time class="op-80">2024-05-18</time></span><span class="edited-time inline-flex-center gap-1" title="更新于2026-10-21 14:18:59"><div i-ri-calendar-2-line></div><time class="op-80">2026-10-21</time></span></div><!--[--><!--]--><div class="inline-flex-center gap-4"><div class="inline-flex-center post-counter gap-4"><span class="word-count inline-flex-center gap-1" title="本文字数"><div class="inline-block" i-ri-file-word-line></div><span class="op-80">1k</span></span><span class="reading-time inline-flex-center gap-1" title="阅读时长"><div i-ri-timer-line></div><time class="op-80">7m</time></span></div><div class="inline-flex gap-4" text="sm" h="5"><div inline-flex justify="center" items="center" title="阅读次数"><div inline-flex i-ri-eye-line></div><span ml-1 inline-flex class="waline-pageview-count op-80" data-path="/posts"></span></div><div inline-flex justify="center" items="center" title="评论数"><div inline-flex i-ri-chat-4-line></div><span ml-1 inline-flex class="waline-comment-count op-80" data-path="/posts"></span></div></div><!----></div></div><!--]--><div class="post-card-excerpt" flex="~ grow col" w="full" justify="center" items="center"><!----><!--[--><div class="post-card-excerpt-content markdown-body" text="left" w="full" p="x-6 y-2"><p>与AI聊天接口交互时,由于生成内容需要一定时间,如果等到所有内容都生成完毕才返回,那用户等待的时间会很长,使用体验就很差。</p>
<p>因此,必须实现流式返回。</p>
<p>一般情况下聊天之类的功能往往会用socket来实现,但由于AI总是一问一答,其实更适合的方案就是SSE([server-sent events](<a href="https://developer.mozilla.org/zh-CN/docs/Web/API/S" target="_blank" rel="noreferrer">https://developer.mozilla.org/zh-CN/docs/Web/API/S</a>...</p>
</div><!--]--></div><!----><!----></div></div><!-- always show --><div w="full" class="yun-card-actions flex items-center justify-between" p="x-4 y-2" text="sm"><div class="post-categories inline-flex gap-2" flex="wrap 1" items="center"><a href="/categories?category=%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0" class="transition post-category inline-flex-center text-xs border-$va-c-divider" px-2 h="7" border rounded-full hover="bg-blue-500 text-white"><div m="x-1" inline-flex i-ri-folder-2-line></div><span>学习笔记</span></a><!----></div><div class="post-tags inline-flex" items="center" gap="1" flex="wrap 1" justify="end" m="l-2"><!--[--><a href="/tags/?tag=vueuse" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>vueuse</span></a><a href="/tags/?tag=vue3" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>vue3</span></a><a href="/tags/?tag=WebRTC" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>WebRTC</span></a><a href="/tags/?tag=ASR" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>ASR</span></a><!--]--></div></div><!--]--></div><!----></div></div><!--]--><!--[--><div class="post-card-link flex-center w-full"><div class="yun-card flex-center overflow-hidden post-card-wrapper w-full hover:scale-102 hover:z-1 post-card" flex="col" min-h="100px" bg="$va-c-bg-light" mx="4" overflow="hidden" data-v-430e6195><!----><!----><div class="yun-card-body relative" w="full" flex="~ col" items="center" data-v-430e6195><!--[--><!-- Overlay link covers the entire card --><a href="/posts/2024-05-16-vue_implements_ai_assistant_2_stream_tts/" class="va-link post-card-overlay" aria-label="vue实现AI问答小助手(2)——流式TTS文字转语音" tabindex="0"><!--[--><!--]--></a><div class="flex flex-1 of-hidden justify-start items-start post-card-info" w="full"><!----><div class="post-card-body flex flex-col items-center relative" w="full"><a href="/posts/2024-05-16-vue_implements_ai_assistant_2_stream_tts/" class="va-link post-title-link bg-gradient-to-r gradient-text from-$va-c-primary to-$va-c-primary-lighter" m="t-3" tabindex="-1"><!--[--><div class="post-card-title flex-center title text-2xl" text="center" font="serif black"><!--v-if--><span>vue实现AI问答小助手(2)——流式TTS文字转语音</span></div><!--]--></a><!--[--><!----><div flex="~ center" text="sm" class="post-meta-col post-meta gap-4"><div class="post-time flex items-center gap-4"><span class="posted-time inline-flex-center gap-1" title="发表于2024-05-16 20:52:43"><div class="inline-block" i-ri-calendar-line></div><time class="op-80">2024-05-16</time></span><span class="edited-time inline-flex-center gap-1" title="更新于2026-10-21 14:18:59"><div i-ri-calendar-2-line></div><time class="op-80">2026-10-21</time></span></div><!--[--><!--]--><div class="inline-flex-center gap-4"><div class="inline-flex-center post-counter gap-4"><span class="word-count inline-flex-center gap-1" title="本文字数"><div class="inline-block" i-ri-file-word-line></div><span class="op-80">2k</span></span><span class="reading-time inline-flex-center gap-1" title="阅读时长"><div i-ri-timer-line></div><time class="op-80">13m</time></span></div><div class="inline-flex gap-4" text="sm" h="5"><div inline-flex justify="center" items="center" title="阅读次数"><div inline-flex i-ri-eye-line></div><span ml-1 inline-flex class="waline-pageview-count op-80" data-path="/posts"></span></div><div inline-flex justify="center" items="center" title="评论数"><div inline-flex i-ri-chat-4-line></div><span ml-1 inline-flex class="waline-comment-count op-80" data-path="/posts"></span></div></div><!----></div></div><!--]--><div class="post-card-excerpt" flex="~ grow col" w="full" justify="center" items="center"><!----><!--[--><div class="post-card-excerpt-content markdown-body" text="left" w="full" p="x-6 y-2"><p>TTS(Text-to-speech)文字转语音使用的是阿里云的服务,文档地址:</p>
<p><a href="https://help.aliyun.com/zh/isi/developer-reference/streaming-text-tts-wss" target="_blank" rel="noreferrer">https://help.aliyun.com/zh/isi/developer-reference/streaming-text-tts-wss</a></p>
<p>文档只给出了一些配置项的说明,以及java端的代码示例,但没有web端的。所以这篇笔记可以给web开发者参考。</p>
<hr>
<p>首先,AI答复的消息是通过SSE([ser...</p>
</div><!--]--></div><!----><!----></div></div><!-- always show --><div w="full" class="yun-card-actions flex items-center justify-between" p="x-4 y-2" text="sm"><div class="post-categories inline-flex gap-2" flex="wrap 1" items="center"><a href="/categories?category=%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0" class="transition post-category inline-flex-center text-xs border-$va-c-divider" px-2 h="7" border rounded-full hover="bg-blue-500 text-white"><div m="x-1" inline-flex i-ri-folder-2-line></div><span>学习笔记</span></a><!----></div><div class="post-tags inline-flex" items="center" gap="1" flex="wrap 1" justify="end" m="l-2"><!--[--><a href="/tags/?tag=vueuse" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>vueuse</span></a><a href="/tags/?tag=vue3" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>vue3</span></a><a href="/tags/?tag=socket" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>socket</span></a><a href="/tags/?tag=tts" class="transition post-tag inline-flex-center text-xs border-$va-c-divider" px-2 h="7" rounded-full border hover="bg-blue-500"><span>tts</span></a><!--]--></div></div><!--]--></div><!----></div></div><!--]--><!--]--></div><!----></div><!--]--></div><footer flex="~ col" class="relative yun-footer va-footer px-4 py-4 pt-0 text-$va-c-text-light w-full mt-14" bg="white dark:$va-c-bg-soft" text="center sm"><div class="yun-cloud absolute top--10 left-0 right-0"><svg class="waves" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto"><defs><path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z" fill="var(--yun-c-cloud)"></path></defs><g class="parallax"><use xlink:href="#gentle-wave" x="48" y="0"></use><use xlink:href="#gentle-wave" x="48" y="3"></use><use xlink:href="#gentle-wave" x="48" y="5"></use><use xlink:href="#gentle-wave" x="48" y="7"></use></g></svg></div><!----><div class="copyright flex justify-center items-center gap-2" p="1"><span> © <!--[-->2017 - <!--]--> 2026</span><!----><span>mirari</span></div><!----><!--[--><!--]--><div class="yun-footer-gradient"></div></footer></div><!--]--></div><script>window.__INITIAL_STATE__='{"pinia":{"yun-app":{"bannerAnimationDone":false},"app":{"showLoading":true},"routerStore":{}}}'</script><script type="application/ld+json" data-hid="schema-org-graph">{"@context":"https://schema.org","@graph":[{"@id":"https://mirari.cc/#identity","@type":"Person","name":"mirari","url":"https://mirari.cc/","image":{"@id":"https://mirari.cc/#/schema/image/1"},"sameAs":["/atom.xml","https://github.com/mirari","mailto:clover4@gmail.com","https://www.travellings.cn/go.html"]},{"@id":"https://mirari.cc/#website","@type":"WebSite","inLanguage":"zh-CN","url":"https://mirari.cc/","publisher":{"@id":"https://mirari.cc/#identity"}},{"@id":"https://mirari.cc/posts#webpage","@type":"WebPage","description":"严重拖延症","url":"https://mirari.cc/posts","isPartOf":{"@id":"https://mirari.cc/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://mirari.cc/posts"]}]},{"@id":"https://mirari.cc/#/schema/image/1","@type":"ImageObject","contentUrl":"https://mirari.cc/avatar.jpg","inLanguage":"zh-CN","url":"https://mirari.cc/avatar.jpg"}]}</script>
<div id="valaxy-teleports"></div>
</body>
</html>