-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
205 lines (189 loc) · 27.4 KB
/
index.html
File metadata and controls
205 lines (189 loc) · 27.4 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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
<!DOCTYPE html><html lang="zh-TW" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"><title>Boris 軟體坊 - Boris 軟體坊</title><meta name="author" content="Boris"><meta name="copyright" content="Boris"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="ffffff"><meta name="description" content="本站創立於2023年2月,分享節省時間或是賺錢的軟體"><meta property="og:type" content="website"><meta property="og:title" content="Boris 軟體坊"><meta property="og:url" content="https://www.boris.idv.tw/index.html"><meta property="og:site_name" content="Boris 軟體坊"><meta property="og:description" content="本站創立於2023年2月,分享節省時間或是賺錢的軟體"><meta property="og:locale" content="zh_TW"><meta property="og:image" content="https://www.boris.idv.tw/images/me.png"><meta property="article:author" content="Boris"><meta property="article:tag" content="Boris 軟體坊"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:image" content="https://www.boris.idv.tw/images/me.png"><script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Boris 軟體坊",
"alternateName": [
"Boris 軟體坊",
"www.boris.idv.tw"
],
"url": "https://www.boris.idv.tw/"
}</script><link rel="shortcut icon" href="/images/me.png"><link rel="canonical" href="https://www.boris.idv.tw/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"><link rel="preconnect" href="//www.google-analytics.com" crossorigin=""><link rel="preconnect" href="//busuanzi.ibruce.info"><link rel="stylesheet" href="/css/index.css?v=5.5.1"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7.1.0/css/all.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar@0.1.16/dist/snackbar.min.css" media="print" onload='this.media="all"'><script>(() => {
const saveToLocal = {
set: (key, value, ttl) => {
if (!ttl) return
const expiry = Date.now() + ttl * 86400000
localStorage.setItem(key, JSON.stringify({ value, expiry }))
},
get: key => {
const itemStr = localStorage.getItem(key)
if (!itemStr) return undefined
const { value, expiry } = JSON.parse(itemStr)
if (Date.now() > expiry) {
localStorage.removeItem(key)
return undefined
}
return value
}
}
window.btf = {
saveToLocal,
getScript: (url, attr = {}) => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
Object.entries(attr).forEach(([key, val]) => script.setAttribute(key, val))
script.onload = script.onreadystatechange = () => {
if (!script.readyState || /loaded|complete/.test(script.readyState)) resolve()
}
script.onerror = reject
document.head.appendChild(script)
}),
getCSS: (url, id) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onload = link.onreadystatechange = () => {
if (!link.readyState || /loaded|complete/.test(link.readyState)) resolve()
}
link.onerror = reject
document.head.appendChild(link)
}),
addGlobalFn: (key, fn, name = false, parent = window) => {
if (!false && key.startsWith('pjax')) return
const globalFn = parent.globalFn || {}
globalFn[key] = globalFn[key] || {}
globalFn[key][name || Object.keys(globalFn[key]).length] = fn
parent.globalFn = globalFn
}
}
const activateDarkMode = () => {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
const activateLightMode = () => {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', 'ffffff')
}
}
btf.activateDarkMode = activateDarkMode
btf.activateLightMode = activateLightMode
const theme = saveToLocal.get('theme')
theme === 'dark' ? activateDarkMode() : theme === 'light' ? activateLightMode() : null
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
document.documentElement.classList.toggle('hide-aside', asideStatus === 'hide')
}
const detectApple = () => {
if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {
document.documentElement.classList.add('apple')
}
}
detectApple()
})()</script><script async src="https://www.googletagmanager.com/gtag/js?id=G-X7D3ML8T1D"></script><script>window.dataLayer = window.dataLayer || []
function gtag(){dataLayer.push(arguments)}
gtag('js', new Date())
gtag('config', 'G-X7D3ML8T1D')
btf.addGlobalFn('pjaxComplete', () => {
gtag('config', 'G-X7D3ML8T1D', {'page_path': window.location.pathname})
}, 'google_analytics')</script><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: undefined,
translate: undefined,
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false,"highlightFullpage":false,"highlightMacStyle":false},
copy: {
success: '複製成功',
error: '複製失敗',
noSupport: '瀏覽器不支援'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '',
dateSuffix: {
just: '剛剛',
min: '分鐘前',
hour: '小時前',
day: '天前',
month: '個月前'
},
copyright: {"limitCount":50,"languages":{"author":"作者: Boris","link":"連結: ","source":"來源: Boris 軟體坊","info":"著作權歸作者所有。如需商業轉載,請聯絡作者獲得授權,非商業轉載請註明出處。"}},
lightbox: 'null',
Snackbar: {"chs_to_cht":"已切換為繁體中文","cht_to_chs":"已切換為簡體中文","day_to_night":"已切換為深色模式","night_to_day":"已切換為淺色模式","bgLight":"#49b1f5","bgDark":"#2d3035","position":"bottom-left"},
infinitegrid: {
js: 'https://cdn.jsdelivr.net/npm/@egjs/infinitegrid@4.12.0/dist/infinitegrid.min.js',
buttonText: '載入更多'
},
isPhotoFigcaption: false,
islazyloadPlugin: false,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE={title:"Boris 軟體坊",isHighlightShrink:!1,isToc:!1,pageType:"home"}</script><meta name="theme-color" content="#2E86C1"><meta name="msapplication-TileColor" content="#2E86C1"><style>body{font-size:18px!important}#article-container div,#article-container li,#article-container p{font-size:18px!important;line-height:1.8!important}code{font-size:16px!important}</style><meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/atom.xml" title="Boris 軟體坊" type="application/atom+xml"></head><body><script>window.paceOptions = {
restartOnPushState: false
}
btf.addGlobalFn('pjaxSend', () => {
Pace.restart()
}, 'pace_restart')</script><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/pace-js@1.2.4/themes/blue/pace-theme-minimal.css"><script src="https://cdn.jsdelivr.net/npm/pace-js@1.2.4/pace.min.js"></script><div id="web_bg" style="background-color:#fafafa"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img text-center"><img src="/images/me.png" onerror='this.onerror=null,this.src="/img/friend_404.gif"' alt="avatar"></div><div class="site-data text-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">4</div></a><a href="/tags/"><div class="headline">標籤</div><div class="length-num">13</div></a><a href="/categories/"><div class="headline">分類</div><div class="length-num">3</div></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 主頁</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-user"></i><span> 關於本站</span></a></div><div class="menus_item"><a class="site-page" target="_blank" rel="noopener external nofollow noreferrer" href="https://hackmd.io/@borisHackMD"><i class="fa-fw fas fa-book"></i><span> 技術筆記</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page fixed" id="page-header"><nav id="nav"><span id="blog-info"><a class="nav-site-title" href="/"><span class="site-name">Boris 軟體坊</span></a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 主頁</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-user"></i><span> 關於本站</span></a></div><div class="menus_item"><a class="site-page" target="_blank" rel="noopener external nofollow noreferrer" href="https://hackmd.io/@borisHackMD"><i class="fa-fw fas fa-book"></i><span> 技術筆記</span></a></div></div><div id="toggle-menu"><span class="site-page"><i class="fas fa-bars fa-fw"></i></span></div></div></nav><div id="site-info"><h1 id="site-title">Boris 軟體坊</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="https://github.com/chienniman" rel="external nofollow noreferrer" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:cscs851210max@gmail.com" rel="external nofollow noreferrer" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://line.me/ti/p/boris_line_id" rel="external nofollow noreferrer" target="_blank" title="Line"><i class="fab fa-line"></i></a><a class="social-icon" href="https://hackmd.io/@borisHackMD" rel="external nofollow noreferrer" target="_blank" title="技術筆記"><i class="fas fa-link"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts nc" id="recent-posts"><div class="recent-post-items"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/sologo-ai-free-logo-generator" title="Sologo AI:免費AI Logo設計工具,省下3萬外包費用的最佳選擇">Sologo AI:免費AI Logo設計工具,省下3萬外包費用的最佳選擇</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">發表於</span><time class="post-meta-date-created" datetime="2025-10-31T23:25:09.000Z" title="發表於 2025-11-01 07:25:09">2025-11-01</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新於</span><time class="post-meta-date-updated" datetime="2025-11-01T07:39:04.176Z" title="更新於 2025-11-01 15:39:04">2025-11-01</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%BF%83%E5%BE%97/">心得</a></span></div><div class="content">外包費用讓創業者望而卻步自媒體工作者、創業家、公司行號,都需要一個獨特的logo,放在網頁、電商、廣告、電子郵件等各類行銷文案中,委託外包開發是一筆不小的費用,根據2025年的數據,行情平均落在3,000~100,000元。 用Sologo AI省下高昂的費用這筆費用對於剛起步的企業是一筆不小的負擔,就算成功將案件外包也可能遇到各類問題:合約糾紛、品質不如預期等。因此今天要介紹完全免費、不限次數的Sologo AI,讓您輕鬆創建專業級Logo。 只需簡單幾個步驟,就能開始設計專屬Logo: 如何輸入有效的提示詞輸入精確的提示詞能讓AI生成出更精確、符合使用者需求的圖片。以筆者經驗來說,用英文能達成更好的效果。不知道該怎麼寫提示詞?同樣可以請AI代勞,像我就是用Copilot來協助撰寫。 AI生成Logo成果展示對這次的結果非常滿意!Sologo AI提供多種風格可以挑選,而且非常專業。相比之下,請外包通常只能生成一個版本,要求多次修改可能會被拒絕或是要求加價,但是AI沒有這個問題。不滿意就一直重新生成,直到滿意為止。 版權使用須知使用AI生成的Logo前,建議先了解相關...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2025-cloud-hosting-review" title="2025雲端部署平台實測心得">2025雲端部署平台實測心得</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">發表於</span><time class="post-meta-date-created" datetime="2025-10-19T15:26:00.000Z" title="發表於 2025-10-19 23:26:00">2025-10-19</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新於</span><time class="post-meta-date-updated" datetime="2025-10-26T10:19:10.662Z" title="更新於 2025-10-26 18:19:10">2025-10-26</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%BF%83%E5%BE%97/">心得</a></span></div><div class="content">前言身為一個後端工程師,總是需要一個穩定的雲伺服器來部署專案或測試環境。這幾年用過不少服務,從Cloud到 Serverless都深入研究過,每個都有讓我印象深刻的體驗,今天分享一下真實使用心得,希望能幫到正在選擇的朋友們避開一些坑。 我的雲伺服器使用背景主要是為了: 公司專案 個人作品集 遊戲伺服器(Minecraft、Terraria) 心得1. Google Cloud Platform (GCP) 使用時間: 2 年規格: 2vCPU + 4(GB) RAM花費: 一個月1000台幣左右評分: 8/10 使用體驗GCP 的介面又多又雜,要選參數:機器類型、映像檔、網路設定等,但是延遲低,支援多個可用區,99%以上的時間都可以順暢使用,這聽起來是應該的,畢竟錢都花了,埋個伏筆,看到後面你就知道了,總之各種支援都很完善,價格合理,提供300美元的適用額度,但是要綁信用卡,對無卡的學生很不方便,就算有卡很多人也不敢綁,原因很簡單,如果設定錯,開錯機器,續費功能沒設定好,等收到帳單真的欲哭無淚,而且有時候不見得是設定問題,例如某些API放在外網,無聊的人一直狂呼叫,...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/my-first-lubuntu-laptop" title="老舊筆電重生指南:用 Lubuntu 打造你的專屬輕量級開發機">老舊筆電重生指南:用 Lubuntu 打造你的專屬輕量級開發機</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">發表於</span><time class="post-meta-date-created" datetime="2023-04-23T12:20:37.000Z" title="發表於 2023-04-23 20:20:37">2023-04-23</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新於</span><time class="post-meta-date-updated" datetime="2025-10-26T04:50:12.870Z" title="更新於 2025-10-26 12:50:12">2025-10-26</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Linux/">Linux</a></span></div><div class="content">為什麼要讓老舊筆電重生?你是不是也有一台放在抽屜裡積灰塵的舊筆電?每次開機等到天荒地老,風扇轉得像飛機要起飛一樣?別急著丟掉啊! 其實這些看似要退休的筆電還能發揮不少功用: 拿來寫程式、測試一些小專案 架個人網站或是簡單的API服務 跑一些資料處理的腳本 當作學習Linux的練習機,壞了也不心疼 我的想法很簡單:花最少的錢,讓舊硬體發揮最後的價值。與其讓它們在抽屜裡當電子垃圾,不如給它們第二次生命。 我的舊筆電改造實例 硬體規格(2021年入手,8000元) 處理器:Intel Celeron N4020 (1.1 GHz, 最高 2.8 GHz) 記憶體:4GB DDR4 儲存空間:64GB eMMC 螢幕:11.6” HD 霧面螢幕 重量:1.05KG(輕巧便攜) Windows 時期的各種問題這台筆電本來裝的是Windows 10 S模式,用起來真的很痛苦: 開機超級慢,每次都要等個兩分鐘才能用 開幾個Chrome分頁CPU就飆到90%,整台電腦卡到不行 64GB的儲存空間扣掉系統後根本不夠用 偶爾還會黑屏當機,真的很煩躁 裝了Lubuntu之後完全不一樣 開機時...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/linebot-development-guide" title="企業級 LineBot 開發完全攻略1:建立一個 YouBike LineBot!">企業級 LineBot 開發完全攻略1:建立一個 YouBike LineBot!</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">發表於</span><time class="post-meta-date-created" datetime="2023-02-25T14:24:54.000Z" title="發表於 2023-02-25 22:24:54">2023-02-25</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新於</span><time class="post-meta-date-updated" datetime="2025-10-25T15:01:36.729Z" title="更新於 2025-10-25 23:01:36">2025-10-25</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/LineBot/">LineBot</a></span></div><div class="content">為什麼 LineBot 是台灣企業的必備武器?Line 是台灣最常見的通訊軟體之一,市佔率高達 90% 以上,Messenger、Telegram 都無法與其相提並論,無論是外出購物,講電話,送禮物,都離不開他,獨佔市場的好處是許多商家會透過 Line 提升品牌知名度、觸及目標客群、促進銷售轉換,增加顧客忠誠度,進而達到很好的營銷效果,在這個注意力稀缺的時代,主動觸達客戶比被動等待更有價值。LineBot 不只是通訊軟體,更是能創造實際商業價值的利器! 飲料店、銀行、行銷公司都大量使用 LineBot 作為營銷手法,比起投放廣告,將促銷訊息推播給使用者能來更好的效果,看 youtube 時大多數人看到不相關的廣告,第一反應是想趕緊關掉,因為使用者不感興趣,Line推播完全不同,使用者大多數是自願加入官方帳號,後續企業精準投放促銷訊息,以我為例,我有加入玉山銀行的官方帳號,最新的投資訊息就會第一時間送到我的 Line 上,節省了許多查資料的時間,也避開了不相關的廣告。 導入 LineBot 能為你的事業帶來什麼?能幫使用者省下大量時間或是賺取金錢的就是有價值的服務,舉個簡單的例子...</div></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info text-center"><div class="avatar-img"><img src="/images/me.png" onerror='this.onerror=null,this.src="/img/friend_404.gif"' alt="avatar"></div><div class="author-info-name">Boris</div><div class="author-info-description">本站創立於2023年2月,分享節省時間或是賺錢的軟體</div><div class="site-data"><a href="/archives/"><div class="headline">文章</div><div class="length-num">4</div></a><a href="/tags/"><div class="headline">標籤</div><div class="length-num">13</div></a><a href="/categories/"><div class="headline">分類</div><div class="length-num">3</div></a></div><div class="card-info-social-icons"><a class="social-icon" href="https://github.com/chienniman" rel="external nofollow noreferrer" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:cscs851210max@gmail.com" rel="external nofollow noreferrer" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://line.me/ti/p/boris_line_id" rel="external nofollow noreferrer" target="_blank" title="Line"><i class="fab fa-line"></i></a><a class="social-icon" href="https://hackmd.io/@borisHackMD" rel="external nofollow noreferrer" target="_blank" title="技術筆記"><i class="fas fa-link"></i></a></div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/sologo-ai-free-logo-generator" title="Sologo AI:免費AI Logo設計工具,省下3萬外包費用的最佳選擇">Sologo AI:免費AI Logo設計工具,省下3萬外包費用的最佳選擇</a><time datetime="2025-10-31T23:25:09.000Z" title="發表於 2025-11-01 07:25:09">2025-11-01</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2025-cloud-hosting-review" title="2025雲端部署平台實測心得">2025雲端部署平台實測心得</a><time datetime="2025-10-19T15:26:00.000Z" title="發表於 2025-10-19 23:26:00">2025-10-19</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/my-first-lubuntu-laptop" title="老舊筆電重生指南:用 Lubuntu 打造你的專屬輕量級開發機">老舊筆電重生指南:用 Lubuntu 打造你的專屬輕量級開發機</a><time datetime="2023-04-23T12:20:37.000Z" title="發表於 2023-04-23 20:20:37">2023-04-23</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/linebot-development-guide" title="企業級 LineBot 開發完全攻略1:建立一個 YouBike LineBot!">企業級 LineBot 開發完全攻略1:建立一個 YouBike LineBot!</a><time datetime="2023-02-25T14:24:54.000Z" title="發表於 2023-02-25 22:24:54">2023-02-25</time></div></div></div></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>網站資訊</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章數量 :</div><div class="item-count">4</div></div><div class="webinfo-item"><div class="item-name">總字數 :</div><div class="item-count">5.6k</div></div><div class="webinfo-item"><div class="item-name">最後更新時間 :</div><div class="item-count" id="last-push-date" data-lastpushdate="2025-11-01T07:40:59.242Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div class="footer-other"><div class="footer-copyright"><span class="copyright">© 2023 - 2025 By Boris</span></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="日夜模式切換"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="單欄和雙欄切換"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="設定"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到頂端"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="https://cdn.jsdelivr.net/npm/hexo-theme-butterfly@5.5.1/source/js/utils.min.js"></script><script src="https://cdn.jsdelivr.net/npm/hexo-theme-butterfly@5.5.1/source/js/main.min.js"></script><script src="https://cdn.jsdelivr.net/npm/instant.page@5.2.0/instantpage.min.js" type="module"></script><script src="https://cdn.jsdelivr.net/npm/node-snackbar@0.1.16/dist/snackbar.min.js"></script><div class="js-pjax"><script>window.typedJSFn = {
init: str => {
window.typed = new Typed('#subtitle', Object.assign({
strings: str,
startDelay: 300,
typeSpeed: 150,
loop: true,
backSpeed: 50,
}, null))
},
run: subtitleType => {
if (true) {
if (typeof Typed === 'function') {
subtitleType()
} else {
btf.getScript('https://cdn.jsdelivr.net/npm/typed.js@2.1.0/dist/typed.umd.min.js').then(subtitleType)
}
} else {
subtitleType()
}
},
processSubtitle: (content, extraContents = []) => {
if (true) {
const sub = ["用程式創造被動收入,讓錢自己進來","一行代碼省下千小時,時間就是金錢","自動化你的生意,睡覺也能賺錢","別人加班你躺平,技術就是你的印鈔機"].slice()
if (extraContents.length > 0) {
sub.unshift(...extraContents)
}
if (typeof content === 'string') {
sub.unshift(content)
} else if (Array.isArray(content)) {
sub.unshift(...content)
}
sub.length > 0 && typedJSFn.init(sub)
} else {
document.getElementById('subtitle').textContent = typeof content === 'string' ? content :
(Array.isArray(content) && content.length > 0 ? content[0] : '')
}
}
}
btf.addGlobalFn('pjaxSendOnce', () => { typed.destroy() }, 'typedDestroy')</script><script>function subtitleType(){typedJSFn.processSubtitle(["用程式創造被動收入,讓錢自己進來","一行代碼省下千小時,時間就是金錢","自動化你的生意,睡覺也能賺錢","別人加班你躺平,技術就是你的印鈔機"])}typedJSFn.run(subtitleType)</script></div><script>// 在文章頁面底部加入Buy me a coffee按鈕
if (document.querySelector('#article-container')) {
const buyMeCoffeeHtml = `
<div style="text-align: center; margin: 30px 0; padding: 20px; border: 1px solid #ddd; border-radius: 10px; background: #f9f9f9;">
<h4 style="margin-bottom: 15px; color: #333;">喜歡這篇文章嗎?</h4>
<p style="margin-bottom: 20px; color: #666;">如果我的文章對你有幫助,歡迎請我喝杯咖啡!</p>
<a href="https://buymeacoffee.com/borisSoftware" rel="external nofollow noreferrer" target="_blank" style="display: inline-block; padding: 12px 30px; background: #FFDD00; color: #000; text-decoration: none; border-radius: 8px; font-weight: bold; transition: all 0.3s;">
☕ 請我喝杯咖啡
</a>
</div>
`;
const articleContainer = document.querySelector('#article-container');
if (articleContainer) {
articleContainer.insertAdjacentHTML('beforeend', buyMeCoffeeHtml);
}
}</script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div><script>"use strict";if("serviceWorker"in navigator){navigator.serviceWorker.register("service-worker.js").then((function(reg){reg.onupdatefound=function(){var installingWorker=reg.installing;installingWorker.onstatechange=function(){switch(installingWorker.state){case"installed":if(navigator.serviceWorker.controller){console.log("New or updated content is available.")}else{console.log("Content is now available offline!")}break;case"redundant":console.error("The installing service worker became redundant.");break}}}}))["catch"]((function(e){console.error("Error during service worker registration:",e)}))}</script></body></html>