<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-31919365</id><updated>2026-10-20T22:16:46.356+08:00</updated><category term="心得分享"/><category term="TECH"/><category term="C#"/><category term="Visual Studio"/><category term="Toastmasters"/><category term="Windows"/><category term="Apple"/><category term="Programming"/><category term="閱讀心得"/><category term="My Toastmasters Journey"/><category term="UNBOXING"/><category term="photography"/><category term="iPod Touch"/><category term="iOS"/><category term="Database"/><category term="研討會"/><category term="iApp"/><category term="Astro"/><category term="微軟"/><category term="IIS"/><category term="LeetCode"/><category term="MsSQL"/><category term="約耳趣談軟體"/><category term="Jenkins"/><category term="Docker"/><category term="GSC"/><category term="Google Search Console"/><category term="JAVA"/><category term="MySQL"/><category term="SEO"/><category term="TDD"/><category term="程式開發甘苦談"/><category term="JavaScript"/><category term="Rider"/><category term="Silverlight"/><category term="Think Pad"/><category term="WiMax"/><category term="AI"/><category term="ASP.NET"/><category term="NuGet"/><category term="Security"/><category term="Server"/><category term="Testing"/><category term="jQuery"/><category term="關於我"/><category term="電影心得"/><category term="Avril Lavigne"/><category term="Github Copilot"/><category term="JBOSS"/><category term="JetBrains"/><category term="PHP"/><category term="Palladium"/><category term="Palladium Boots"/><category term="Palladium Taiwan"/><category term="SonarQube"/><category term="Travel"/><category term="UnitTest"/><category term="投資理財"/><category term="防水靴"/><category term="AD"/><category term="ASP.NET MVC"/><category term="ASP.NET MVC Core"/><category term="Active Directory"/><category term="Agile"/><category term="Angular"/><category term="Blogger"/><category term="CSS"/><category term="Container Summit"/><category term="Copilot CLI"/><category term="Corsair"/><category term="FFmpeg"/><category term="JSON"/><category term="JetBrains AI"/><category term="LINE"/><category term="Liber Office"/><category term="Microsoft"/><category term="Node.js"/><category term="NuGet Package"/><category term="Office"/><category term="Oracle"/><category term="PDF"/><category term="PPTP"/><category term="PostgreSQL"/><category term="Power Point"/><category term="PowerShell"/><category term="ReSharper"/><category term="SCSS"/><category term="SSL"/><category term="TFS"/><category term="ThinkPad"/><category term="UPS"/><category term="VPN"/><category term="Vibe Coding"/><category term="Visual Studio Code"/><category term="WCF"/><category term="WORD"/><category term="eBay"/><category term="facebook"/><category term="playwright"/><category term="保固"/><category term="內容審核"/><category term="國際快遞"/><category term="文章下架"/><category term="演講技巧"/><category term="聯強Warranty"/><category term="行車紀錄器"/><category term="送修"/><category term="重構"/><category term="防水鞋"/><title type='text'>RojerChen&#39;s 的學習筆記</title><subtitle type='html'>分享程式開發、Toastmasters 演講經驗、科技產品開箱與旅行心得，記錄學習與生活的點滴</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08819163490719899079</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>318</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-31919365.post-1341632254213506721</id><published>2026-04-20T14:46:00.002+08:00</published><updated>2026-04-20T14:46:25.853+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Copilot CLI"/><category scheme="http://www.blogger.com/atom/ns#" term="Github Copilot"/><title type='text'>Github Copilot CLI 無法更新</title><content type='html'>&lt;p&gt;今天在公司的筆電發現到 Copilot CLI 還是 v.1.0.11 的版本，想說要來嘗試更新一下，但是怎樣都沒辦法更新，不論我怎樣下命令、重開都還是維持 v1.0.11。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgqT-jGCBxXWBr1BW4SjQuPpx3tmBTHPsGgNTq3Ly6WbNm-lOMnV-2MY8SD6gmUWceD8Gjrned_s6ALiqa89ZnLvsGn2JgC_7_6VfQDDnKA4LcEhiuC9KqLqChgXZd99NJ0J44PqFGhvf9egvhaYDLb8pyNeTqjQFr2qDTkE17QENJRkkUDNHp4&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;249&quot; data-original-width=&quot;1481&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgqT-jGCBxXWBr1BW4SjQuPpx3tmBTHPsGgNTq3Ly6WbNm-lOMnV-2MY8SD6gmUWceD8Gjrned_s6ALiqa89ZnLvsGn2JgC_7_6VfQDDnKA4LcEhiuC9KqLqChgXZd99NJ0J44PqFGhvf9egvhaYDLb8pyNeTqjQFr2qDTkE17QENJRkkUDNHp4=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;如果一切正常，其實應該下這個指令就可以更新了&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;copilot update&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;或者是透過下面這樣的方式&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;# 先解除安裝舊版
npm uninstall -g @github/copilot

# 清理 npm 快取（選用，避免抓到舊檔）
npm cache clean --force

# 重新安裝最新版
npm install -g @github/copilot@latest&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;只不過我上述兩種方式都無法更新，即便是重開機重做一次也是沒有辦法。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;最後發現到，&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;只需要把 .copilot 底下的這個資料夾刪除即可&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt; pkgs &lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;這個資料夾裡面有擺放了過去歷次的更新版本，不知道是那些快取資料卡住所導致沒有辦法正常更新，只需要把它移除之後，再更新就成功了。&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/1341632254213506721/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/1341632254213506721?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/1341632254213506721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/1341632254213506721'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2026/04/github-copilot-cli.html' title='Github Copilot CLI 無法更新'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgqT-jGCBxXWBr1BW4SjQuPpx3tmBTHPsGgNTq3Ly6WbNm-lOMnV-2MY8SD6gmUWceD8Gjrned_s6ALiqa89ZnLvsGn2JgC_7_6VfQDDnKA4LcEhiuC9KqLqChgXZd99NJ0J44PqFGhvf9egvhaYDLb8pyNeTqjQFr2qDTkE17QENJRkkUDNHp4=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-5344187181115083499</id><published>2026-02-02T14:04:00.000+08:00</published><updated>2026-02-02T14:04:07.809+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="JetBrains"/><category scheme="http://www.blogger.com/atom/ns#" term="JetBrains AI"/><category scheme="http://www.blogger.com/atom/ns#" term="Vibe Coding"/><title type='text'>JetBrains AI 體驗心得 (2026.02.02 update)</title><content type='html'>2026.02.02&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;今天在更新 JetBrains 產品到 2025.3.2 後，發現到已經有支援 ACP 了。這表示如果你有訂閱Github Copilot 或是 Gemini ，那你就可以使用它們來進行工作&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiAa0yPDWvrSZQK5jT_tRM3akZCmkJyJsjTktG4_9k6sqzMrMkcZhadrehOq154XpuPfEN7f3V_bgruvMLkZvmiLMv70DNpbUXi5aB-xvM4lFV8KMJ7WYdfHLdS3VuBFyvsGl34O8T2JWXxkDen3aDC-Vfionh-5YKVRZ-a1XPQ6NFRFTYAd9Zg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;AI Agent&quot; data-original-height=&quot;918&quot; data-original-width=&quot;1229&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiAa0yPDWvrSZQK5jT_tRM3akZCmkJyJsjTktG4_9k6sqzMrMkcZhadrehOq154XpuPfEN7f3V_bgruvMLkZvmiLMv70DNpbUXi5aB-xvM4lFV8KMJ7WYdfHLdS3VuBFyvsGl34O8T2JWXxkDen3aDC-Vfionh-5YKVRZ-a1XPQ6NFRFTYAd9Zg=s16000&quot; title=&quot;AI Agent&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;目前測試下使用 Github Coilot ，目前只支援 Ask 與 Agent Mode，在費用的部分體趕上是吃了一次的 Premiun Request，目前還沒辦法選擇模型，目前使用上可能還不如直接安裝 Github Copilot 的 Plugin。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgjnAOO-9gChqnR0mhMnCRLwAEzKHLsaZWnAyfjQL5aYxhj0YYbm8XkV-qOUdTf-GuowXXQ2ppyXh1n28AK0VJCjtN8q4sYAYddmLO4ZifBMPgXz7Sd8jEN40XRQm_-3nwqkXjjWFxIeOdAKX0XlVymnKhVptYCeWfJv175VsS1uHQeBc_DgxVu&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;388&quot; data-original-width=&quot;545&quot; height=&quot;456&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgjnAOO-9gChqnR0mhMnCRLwAEzKHLsaZWnAyfjQL5aYxhj0YYbm8XkV-qOUdTf-GuowXXQ2ppyXh1n28AK0VJCjtN8q4sYAYddmLO4ZifBMPgXz7Sd8jEN40XRQm_-3nwqkXjjWFxIeOdAKX0XlVymnKhVptYCeWfJv175VsS1uHQeBc_DgxVu=w640-h456&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;2025.10.02&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;每次使用 JetBrains IDE，就會時不時去看一下目前有沒有更新，從今年五月到現在，終於有所更新。如果你有訂閱&amp;nbsp;&lt;strong data-end=&quot;237&quot; data-start=&quot;185&quot;&gt;JetBrains 全家餐（All Products Pack）&lt;/strong&gt;&lt;span data-end=&quot;237&quot; data-start=&quot;185&quot;&gt;，每個月有一定的額度可以使用&lt;/span&gt;，等於不用額外付費就能試用 AI 功能，想想也沒有理由不試試看了。&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgi1vexNa03HKGn7OV24V1-AwmPhkVsoKILyK9hFDlG6fKWcoQgIPpzgCTO7qkQsSWsrs1TQfsxdg9J2xx84c1odSpmJRmQw0qjG7DTHRu7X900KYKPgam1bsQHSHERqjlXxSccSbDd-g1Izlrj45Alf-dpy43cktk6yi7Sonp54gCVCqAtafH6&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;文章cover&quot; data-original-height=&quot;406&quot; data-original-width=&quot;1469&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgi1vexNa03HKGn7OV24V1-AwmPhkVsoKILyK9hFDlG6fKWcoQgIPpzgCTO7qkQsSWsrs1TQfsxdg9J2xx84c1odSpmJRmQw0qjG7DTHRu7X900KYKPgam1bsQHSHERqjlXxSccSbDd-g1Izlrj45Alf-dpy43cktk6yi7Sonp54gCVCqAtafH6=s16000&quot; title=&quot;文章cover&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;div style=&quot;text-align: left;&quot;&gt;JetBrains AI 提供多種訂閱方案，現在已經有明確定義每個方案的額度&lt;br /&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;strong data-end=&quot;361&quot; data-start=&quot;351&quot;&gt;AI Free : 3 Credits&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong data-end=&quot;361&quot; data-start=&quot;351&quot;&gt;AI Pro&lt;/strong&gt;&lt;strong data-end=&quot;361&quot; data-start=&quot;351&quot;&gt;&amp;nbsp;: 10 Credits&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong data-end=&quot;379&quot; data-start=&quot;364&quot;&gt;AI Ultimate&lt;/strong&gt;&lt;strong data-end=&quot;361&quot; data-start=&quot;351&quot;&gt;&amp;nbsp;: 35 Credits&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong data-end=&quot;399&quot; data-start=&quot;382&quot;&gt;AI Enterprise&lt;/strong&gt;&lt;strong data-end=&quot;361&quot; data-start=&quot;351&quot;&gt;&amp;nbsp;: max&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjQkKDF0lQoixVK1uWNo4VV08IispZUsFv2HTpD1qRjFblni05S-iAlZoNQE1KL35f4X5Tgb_aPXXZjQy0bMH9NGx4Dl-MNIPN4Cs1eHLKFJ_XVXszr1y5PkR_V-oSwPw8-xmaBk4qqRBS_kCwR3xGTEP48q_9e1_OgYIJ-C1iJORNk77wKtWh6&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;費用表&quot; data-original-height=&quot;823&quot; data-original-width=&quot;780&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjQkKDF0lQoixVK1uWNo4VV08IispZUsFv2HTpD1qRjFblni05S-iAlZoNQE1KL35f4X5Tgb_aPXXZjQy0bMH9NGx4Dl-MNIPN4Cs1eHLKFJ_XVXszr1y5PkR_V-oSwPw8-xmaBk4qqRBS_kCwR3xGTEP48q_9e1_OgYIJ-C1iJORNk77wKtWh6=s16000&quot; title=&quot;費用表&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;IDE 已經可以顯示 Credit 用量，&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;每次執行會依據上、下文來消耗 Credit，所以請養成習慣，每當完成一個任務就開新的 Chat。&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg250jvl5cExOOcKc9RcWYaKWZljoFh_Fqm7OUSJG7a06A5sci_NYOU7R-7P3V8KT1QDxH_dOJG9i5Sx0AdnFUE8DYsquuE8A1oUNN2xsJc_CMl83rcqIp1hgelUr6c_HA3_PLzMeGEQZF30xPfvqvcuSE6PA35xJV34URyArz29wZxV5snikkf&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;JetBrains AI Credit&quot; data-original-height=&quot;374&quot; data-original-width=&quot;322&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg250jvl5cExOOcKc9RcWYaKWZljoFh_Fqm7OUSJG7a06A5sci_NYOU7R-7P3V8KT1QDxH_dOJG9i5Sx0AdnFUE8DYsquuE8A1oUNN2xsJc_CMl83rcqIp1hgelUr6c_HA3_PLzMeGEQZF30xPfvqvcuSE6PA35xJV34URyArz29wZxV5snikkf=w345-h400&quot; title=&quot;JetBrains AI Credit&quot; width=&quot;345&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;今年五月使用時候，根本沒有留意到有額度上限，同一個 Chat 拼命聊，額度很快就滿了。現在有明確的 Credits 顯示，就可以很克制的使用，當使用額度快滿的時候，也會提醒你。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgwdARJKVkutWxSvNYZBa1N4lLNTahYJe5uL4CawbVimCER_azG9m6GnfbNT5sj0fQPRavgoFhEhd3Q3ZI2mBWXpGVCTDrJtAKksljK4WrcfIpNgYhwfYKlpEAvokgRH6UI8OY5m39fZ3FK_HTKw-n2jYI5q9B9uE-7jhff62pH_qIAvm4SU2RD&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;額度提醒&quot; data-original-height=&quot;583&quot; data-original-width=&quot;447&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgwdARJKVkutWxSvNYZBa1N4lLNTahYJe5uL4CawbVimCER_azG9m6GnfbNT5sj0fQPRavgoFhEhd3Q3ZI2mBWXpGVCTDrJtAKksljK4WrcfIpNgYhwfYKlpEAvokgRH6UI8OY5m39fZ3FK_HTKw-n2jYI5q9B9uE-7jhff62pH_qIAvm4SU2RD=w308-h400&quot; title=&quot;額度提醒&quot; width=&quot;308&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;當使用額度滿了，就完全不能使用了。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjFmRZ2hZwZl1UFqpBsfKAUqpzHv7XP9Cz4nZl0wkaYPWO1Uz-JptWVmVG7eBnHgCOYKyGifyp2a0F0g4G7s8inul5lNmJjEKeESmSUQ-x6bkTyz6P63ohxkHJ8mpJ9vgHSps36_KWxekDSnxC7RZ7r0L_u3K-F8KRG8kpTPMUXuEYwe9wjh0TX&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;超過得度上限&quot; data-original-height=&quot;125&quot; data-original-width=&quot;494&quot; height=&quot;101&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjFmRZ2hZwZl1UFqpBsfKAUqpzHv7XP9Cz4nZl0wkaYPWO1Uz-JptWVmVG7eBnHgCOYKyGifyp2a0F0g4G7s8inul5lNmJjEKeESmSUQ-x6bkTyz6P63ohxkHJ8mpJ9vgHSps36_KWxekDSnxC7RZ7r0L_u3K-F8KRG8kpTPMUXuEYwe9wjh0TX=w400-h101&quot; title=&quot;超過得度上限&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;UI 操作體驗上應該每一家都差不多，而這次最重要的更新，或許就是 Claude Agent in JetBrains IDEs，目前 Beta 的版本沒辦法手動選擇模型，使用上會有 Brave (YOLO)、Plan Mode，初次執行的時候會安裝 Claude Agent，之後就可以執行了。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhpvSLVPbacsB76ohVj88UvUv3kWRIHKQwuhcE76SVLMpeO6BW3ofBXx02R1whuZuFsr4QpXwdz6KKsAmYPTKBLsPfImAtD7z5gAa43el4aB8EOEiOnCIVgzuY-emHCSG82XJBfI5uHBqQ103s04P2A6VWQTDQME4kM0JXSr26Z-IRLhtfc_5ll&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;JetBrains AI Assistant&quot; data-original-height=&quot;155&quot; data-original-width=&quot;626&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhpvSLVPbacsB76ohVj88UvUv3kWRIHKQwuhcE76SVLMpeO6BW3ofBXx02R1whuZuFsr4QpXwdz6KKsAmYPTKBLsPfImAtD7z5gAa43el4aB8EOEiOnCIVgzuY-emHCSG82XJBfI5uHBqQ103s04P2A6VWQTDQME4kM0JXSr26Z-IRLhtfc_5ll=s16000&quot; title=&quot;JetBrains AI Assistant&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;我嘗試做一個 Chrome Extension，過程中會列出 TODO 然後依序執行，執行時間約 10 分鐘左右，一次做對，耗費大概 0.8 Credits，剩餘 UI 畫面的調整我就手動接手修改就好。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjj6b7bRzGByPYtDiWSz7gdjN8Yr6JOvH8-fGiNke-ZqWk6r4WSi8I0foMYNmTV_vpO7Swqm1Qah7jM8hxZgMC-9WIuw0Ha1m8chd7MnVecpaQh4Hu78xat6pVBp9vwyJffnjCiWhTCzdw7OhkjB8vlgkmzK4SiJdhc3kgh2orx_zOt-_cMPl_9&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;428&quot; data-original-width=&quot;601&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjj6b7bRzGByPYtDiWSz7gdjN8Yr6JOvH8-fGiNke-ZqWk6r4WSi8I0foMYNmTV_vpO7Swqm1Qah7jM8hxZgMC-9WIuw0Ha1m8chd7MnVecpaQh4Hu78xat6pVBp9vwyJffnjCiWhTCzdw7OhkjB8vlgkmzK4SiJdhc3kgh2orx_zOt-_cMPl_9=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;同樣的需求，使用 Junie by JetBrains 效果就沒那麼好，雖然大致上還是做出了一樣的東西，但是後續還需要加工處理，調整一些邏輯。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjUUzjhm871RR-NHnXAZAK6H-zSJlvGd8OlTdzW_4gsNMr7aEe59d9kgDP-kibsWIG-yHusaMzo7Mg941pQj7-VEHQNBczv4FNuLDwiX9sBTvrh82SpB8JBZ7REFZcQkxKHX4Wd6I7gMu2hCSrT7MJyaaiOa_wl3_RCiwe4rpGbwIKsLj8Y1GUb&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;294&quot; data-original-width=&quot;628&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjUUzjhm871RR-NHnXAZAK6H-zSJlvGd8OlTdzW_4gsNMr7aEe59d9kgDP-kibsWIG-yHusaMzo7Mg941pQj7-VEHQNBczv4FNuLDwiX9sBTvrh82SpB8JBZ7REFZcQkxKHX4Wd6I7gMu2hCSrT7MJyaaiOa_wl3_RCiwe4rpGbwIKsLj8Y1GUb=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在現在這個時間點，各家 AI 廠商都在軍備競賽，提供不少優惠福利，如果現在只能訂閱一家 AI 服務，那 JetBrains AI 在這個時間點不會列入考量，不是效果不好，是其他家的優惠和功能都實在是讓人難以拒絕。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;不過 AI 的發展很快，可能幾個月後又改變了也說不定。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/06/resharper-for-visual-studio-code.html&quot; target=&quot;_blank&quot;&gt;ReSharper for Visual Studio Code 初體驗：功能有限，尚待觀望&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/5344187181115083499/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/5344187181115083499?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/5344187181115083499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/5344187181115083499'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/05/jetbrains-ai.html' title='JetBrains AI 體驗心得 (2026.02.02 update)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiAa0yPDWvrSZQK5jT_tRM3akZCmkJyJsjTktG4_9k6sqzMrMkcZhadrehOq154XpuPfEN7f3V_bgruvMLkZvmiLMv70DNpbUXi5aB-xvM4lFV8KMJ7WYdfHLdS3VuBFyvsGl34O8T2JWXxkDen3aDC-Vfionh-5YKVRZ-a1XPQ6NFRFTYAd9Zg=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-2466298142801753042</id><published>2026-01-23T15:46:00.000+08:00</published><updated>2026-01-23T15:46:06.213+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><title type='text'>jQuery 4.0 改版：捨棄冗餘、擁抱原生 JS 與 ES6 標準</title><content type='html'>&lt;p&gt;沒有想過隔了這麼多年，jQuery 居然更新了。jQuery 4.0 的發布（這可是睽違近十年的大改版！）標誌著一個時代的轉移。這次更新的核心目標很明確：瘦身與現代化。它拔掉了許多為了相容老舊瀏覽器而存在的冗餘程式碼，並擁抱了現代 JavaScript (ES6+) 的標準。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjmj8UkACtbImEN1AGM2Hvf_31erAhkObOwOo3HiXQFl9MfLP6cY5Mlo7aS0J3FEiVRL0yf8ZOPhrikKCfh9ldQ6a1SrdpNi9speFr3SS8xSSn199Z6zzy_MQSvLP0M6eXcUMqEvxp9wzx0sBCcqVUtl3SXAtIeUm9GOa5Qeuafr_IjFkWFakyl&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjmj8UkACtbImEN1AGM2Hvf_31erAhkObOwOo3HiXQFl9MfLP6cY5Mlo7aS0J3FEiVRL0yf8ZOPhrikKCfh9ldQ6a1SrdpNi9speFr3SS8xSSn199Z6zzy_MQSvLP0M6eXcUMqEvxp9wzx0sBCcqVUtl3SXAtIeUm9GOa5Qeuafr_IjFkWFakyl=w640-h640&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;h2 id=&quot;browser-support&quot;&gt;1. Browser Support&lt;/h2&gt;&lt;div&gt;最新版本僅支援 IE 11，過舊的版本就不再支援了。&lt;/div&gt;&lt;div&gt;&lt;table style=&quot;border-collapse: collapse; color: #222939; display: block; font-family: Atkinson, sans-serif; font-size: 20px; margin: 16px 0px; overflow-x: auto; width: 960px;&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Feature&lt;/span&gt;&lt;/th&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery 3.6&lt;/span&gt;&lt;/th&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery 4.0&lt;/span&gt;&lt;/th&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Impact&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Internet Explorer&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Supports IE 9+&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Supports IE 11&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Code becomes lighter; transpilation might be needed for very old legacy support.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Edge&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Supports Edge Legacy&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Drops Edge Legacy&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Focus on modern Chromium-Edge.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;iOS / MacOS&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Older versions supported&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Drops iOS &amp;lt; 11, macOS &amp;lt; 10.13&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Aligns with vendor support cycles.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 id=&quot;removed-utility-methods-breaking-changes&quot;&gt;2. Removed utility methods&lt;/h2&gt;&lt;p&gt;jQuery 捨棄既有函數，改採用原生 JavaScript。&lt;/p&gt;&lt;table style=&quot;border-collapse: collapse; color: #222939; display: block; font-family: Atkinson, sans-serif; font-size: 20px; margin: 16px 0px; overflow-x: auto; width: 960px;&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;Remo&lt;span style=&quot;font-size: small;&quot;&gt;ved Method&lt;/span&gt;&lt;/th&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Native Replacement (Use this in 4.0)&lt;/span&gt;&lt;/th&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Example Migration&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery.trim()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;String.prototype.trim()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;$.trim(str)&lt;/code&gt;&amp;nbsp;→&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;str.trim()&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery.isArray()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Array.isArray()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;$.isArray(arr)&lt;/code&gt;&amp;nbsp;→&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;Array.isArray(arr)&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery.isFunction()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;typeof === &#39;function&#39;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;$.isFunction(fn)&lt;/code&gt;&amp;nbsp;→&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;typeof fn === &#39;function&#39;&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery.isNumeric()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;typeof&lt;/code&gt;&amp;nbsp;check +&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;isNaN&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;$.isNumeric(n)&lt;/code&gt;&amp;nbsp;→&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;typeof n === &#39;number&#39; &amp;amp;&amp;amp; !isNaN(n)&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery.parseJSON()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;JSON.parse()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;$.parseJSON(str)&lt;/code&gt;&amp;nbsp;→&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;JSON.parse(str)&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery.now()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Date.now()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;$.now()&lt;/code&gt;&amp;nbsp;→&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;Date.now()&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery.type()&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;typeof&lt;/code&gt;&amp;nbsp;/ Generics&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;$.type(obj)&lt;/code&gt;&amp;nbsp;→&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;typeof obj&lt;/code&gt;&amp;nbsp;(logic varies)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 id=&quot;event-behavior-changes&quot;&gt;3. Event Behavior Changes&lt;/h2&gt;&lt;div&gt;事件行為回歸 W3C 標準。&lt;/div&gt;&lt;table style=&quot;border-collapse: collapse; color: #222939; display: block; font-family: Atkinson, sans-serif; font-size: 20px; margin: 16px 0px; overflow-x: auto; width: 960px;&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Feature&lt;/span&gt;&lt;/th&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery 3.6&lt;/span&gt;&lt;/th&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery 4.0&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Focus Event Order&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Custom order:&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;focusout&lt;/code&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;blur&lt;/code&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;focusin&lt;/code&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;focus&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;W3C Standard:&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;blur&lt;/code&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;focusout&lt;/code&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;focus&lt;/code&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;focusin&lt;/code&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id=&quot;internal--prototype-changes&quot;&gt;4. Internal &amp;amp; Prototype Changes&lt;/h2&gt;&lt;div&gt;在 3.x 以前，jQuery 物件雖然不是真正的 Array，但它的&amp;nbsp;&lt;b data-index-in-node=&quot;36&quot; data-path-to-node=&quot;4&quot;&gt;Prototype&amp;nbsp;&lt;/b&gt;裡偷塞了&amp;nbsp;&lt;code data-index-in-node=&quot;56&quot; data-path-to-node=&quot;4&quot;&gt;push&lt;/code&gt;、&lt;code data-index-in-node=&quot;61&quot; data-path-to-node=&quot;4&quot;&gt;sort&lt;/code&gt;&amp;nbsp;和&amp;nbsp;&lt;code data-index-in-node=&quot;68&quot; data-path-to-node=&quot;4&quot;&gt;splice&lt;/code&gt;&amp;nbsp;這些方法。這讓你有一種錯覺，覺得 jQuery 物件可以直接當陣列來操作。現在這些操作全部改用原生 javascript 方式處理。&lt;/div&gt;&lt;table style=&quot;border-collapse: collapse; color: #222939; display: block; font-family: Atkinson, sans-serif; font-size: 20px; margin: 16px 0px; overflow-x: auto; width: 960px;&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Feature&lt;/span&gt;&lt;/th&gt;&lt;th align=&quot;left&quot; style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Change&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Internal Array Methods&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;push&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;sort&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;splice&lt;/code&gt;&amp;nbsp;are removed from the jQuery prototype. You can no longer treat a jQuery object exactly like an array for these modifications. Use&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;[].push.call($obj, item)&lt;/code&gt;&amp;nbsp;if strictly necessary.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Trusted Types&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;jQuery 4.0 adds support for Trusted Types, ensuring HTML wrapped in&amp;nbsp;&lt;code style=&quot;background-color: #e5e9f0; border-radius: 2px; padding: 2px 5px; word-break: break-word;&quot;&gt;TrustedHTML&lt;/code&gt;&amp;nbsp;works safely with manipulation methods.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 id=&quot;coding-style-recommendation-legacy-vs-modern&quot;&gt;5. Coding Style Recommendation&lt;/h2&gt;&lt;h3 id=&quot;legacy-style-jquery-3.x&quot;&gt;Legacy Style (jQuery 3.x)&lt;/h3&gt;&lt;p&gt;Heavy reliance on jQuery wrappers for everything.&lt;/p&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;prism language-javascript&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;prism language-javascript&quot;&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;var  arr = [1, 2, 3];

$.each(arr, function(i, val) {

console.log(val);

});

var  json = $.parseJSON(&#39;{&quot;a&quot;:1}&#39;);&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;modern-style-jquery-4.0&quot;&gt;Modern Style (jQuery 4.0+)&lt;/h3&gt;&lt;p&gt;Use jQuery only for DOM selection/events; use Native JS for logic.&lt;/p&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;prism language-javascript&quot;&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;prism language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt;  arr &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt;  val  &lt;span class=&quot;token keyword&quot;&gt;of&lt;/span&gt;  arr&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;val&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt;  json &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; JSON&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;parse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;{&quot;a&quot;:1}&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;h2 id=&quot;summary&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; white-space: normal;&quot;&gt;Summary&lt;/h2&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;jQuery 4.0 是一次邁向現代化的重大發布。透過移除對過時瀏覽器的支援以及那些早就該淘汰的工具函數，它成功瘦身了約 3KB（經 gzipped 壓縮後）。這次改版的背後邏輯很清楚：它預設你已經在專案中同步使用現代 JavaScript (ES6+) 了。&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/2466298142801753042/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/2466298142801753042?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/2466298142801753042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/2466298142801753042'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2026/01/jquery-40-js-es6.html' title='jQuery 4.0 改版：捨棄冗餘、擁抱原生 JS 與 ES6 標準'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjmj8UkACtbImEN1AGM2Hvf_31erAhkObOwOo3HiXQFl9MfLP6cY5Mlo7aS0J3FEiVRL0yf8ZOPhrikKCfh9ldQ6a1SrdpNi9speFr3SS8xSSn199Z6zzy_MQSvLP0M6eXcUMqEvxp9wzx0sBCcqVUtl3SXAtIeUm9GOa5Qeuafr_IjFkWFakyl=s72-w640-h640-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-7686339924669183848</id><published>2026-01-19T08:30:00.003+08:00</published><updated>2026-01-19T08:30:00.113+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Astro"/><title type='text'>Astro 部落格架設筆記(7) - 使用 astro-embed 嵌入 YouTube 影片</title><content type='html'>&lt;p&gt;撰寫部落格文章的時候，如果要嵌入 YouTube 影片應該要怎樣做？過往我們可能是透過 iframe 的方式來把 Youtube 影片嵌入。&lt;/p&gt;&lt;p&gt;而 Astro 上如果要嵌入影片，我們可以改用 astro-embed 來處理。&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie_oKRQpGgFDA64BsD1DlLZHzErqH88NAoDcHOdowWukCWpmLiku9lU7ZDXnKUay3cMGJrZDc2InRqRxuVjqkgw5e9n7ZBIS86bUhriva_AvcO8iu6o15I1rAGLjzgjq4Q7Nyh4h1t468YCDE9jNj1owqZh60P23CKLh3rd6k1vWXfjl2cdf34/s1024/astro-blog-07-logo.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;示意圖&quot; border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie_oKRQpGgFDA64BsD1DlLZHzErqH88NAoDcHOdowWukCWpmLiku9lU7ZDXnKUay3cMGJrZDc2InRqRxuVjqkgw5e9n7ZBIS86bUhriva_AvcO8iu6o15I1rAGLjzgjq4Q7Nyh4h1t468YCDE9jNj1owqZh60P23CKLh3rd6k1vWXfjl2cdf34/s16000/astro-blog-07-logo.jpg&quot; title=&quot;示意圖&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;首先，請留意文章的格式為 mdx 格式，原本的 md 格式沒辦法支援。&lt;/p&gt;&lt;ol&gt;&lt;li&gt;安裝套件&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;npm install astro-embed&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;在 mdx 檔案加入以下內容&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;import { Tweet, Vimeo, YouTube, LinkPreview } from &#39;astro-embed&#39;;

&amp;lt;YouTube id=&quot;https://youtu.be/SWMOgOZVWP4&quot;/&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;這樣就可以嵌入 YouTube 了，除此之外還支援 Vimeo、Tweet 等其他之類的功能，可以參考&amp;nbsp;&lt;a href=&quot;https://astro-embed.netlify.ap&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;官網&lt;/a&gt;&amp;nbsp;的介紹。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2026/01/astro-5-expressive-code.html&quot; target=&quot;_blank&quot;&gt;Astro 部落格架設筆記(5) - 程式碼語法高亮 Expressive-Code&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2026/01/astro-6-plugin-line-numbers.html&quot; target=&quot;_blank&quot;&gt;Astro 部落格架設筆記(6) - 行號顯示與特定行數高亮 plugin-line-numbers&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/7686339924669183848/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/7686339924669183848?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/7686339924669183848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/7686339924669183848'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2026/01/astro-7-astro-embed-youtube.html' title='Astro 部落格架設筆記(7) - 使用 astro-embed 嵌入 YouTube 影片'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie_oKRQpGgFDA64BsD1DlLZHzErqH88NAoDcHOdowWukCWpmLiku9lU7ZDXnKUay3cMGJrZDc2InRqRxuVjqkgw5e9n7ZBIS86bUhriva_AvcO8iu6o15I1rAGLjzgjq4Q7Nyh4h1t468YCDE9jNj1owqZh60P23CKLh3rd6k1vWXfjl2cdf34/s72-c/astro-blog-07-logo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-415790322974658189</id><published>2026-01-14T17:27:00.001+08:00</published><updated>2026-01-14T17:27:15.294+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Astro"/><title type='text'>Astro 部落格架設筆記(6) - 行號顯示與特定行數高亮 plugin-line-numbers</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2026/01/astro-5-expressive-code.html&quot; target=&quot;_blank&quot;&gt;前面一篇文章&lt;/a&gt;中，介紹了安裝&amp;nbsp;&lt;a href=&quot;https://expressive-code.com&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Expressive-Code&lt;/a&gt;&amp;nbsp;讓程式碼語法高亮的套件，可以讓程式碼更容易閱讀，而今天要介紹的套件可以進行程式碼行數的調整，讓閱讀更清楚。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgm1XvFxFU3yCVUBtQOa7U0EzMM2SA9crV68Flqbzi-II9Aa41rzWTjhqUzXyZTbmfgAw5QwwggMrK8XH-lzziNFtPLH8_r1wRAYOmUp2XEbyZqXEGmsg25n8ji-t3pVgdGfrmG2o8fJSU_GPwBCrwznaHCSFAbQIdix51xXiI71Jbx525tQT84&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgm1XvFxFU3yCVUBtQOa7U0EzMM2SA9crV68Flqbzi-II9Aa41rzWTjhqUzXyZTbmfgAw5QwwggMrK8XH-lzziNFtPLH8_r1wRAYOmUp2XEbyZqXEGmsg25n8ji-t3pVgdGfrmG2o8fJSU_GPwBCrwznaHCSFAbQIdix51xXiI71Jbx525tQT84=s16000&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;安裝套件&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;npm install @expressive-code/plugin-line-numbers&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;設定 content.config.ts&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;expressiveCode({
	plugins: [
		pluginLineNumbers({
		startAt: 1,       // 行號從 1 開始
		style: &#39;decimal&#39;, // 數字格式（也可以是 &#39;decimal-leading-zero&#39;）
		gutterClass: &#39;line-number-gutter&#39;, // 可自訂 class
		lineClass: &#39;line-number&#39;           // 可自訂每行的 class
		})
	],
	// 可設置主題、按鈕樣式等
	themes: [&#39;dracula&#39;, &#39;github-dark&#39;],
}),&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;這樣設定完畢後，文章只要寫 {1, 7-10} 這樣就會把第一、七到十行高亮&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;``` typescript title=&quot;content.config.ts&quot; {1,7-10}
程式碼
```&lt;/pre&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/415790322974658189/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/415790322974658189?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/415790322974658189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/415790322974658189'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2026/01/astro-6-plugin-line-numbers.html' title='Astro 部落格架設筆記(6) - 行號顯示與特定行數高亮 plugin-line-numbers'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgm1XvFxFU3yCVUBtQOa7U0EzMM2SA9crV68Flqbzi-II9Aa41rzWTjhqUzXyZTbmfgAw5QwwggMrK8XH-lzziNFtPLH8_r1wRAYOmUp2XEbyZqXEGmsg25n8ji-t3pVgdGfrmG2o8fJSU_GPwBCrwznaHCSFAbQIdix51xXiI71Jbx525tQT84=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-5714059896992223282</id><published>2026-01-05T17:32:00.008+08:00</published><updated>2026-01-15T00:19:51.780+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Astro"/><title type='text'>Astro 部落格架設筆記(5) - 程式碼語法高亮 Expressive-Code</title><content type='html'>&lt;p&gt;技術類型的部落格，往往會在文章中貼上一些程式碼，而具備程式碼語法高亮算是一個很基本的功能，過往在 Google Blogger 就很難做到這件事情，或是做出來的效果很差。&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgVG2h-SyAnDut7Xiv5n1oAhmA7gTR-GJydyjJL9f1IfSkgpUCsQymacIYXepocUGopIKbOy9f_YZG0eS-MgILYX8wbiZspfdgAPdgSU4PMFN5cis8BVcGteqUkInUvW-K3JMjxjeTGyENqFzOB2I_lfjc96K9d0BjLqvaDfq2vHy72_4msA7at&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;語法高亮示意圖&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgVG2h-SyAnDut7Xiv5n1oAhmA7gTR-GJydyjJL9f1IfSkgpUCsQymacIYXepocUGopIKbOy9f_YZG0eS-MgILYX8wbiZspfdgAPdgSU4PMFN5cis8BVcGteqUkInUvW-K3JMjxjeTGyENqFzOB2I_lfjc96K9d0BjLqvaDfq2vHy72_4msA7at=s16000&quot; title=&quot;語法高亮示意圖&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;如果想要在 Astro 部落格實現語法高亮，只需要安裝 Expressive Code 即可&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;安裝套件&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;npm install astro-expressive-code&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;設定 content.config.ts&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;import expressiveCode from &#39;astro-expressive-code&#39;;

export default defineConfig({
	site: &#39;https://rojerchen.github.io&#39;,
	base: &#39;/&#39;,
	integrations: [
		expressiveCode({
			// 可設置主題、按鈕樣式等
			themes: [&#39;dracula&#39;, &#39;github-dark&#39;],
		}),
	],
  },
});&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;只要完成上述步驟，就可以達到最基本的程式碼語法高亮，而我自己又陸續安裝了以下幾個套件：&lt;/div&gt;&lt;div&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;@expressive-code/plugin-line-numbers`&amp;nbsp; (顯示行數)&lt;/li&gt;&lt;li&gt;@xt0rted/expressive-code-file-icons`&amp;nbsp; (icon圖示)&lt;/li&gt;&lt;li&gt;expressive-code-fullscreen` (全螢幕)&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;最後的效果大概就是這樣，如果想要更進一步了解，可以參考官網&amp;nbsp;&lt;a href=&quot;https://expressive-code.com&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Expressive-Code&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEioiUmYUcHWN5To84-OGZRrxuVovvsLN-73HdCK4JfBYjIQCKeF8vCvxlzHBXU1Aj1HYE4SfrkGsLn1wA7mNPM7_S5rdgREoch48J0OEU7--Ji-VdKAfFmpBSqxTTv2rqKUcUidT88_9VlrP8lYrC6gCuggao6G-0D07o3DENKmZWphUalRJYUj&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;程式碼語法高亮結果&quot; data-original-height=&quot;445&quot; data-original-width=&quot;1197&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEioiUmYUcHWN5To84-OGZRrxuVovvsLN-73HdCK4JfBYjIQCKeF8vCvxlzHBXU1Aj1HYE4SfrkGsLn1wA7mNPM7_S5rdgREoch48J0OEU7--Ji-VdKAfFmpBSqxTTv2rqKUcUidT88_9VlrP8lYrC6gCuggao6G-0D07o3DENKmZWphUalRJYUj=s16000&quot; title=&quot;程式碼語法高亮結果&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/09/astro-0-astro-github-pages.html&quot; target=&quot;_blank&quot;&gt;Astro 部落格架設筆記(0) - 為什麼選擇 Astro 與 GitHub Pages&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/11/astro-4-emoji.html&quot; target=&quot;_blank&quot;&gt;Astro 部落格架設筆記(4) - 支援 Emoji&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/5714059896992223282/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/5714059896992223282?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/5714059896992223282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/5714059896992223282'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2026/01/astro-5-expressive-code.html' title='Astro 部落格架設筆記(5) - 程式碼語法高亮 Expressive-Code'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgVG2h-SyAnDut7Xiv5n1oAhmA7gTR-GJydyjJL9f1IfSkgpUCsQymacIYXepocUGopIKbOy9f_YZG0eS-MgILYX8wbiZspfdgAPdgSU4PMFN5cis8BVcGteqUkInUvW-K3JMjxjeTGyENqFzOB2I_lfjc96K9d0BjLqvaDfq2vHy72_4msA7at=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-6224531894778436136</id><published>2025-11-21T16:43:00.001+08:00</published><updated>2025-11-21T16:44:50.041+08:00</updated><title type='text'>Google Blogger 更新：利用 Google 服務創造更吸引人的閱讀體驗 (2025.11.21)</title><content type='html'>&lt;p&gt;Google Blogger 終於迎來久違的更新！今天使用時意外發現了新功能，畫面上跳出了這段提示訊息。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjBw6ngwbTUP1Snr1DlI6Kq2HzoPmvPzyN_YwHWBnoY_wVkv1ec0rITa6hxX7p0HdvaebdJsczgZG_5jUOpp6Mau2GbWIRJeBkQoA6R63-ZF72bL7__csrckNxsC_sGQTEgIjx1eHiqDajl15vLXWrJFkDakC9k7YIJ6cF2QBppBV0MOY0dfj0w&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Blogger 新功能提示&quot; data-original-height=&quot;176&quot; data-original-width=&quot;1387&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjBw6ngwbTUP1Snr1DlI6Kq2HzoPmvPzyN_YwHWBnoY_wVkv1ec0rITa6hxX7p0HdvaebdJsczgZG_5jUOpp6Mau2GbWIRJeBkQoA6R63-ZF72bL7__csrckNxsC_sGQTEgIjx1eHiqDajl15vLXWrJFkDakC9k7YIJ6cF2QBppBV0MOY0dfj0w=s16000&quot; title=&quot;Blogger 新功能提示&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: left;&quot;&gt;在編輯器的工具列上，多了一個 &lt;strong data-end=&quot;121&quot; data-start=&quot;108&quot;&gt;Google 圖示&lt;/strong&gt;。&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg9az7qvRGnGYhou1Zm8WYDtHxUY_TDl2h9itHAcSEHPaB2jiS_ChWhNSn4vDb2nvwWEuL8tSKr2phABKfyha7-9nXrtufVWrOfvq1UbI5o7Rcs4UDOAeJfzYtEcabaD39Bjfk2NiS-6GaOXZAZBbeVj1WaPMRcpQmHyb_5jR6pXdZMzdSl9xOV&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Blogger 編輯器&quot; data-original-height=&quot;35&quot; data-original-width=&quot;1284&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg9az7qvRGnGYhou1Zm8WYDtHxUY_TDl2h9itHAcSEHPaB2jiS_ChWhNSn4vDb2nvwWEuL8tSKr2phABKfyha7-9nXrtufVWrOfvq1UbI5o7Rcs4UDOAeJfzYtEcabaD39Bjfk2NiS-6GaOXZAZBbeVj1WaPMRcpQmHyb_5jR6pXdZMzdSl9xOV=s16000&quot; title=&quot;Blogger 編輯器&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;點下去後，只要輸入關鍵字，系統就會自動在文章中插入一段 &lt;strong data-end=&quot;163&quot; data-start=&quot;153&quot;&gt;iframe&lt;/strong&gt;。&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhF0hoVagtLbbwPmZDlt0wgGN9F2SlRG47cEZ5xTUZq8wwG5PPOB4cfH23qZejPovym2-o1cVol0GEplBPTFaFjMGoO3QFIGqAiYAWhDPnlQFcC1V1TgWTCyPaVv3r-aKYiSU5JdjWM880NaTJWNKm__FJ-uISXxiWVkOGGRhWOvKotu5tCRHnb&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;新功能效果&quot; data-original-height=&quot;484&quot; data-original-width=&quot;671&quot; height=&quot;462&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhF0hoVagtLbbwPmZDlt0wgGN9F2SlRG47cEZ5xTUZq8wwG5PPOB4cfH23qZejPovym2-o1cVol0GEplBPTFaFjMGoO3QFIGqAiYAWhDPnlQFcC1V1TgWTCyPaVv3r-aKYiSU5JdjWM880NaTJWNKm__FJ-uISXxiWVkOGGRhWOvKotu5tCRHnb=w640-h462&quot; title=&quot;新功能效果&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;/div&gt;&lt;div&gt;讀者在瀏覽文章時，只要點擊該區塊，就能直接連到 &lt;strong data-end=&quot;207&quot; data-start=&quot;190&quot;&gt;Google Search&lt;/strong&gt; 進行搜尋，讓文章與搜尋功能做了更緊密的整合。&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;iframe class=&quot;b-iframe-ws lTgB3 BLOG_object_iframe&quot; frameborder=&quot;0&quot; height=&quot;198px&quot; jsaction=&quot;load:lzUY8e&quot; src=&quot;/share-widget?w=poi&amp;amp;u=https%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dblogger%2520rojerchen&amp;amp;ved=1t%3A269313&amp;amp;bbid=31919365&amp;amp;bpid=6224531894778436136&quot; width=&quot;200px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;但這樣的服務實際上能帶來多少吸引人的體驗？我自己是相當存疑。你會覺得這樣就會讓文章吸引人嗎？&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/6224531894778436136/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/6224531894778436136?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/6224531894778436136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/6224531894778436136'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/11/google-blogger-google-20251121.html' title='Google Blogger 更新：利用 Google 服務創造更吸引人的閱讀體驗 (2025.11.21)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjBw6ngwbTUP1Snr1DlI6Kq2HzoPmvPzyN_YwHWBnoY_wVkv1ec0rITa6hxX7p0HdvaebdJsczgZG_5jUOpp6Mau2GbWIRJeBkQoA6R63-ZF72bL7__csrckNxsC_sGQTEgIjx1eHiqDajl15vLXWrJFkDakC9k7YIJ6cF2QBppBV0MOY0dfj0w=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-4454526547518963085</id><published>2025-11-18T14:10:00.001+08:00</published><updated>2025-11-19T10:24:08.555+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Astro"/><title type='text'>Astro 部落格架設筆記(4) - 支援 Emoji</title><content type='html'>&lt;p&gt;在撰寫文章的時候，有時候會用到一些表情符號，使用 md、mdx 撰寫文章，可以安裝 remark-emoji 來輔助，唯一的缺點就是不支援 .astro 。&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFFfxEZiY17YePbya0TA2jqG-ZrN1n1Vo0GOXf2zIeH88u5euv0riXsELHbUCivNizX32tZ0MH-Wcgh_JFBL_-L0cm1CW8ELLXKpsofkwriZkA-uY4YkMmbVn73xNo400cBGviTg21C9L4VVWfjuiibQjumtLDMFS_dEj9XEKckVSQVjNjGNLW/s1024/astro-04.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;封面圖&quot; border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFFfxEZiY17YePbya0TA2jqG-ZrN1n1Vo0GOXf2zIeH88u5euv0riXsELHbUCivNizX32tZ0MH-Wcgh_JFBL_-L0cm1CW8ELLXKpsofkwriZkA-uY4YkMmbVn73xNo400cBGviTg21C9L4VVWfjuiibQjumtLDMFS_dEj9XEKckVSQVjNjGNLW/s16000/astro-04.png&quot; title=&quot;封面圖&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;安裝套件&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;npm install remark-emoji&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;設定&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;import remarkEmoji from &#39;remark-emoji&#39;;

export default defineConfig({
	site: &#39;https://rojerchen.github.io&#39;,
	base: &#39;/&#39;,
	integrations: [
    ...
	],
	markdown: {
      remarkPlugins: [
        remarkEmoji,
      ],
  },
});&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;這樣只要在文章輸入:heart: 就可以直接轉換了。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: red;&quot;&gt;如果想要支援 .astro 就必須要額外安裝別的套件才有辦法&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;安裝套件&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;npm install node-emoji&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;astro.config.mjs設定&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;import remarkEmoji from &#39;remark-emoji&#39;;

export default defineConfig({
  ...
  vite: {
    resolve: {
      alias: {
        &quot;@emoji&quot;: new URL(&quot;./src/utils/emoji.ts&quot;, import.meta.url).pathname,
      },
    },
  },  
});&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;新增 src/utils/emoji.ts&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;import { get, emojify } from &quot;node-emoji&quot;;

// 取得單一 emoji
export function emoji(name: string): string {
  return get(name) || name;
}

// 把字串裡的 :smile: 自動轉換
export function emojifyText(text: string): string {
  return emojify(text);
}&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;啟用方式&lt;br /&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;import { emojifyText } from &quot;@emoji&quot;;

{emojifyText(&quot;:date:&quot;)}&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;這樣就可以讓 .astro 支援 Emoji 了。&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;span&gt;※延伸閱讀&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;span&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/10/astro-3.html&quot; target=&quot;_blank&quot;&gt;Astro 部落格架設筆記(3) - 透過壓縮提升傳輸效率&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/4454526547518963085/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/4454526547518963085?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/4454526547518963085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/4454526547518963085'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/11/astro-4-emoji.html' title='Astro 部落格架設筆記(4) - 支援 Emoji'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFFfxEZiY17YePbya0TA2jqG-ZrN1n1Vo0GOXf2zIeH88u5euv0riXsELHbUCivNizX32tZ0MH-Wcgh_JFBL_-L0cm1CW8ELLXKpsofkwriZkA-uY4YkMmbVn73xNo400cBGviTg21C9L4VVWfjuiibQjumtLDMFS_dEj9XEKckVSQVjNjGNLW/s72-c/astro-04.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-2263842840002299365</id><published>2025-10-22T18:09:00.003+08:00</published><updated>2025-10-22T18:16:23.358+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="Github Copilot"/><title type='text'>讓 GitHub Copilot CLI 每次啟動都顯示動畫</title><content type='html'>&lt;p&gt;最近使用 Github Copilot CLI，在使用的時候發現到啟動的動畫只有第一次執行的時候會顯示，之後就不會再顯示啟動動畫了。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgnD_GfFlEKWGXVdGu0kRNzQqULCmN-Qnf81j4r3zJyqScttc0vha_RM57u26a1zWzEZtsf1OreZB4xLQxFjZpttoaCou5stU5EAIs60M47jRrLf8Jp4NlRWHP8UFNO1j_RHN-_a7hR7j6uAz4-N7GD4YAGgJg0y_KrUwZeLuIynuIVpwcUqpW8&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;684&quot; data-original-width=&quot;1920&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgnD_GfFlEKWGXVdGu0kRNzQqULCmN-Qnf81j4r3zJyqScttc0vha_RM57u26a1zWzEZtsf1OreZB4xLQxFjZpttoaCou5stU5EAIs60M47jRrLf8Jp4NlRWHP8UFNO1j_RHN-_a7hR7j6uAz4-N7GD4YAGgJg0y_KrUwZeLuIynuIVpwcUqpW8=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;p&gt;如果想讓每次啟動都可以顯示動畫，可以修改 .copilot\config.json，將 banner 設定為 always 後，每次啟動都可以看到動畫了。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;{
  &lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;&quot;banner&quot;: &quot;always&quot;,&lt;/b&gt;&lt;/span&gt;
  &quot;last_logged_in_user&quot;: {
    &quot;host&quot;: &quot;https://github.com&quot;,
    &quot;login&quot;: &quot;RojerChen&quot;
  },
  &quot;logged_in_users&quot;: [
    {
      &quot;host&quot;: &quot;https://github.com&quot;,
      &quot;login&quot;: &quot;RojerChen&quot;
    }
  ],
  &quot;render_markdown&quot;: true,
  &quot;screen_reader&quot;: false,
  &quot;theme&quot;: &quot;auto&quot;
}&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;啟動動畫&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh9-LBC6pvSZz87MfmktDUdlExijOMlLlCsJYF8GBbkFLV8QxSUwRZYS6QvrU9Uah49f_qoWLyyiPqTGdxc0jEMopeSZZSDMbjgh0G17flQkb2o3hW3jCAOtG6kNI28QZrDvZt1eInclErh3yF9RKTYIaaapnBDWyDzZuqKdQIFYD3WFA7NxiMy&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;Github Copilot CLI 啟動動畫&quot; data-original-height=&quot;428&quot; data-original-width=&quot;800&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh9-LBC6pvSZz87MfmktDUdlExijOMlLlCsJYF8GBbkFLV8QxSUwRZYS6QvrU9Uah49f_qoWLyyiPqTGdxc0jEMopeSZZSDMbjgh0G17flQkb2o3hW3jCAOtG6kNI28QZrDvZt1eInclErh3yF9RKTYIaaapnBDWyDzZuqKdQIFYD3WFA7NxiMy=s16000&quot; title=&quot;Github Copilot CLI 啟動動畫&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/2263842840002299365/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/2263842840002299365?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/2263842840002299365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/2263842840002299365'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/10/github-copilot-cli.html' title='讓 GitHub Copilot CLI 每次啟動都顯示動畫'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgnD_GfFlEKWGXVdGu0kRNzQqULCmN-Qnf81j4r3zJyqScttc0vha_RM57u26a1zWzEZtsf1OreZB4xLQxFjZpttoaCou5stU5EAIs60M47jRrLf8Jp4NlRWHP8UFNO1j_RHN-_a7hR7j6uAz4-N7GD4YAGgJg0y_KrUwZeLuIynuIVpwcUqpW8=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-5280153290982117696</id><published>2025-10-17T11:00:00.002+08:00</published><updated>2025-10-17T15:29:40.652+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Astro"/><title type='text'>Astro 部落格架設筆記(3) - 透過壓縮提升傳輸效率</title><content type='html'>&lt;p&gt;我們在瀏覽網頁的時候，HTML、CSS、圖片都會佔據不少空間，當檔案越大，傳輸所耗的頻寬與時間就越久，所以我們就需要透過壓縮的方式，提升傳輸效率。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiQYIogPerseZf6qDBjNN2s3m-BKVkfuG6ebM-hnO5ExvoYG9jbxDD_Nn5fOJl64UOT4QgIfXCjpoAcSrYjIsd5nxn-42LYZRPNG6-x9kgKWjcs9aTDougMyCLOsnUOQZ1kjEHVWSULtcmRNmpVuF0TYEbc95NdpWGN5gYp2-iWK6x5kCfciVK1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;壓縮效果示意圖&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiQYIogPerseZf6qDBjNN2s3m-BKVkfuG6ebM-hnO5ExvoYG9jbxDD_Nn5fOJl64UOT4QgIfXCjpoAcSrYjIsd5nxn-42LYZRPNG6-x9kgKWjcs9aTDougMyCLOsnUOQZ1kjEHVWSULtcmRNmpVuF0TYEbc95NdpWGN5gYp2-iWK6x5kCfciVK1=w640-h640&quot; title=&quot;壓縮效果示意圖&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;執行以下指令安裝套件&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;npm install astro-compress&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;修改 `astro.config.mjs` 檔案&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;import compress from &quot;astro-compress&quot;;

export default defineConfig({
	site: &#39;https://rojerchen.github.io&#39;,
	base: &#39;/&#39;,
	integrations: [
		compress(),
	]
  },
});&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;執行編譯&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;npm run build&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;編譯後，我們可以發現到壓縮後的效果&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgkPqBcdswWqu-F1kFiKWK3Vc0Sb57ottR4p-LHaKj3vFmUL8zRtWXM3kpolvvpt0gD8mLbrdVFcz6k02MIDOQI36R5j5xpxgY8SVmyyl78vriW_0Gb4BIFExw1oT-tIAdDvuDcu_XQLh3Oh0s5CKpVr7Wx8_1VY-_z9rzpkPB0n0agkp4K_DBF&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;壓縮效果&quot; data-original-height=&quot;487&quot; data-original-width=&quot;781&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgkPqBcdswWqu-F1kFiKWK3Vc0Sb57ottR4p-LHaKj3vFmUL8zRtWXM3kpolvvpt0gD8mLbrdVFcz6k02MIDOQI36R5j5xpxgY8SVmyyl78vriW_0Gb4BIFExw1oT-tIAdDvuDcu_XQLh3Oh0s5CKpVr7Wx8_1VY-_z9rzpkPB0n0agkp4K_DBF=w640-h400&quot; title=&quot;壓縮效果&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;網站架設初期，資料量雖然不大，壓縮帶來的效益可能有限，但這類基礎設置屬於一次性工作，及早完成後便能長期受益，之後也不必再費心處理。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/5280153290982117696/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/5280153290982117696?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/5280153290982117696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/5280153290982117696'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/10/astro-3.html' title='Astro 部落格架設筆記(3) - 透過壓縮提升傳輸效率'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiQYIogPerseZf6qDBjNN2s3m-BKVkfuG6ebM-hnO5ExvoYG9jbxDD_Nn5fOJl64UOT4QgIfXCjpoAcSrYjIsd5nxn-42LYZRPNG6-x9kgKWjcs9aTDougMyCLOsnUOQZ1kjEHVWSULtcmRNmpVuF0TYEbc95NdpWGN5gYp2-iWK6x5kCfciVK1=s72-w640-h640-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-8251262730553732859</id><published>2025-10-13T10:02:00.000+08:00</published><updated>2025-10-13T10:02:51.228+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><title type='text'>Github Spec-Kit 與 Gemini 使用流程初體驗</title><content type='html'>&lt;div&gt;過往我們在開發軟體的時候，很容易發生文件跟不是程式碼的狀況，文件只是過往的傳說，往往只能參考而已。當有了 AI 以後，我們透過 AI 協作來產生規格，讓文件與程式碼更靠近了。而近期 Github 推出的 Spec-Kit，讓你也可以透過&amp;nbsp;Spec-Driven Development 的方式進行軟體開發，剛好最近連假有空，就來嘗試一下這種開發方式。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlUQHa9Bz8Y3U-5jI2slUDhd7mvit13qwLbd7SjktqmW3JVtRUCi4EMBwF4ZdcaQvXbTyzHRi786rrlitP7yF8E-9FwW98NIwofJgu1U2bzyxOer6EEMQLUqFdmHnaSWg61LItUxYF8PjnzIdMj95PzPsAbXcUhO-0TBa8LEywfFNMKEEHwGM2/s351/OIG1.ql4F4Vb2maWEACa.jfif&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;示意圖&quot; border=&quot;0&quot; data-original-height=&quot;351&quot; data-original-width=&quot;351&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlUQHa9Bz8Y3U-5jI2slUDhd7mvit13qwLbd7SjktqmW3JVtRUCi4EMBwF4ZdcaQvXbTyzHRi786rrlitP7yF8E-9FwW98NIwofJgu1U2bzyxOer6EEMQLUqFdmHnaSWg61LItUxYF8PjnzIdMj95PzPsAbXcUhO-0TBa8LEywfFNMKEEHwGM2/s16000/OIG1.ql4F4Vb2maWEACa.jfif&quot; title=&quot;示意圖&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;環境設定&lt;/h2&gt;&lt;p&gt;首先就是要先安裝 SDD&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; white-space: normal;&quot;&gt;uv tool install specify-cli --from git+https://github.com/github/spec-kit.git&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;安裝好後，建立新專案&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; white-space: normal; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;specify init project_name #建立新專案&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;建立新專案的同時，順便選擇使用的 AI Assistant ，像我自己就是選用免費的 gemini 來做測試&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjRp0519lBuwkg4i0KHAQvIXmzWByXDvImjWGL0IkYqwvDwmmbSdpSlDFC0evraIHB_G5MYzr0Vy5lR89exhCQYOoO0Oz4Od2Qlxj0VSDp2crNco2ftvZOsbTFJg_u29e9kHBAsXYZFitO8GM6QFqtYIvoeMEc5P1mnzsVcR0yM7hLL99geMS-u&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;建立新專案&quot; data-original-height=&quot;790&quot; data-original-width=&quot;1475&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjRp0519lBuwkg4i0KHAQvIXmzWByXDvImjWGL0IkYqwvDwmmbSdpSlDFC0evraIHB_G5MYzr0Vy5lR89exhCQYOoO0Oz4Od2Qlxj0VSDp2crNco2ftvZOsbTFJg_u29e9kHBAsXYZFitO8GM6QFqtYIvoeMEc5P1mnzsVcR0yM7hLL99geMS-u=s16000&quot; title=&quot;建立新專案&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;切換到剛才建立的資料夾，啟動 gemini&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgCdewJ4hWiZQbtNXyYb2BclblPsP52EMQPnRfI-9vwap8RL2nTyZyJQbhNeye5IiwCqxHkR_kp4ijbkqUgV0TGYwxzERzdj71KxA9is31y6vXDyzB8juYCH3PU1vgHCeZ52JDtf-01WNEiGodF7lyCfwj8FctYmbgbSnKmghJSWyGsAHxRwImV&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;gemini 版本升級提醒&quot; data-original-height=&quot;665&quot; data-original-width=&quot;1353&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgCdewJ4hWiZQbtNXyYb2BclblPsP52EMQPnRfI-9vwap8RL2nTyZyJQbhNeye5IiwCqxHkR_kp4ijbkqUgV0TGYwxzERzdj71KxA9is31y6vXDyzB8juYCH3PU1vgHCeZ52JDtf-01WNEiGodF7lyCfwj8FctYmbgbSnKmghJSWyGsAHxRwImV=s16000&quot; title=&quot;gemini 版本升級提醒&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;我們可以透過輸入關鍵字，看看有沒有出現指令，如果沒有的話就表示當下資料夾的位置不對，或是 gemini 版本過舊需要更新。&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj2CUzMP5piBNmsutjyorFvGl_EXjuLJg3GS7JaXgzzKmdgJ7aMK8AMwGwKU_-Eyw1r05PVayzBnDMxYy2vi25yWH5YJdjWJW3d-p-t9HpDZyqmK664sI8kNULk8O3WsWGNNiD-AFHu_Ig0_QrQFwV8_Ikk2xnLOXJXMbxd8lC8IOpGkz8X4hyf&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;github spec 命令&quot; data-original-height=&quot;165&quot; data-original-width=&quot;1324&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj2CUzMP5piBNmsutjyorFvGl_EXjuLJg3GS7JaXgzzKmdgJ7aMK8AMwGwKU_-Eyw1r05PVayzBnDMxYy2vi25yWH5YJdjWJW3d-p-t9HpDZyqmK664sI8kNULk8O3WsWGNNiD-AFHu_Ig0_QrQFwV8_Ikk2xnLOXJXMbxd8lC8IOpGkz8X4hyf=s16000&quot; title=&quot;github spec 命令&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;像我自己前一次測試 gemini 是好幾個月前的事情了，舊版本根本吃不到操作 SDD 命令，當然也就無法執行。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; white-space: normal; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;npm install -g @google/gemini -cli to update #更新 Gemini 版本&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;SDD 命令&lt;/h2&gt;&lt;p&gt;前置作業完畢後，我們再來了解一下各個命令的用途&lt;/p&gt;&lt;table style=&quot;border-collapse: collapse; color: #222939; display: block; font-family: Atkinson, sans-serif; font-size: 20px; margin: 16px 0px; overflow-x: auto; width: 960px;&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Command&lt;/span&gt;&lt;/th&gt;&lt;th style=&quot;background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); padding: 8px 12px; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;說明&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;/constitution&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;建立或更新專案的治理原則與開發規範&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;/specify&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;定義你要建置的內容&lt;br /&gt;（需求與使用者故事）&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;/clarify&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;在規劃前釐清未明確的部分&lt;br /&gt;（必須在 /plan 前執行，除非明確跳過；以前稱為 /quizme）&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;/plan&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;依照選定的技術堆疊建立技術實作計畫&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;/tasks&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;產出可執行的實作任務清單&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;/analyze&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #fafafa; border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;進行跨文件一致性與覆蓋率分析&lt;br /&gt;（在 /tasks 後、/implement 前執行）&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;/implement&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 8px 12px;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;依照計畫執行所有任務並建置功能&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;h2&gt;使用心得&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;在這些命令中，我自己的使用順序為：specify -&amp;gt; plan -&amp;gt; tasks -&amp;gt; implement&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;如果規格有需要釐清的部分，AI 可能會詢問你相關的問題，等你回答完畢後才會繼續進行下一個步驟，而你也可以透過 /clarify 來檢視需求是否明確。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;由於我並沒有訂閱 Google AI 的服務，一開始使用的模型為 gemini-2.5-pro 但是用到一半，就會強迫切換到 gemini-2.5-flash 了。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg5eROmZfUjZrH3FmsW4ALSd4mVgpELEf0PW5yNOSC59DQB6sgaXvhCaRoe0bG9Fn2KRdzWzjwdaRVFic9MgNfTrBUi7tz39Z-DbcvZReRfMi5RdEfDai4wfxvFkgYOfQMMPbOcV-V2BPfiy3C472nZTS82Tc9PsqjSKUvR9vPCBsJ3Ow5DEUtN&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;gemini quota limit reached&quot; data-original-height=&quot;282&quot; data-original-width=&quot;1148&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg5eROmZfUjZrH3FmsW4ALSd4mVgpELEf0PW5yNOSC59DQB6sgaXvhCaRoe0bG9Fn2KRdzWzjwdaRVFic9MgNfTrBUi7tz39Z-DbcvZReRfMi5RdEfDai4wfxvFkgYOfQMMPbOcV-V2BPfiy3C472nZTS82Tc9PsqjSKUvR9vPCBsJ3Ow5DEUtN=s16000&quot; title=&quot;gemini quota limit reached&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;雖然每個模型都可以完成任務，但是因為模型特性的關係，效果就會有很大的差異。&lt;/b&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;我使用同一份規格，模型使用 &lt;b&gt;gemini-2.5-flash&lt;/b&gt;&amp;nbsp;多次測試的狀況下，沒有辦法每次都達到同樣的結果，有時候會東錯一點、西錯一點，錯到讓我都懷疑是我規格寫的有這麼差嗎？雖然是一個很好鍛練寫規格的方法，但是有聰明的模型幹嘛要用愚蠢的模型，實際要使用的話，&lt;span style=&quot;color: red; font-weight: bold;&quot;&gt;課金用聰明的模型&lt;/span&gt;，才是最正確的選擇。&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/8251262730553732859/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/8251262730553732859?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/8251262730553732859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/8251262730553732859'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/10/github-spec-kit-gemini.html' title='Github Spec-Kit 與 Gemini 使用流程初體驗'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlUQHa9Bz8Y3U-5jI2slUDhd7mvit13qwLbd7SjktqmW3JVtRUCi4EMBwF4ZdcaQvXbTyzHRi786rrlitP7yF8E-9FwW98NIwofJgu1U2bzyxOer6EEMQLUqFdmHnaSWg61LItUxYF8PjnzIdMj95PzPsAbXcUhO-0TBa8LEywfFNMKEEHwGM2/s72-c/OIG1.ql4F4Vb2maWEACa.jfif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-8249051169048383086</id><published>2025-10-07T08:30:00.002+08:00</published><updated>2025-10-17T15:28:16.425+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Astro"/><title type='text'>Astro 部落格架設筆記(2) - 實作回到頁首功能</title><content type='html'>&lt;p&gt;在前一篇文章&amp;nbsp;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/09/astro-1.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Astro 部落格架設筆記(1) - 系統環境初始化&lt;/a&gt;&amp;nbsp;中，我們建立好 Astro 的開發環境後，接下來就可以從&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;回到頁首&lt;/span&gt;&lt;/b&gt;&amp;nbsp;這個功能，熟悉一下整體環境。&lt;/p&gt;&lt;p&gt;我們就先從一個小功能來實踐，透過&amp;nbsp;，來熟悉整個環境。當使用者滾動畫面後，會出現回到頁首的圖示，按下去後就自動滾到頁首。&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjMN7li9x2ElYVGYqNFNLBkiO2ua-j28J-D495m05NhKJklFiiHZZQpBidGdnNvlXcvvUPsUq9ujBcMgZHkvBYy9xP0ZlzFRbcJuPhwtS-uTzJj08nm-pKOeQ4Ez7ACUIf_Qg5P6VrbCTANEHF9a5jaxYmMAAnS8tqwwnPdwhqkHjwWvapqf4qg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;351&quot; data-original-width=&quot;351&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjMN7li9x2ElYVGYqNFNLBkiO2ua-j28J-D495m05NhKJklFiiHZZQpBidGdnNvlXcvvUPsUq9ujBcMgZHkvBYy9xP0ZlzFRbcJuPhwtS-uTzJj08nm-pKOeQ4Ez7ACUIf_Qg5P6VrbCTANEHF9a5jaxYmMAAnS8tqwwnPdwhqkHjwWvapqf4qg=s16000&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;首先，新增一個 &lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;BackToTop.astro&lt;/span&gt;&lt;/b&gt; 元件，來實作回到頁首的功能&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&amp;lt;button id=&quot;back-to-top&quot; class=&quot;back-to-top&quot; aria-label=&quot;回到頁首&quot;&amp;gt;↑&amp;lt;/button&amp;gt;

&amp;lt;style&amp;gt;
  .back-to-top {
    position: fixed;
    bottom: 1rem;
    right: 1rem;
    width: 3rem;
    height: 3rem;
    font-size: 1.5rem;
    background-color: #0077ff;
    color: white;
    border: none;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
    cursor: pointer;
    display: none; /* 初始隱藏 */
    align-items: center;
    justify-content: center;
    z-index: 1000;
    transition: opacity 0.3s ease;
  }
  .back-to-top.show {
    display: flex;
  }
&amp;lt;/style&amp;gt;

&amp;lt;script&amp;gt;
  const btn = document.getElementById(&#39;back-to-top&#39;);
  const showAfter = 300; // 滾動超過 300px 才顯示

  window.addEventListener(&#39;scroll&#39;, () =&amp;gt; {
    if (window.scrollY &amp;gt; showAfter) {
      btn.classList.add(&#39;show&#39;);
    } else {
      btn.classList.remove(&#39;show&#39;);
    }
  });

  btn.addEventListener(&#39;click&#39;, () =&amp;gt; {
    window.scrollTo({ top: 0, behavior: &#39;smooth&#39; });
  });
&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;接下來修改 &lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;BlogPost.astro&lt;/span&gt;&lt;/b&gt; 將我們前面寫好的元件 import 即可&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;---
 import BackToTop from &quot;../components/BackToTop.astro&quot;;
---

&amp;lt;main&amp;gt;
    &amp;lt;article&amp;gt;
     ...
    &amp;lt;/article&amp;gt;
    &amp;lt;BackToTop/&amp;gt;
&amp;lt;/main&amp;gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;每一個 astro 檔案就是一塊塊的積木，寫好的每一個元件可以在別的地方重複使用。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;BlogPost.astro&lt;/b&gt;&lt;/span&gt; 這個檔案的用途是用來顯示文章內容以外的部分，除此之外還可以調整標題、外框等等資訊。&lt;br /&gt;&lt;br /&gt;大致了解這樣的運作模式後，就可以做更進一步的開發了。&lt;/p&gt;&lt;p&gt;下一步來看看如何透過壓縮的方式節省頻寬，提升傳輸速度&amp;nbsp;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/10/astro-3.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Astro 部落格架設筆記(3) - 透過壓縮提升傳輸效率&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/09/astro-0-astro-github-pages.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Astro 部落格架設筆記(0) - 為什麼選擇 Astro 與 GitHub Pages&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/8249051169048383086/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/8249051169048383086?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/8249051169048383086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/8249051169048383086'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/10/astro-2.html' title='Astro 部落格架設筆記(2) - 實作回到頁首功能'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjMN7li9x2ElYVGYqNFNLBkiO2ua-j28J-D495m05NhKJklFiiHZZQpBidGdnNvlXcvvUPsUq9ujBcMgZHkvBYy9xP0ZlzFRbcJuPhwtS-uTzJj08nm-pKOeQ4Ez7ACUIf_Qg5P6VrbCTANEHF9a5jaxYmMAAnS8tqwwnPdwhqkHjwWvapqf4qg=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-256790819026768872</id><published>2025-09-29T08:00:00.002+08:00</published><updated>2025-10-07T09:45:31.371+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Astro"/><title type='text'>Astro 部落格架設筆記(1) - 系統環境初始化</title><content type='html'>&lt;h3 id=&quot;前言&quot;&gt;前言&lt;/h3&gt;&lt;div&gt;前一篇文章 &lt;a href=&quot;https://rojerchen.blogspot.com/2025/09/astro-0-astro-github-pages.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Astro 部落格架設筆記(0) - 為什麼選擇 Astro 與 GitHub Pages&lt;/a&gt; 我提到為什麼選擇 Astro 來架設部落格，接下來就準備環境開始動手架設，以下是我運行的版本資訊：&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Node.js V20.19.4&lt;/li&gt;&lt;li&gt;Astro 5.13.5&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjPouSHmajPUL-Nfkr225wtGmiKjv1yoqiWqIFjYcZGMiSker0Kcnjb0o9AtvBkwn9OsmcbpX9FMPuqj0BKdg3ryH6Sk-ZVAVSQYlsS_ZeBCMMkdmcbTNgct-hZyRT_xVv5Mmm9ce2tSxq7cQ208HeI2MrPeQ0lYoZgjf3o5QhP-nxTJZP1IcDJ&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;示意圖&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjPouSHmajPUL-Nfkr225wtGmiKjv1yoqiWqIFjYcZGMiSker0Kcnjb0o9AtvBkwn9OsmcbpX9FMPuqj0BKdg3ryH6Sk-ZVAVSQYlsS_ZeBCMMkdmcbTNgct-hZyRT_xVv5Mmm9ce2tSxq7cQ208HeI2MrPeQ0lYoZgjf3o5QhP-nxTJZP1IcDJ=w640-h640&quot; title=&quot;示意圖&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;h3 id=&quot;安裝-nvm&quot;&gt;1. 安裝 NVM&lt;/h3&gt;
&lt;p&gt;首先，請先安裝 &lt;a href=&quot;https://github.com/nvm-sh/nvm&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot; title=&quot;NVM Github Repo&quot;&gt;Node Version Manager (NVM)&lt;/a&gt;，方便管理 Node.js 版本。&lt;/p&gt;
&lt;p&gt;我自己平常是使用 Chocolatey 來管理 Windows 上的軟體套件，只不過在使用 NVM 的時候，切換 Node.js 會發生找不到對應 exe 的狀況，而我自己也不想要手動去修改環境變數，為了避免麻煩，還是直接使用 Windows 安裝檔比較方便。&lt;/p&gt;
&lt;h3 id=&quot;建立-astro-專案&quot;&gt;2. 建立 Astro 專案&lt;/h3&gt;
&lt;p&gt;執行以下指令，建立 Astro 專案&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;npm  create  astro@latest&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;選擇-blog-template-樣板&quot;&gt;3. 選擇 Blog Template 樣板&lt;/h3&gt;
&lt;p&gt;官方一共有提供四種範本，不過其他範本都太簡略，不符合我架設部落格的需求，並且從零開始架設對我來說也不太符合經濟效益，有一點基礎的樣板我才知道要怎樣調整。&lt;/p&gt;
&lt;h3 id=&quot;環境設定&quot;&gt;4. 環境設定&lt;/h3&gt;
&lt;p&gt;在 &lt;code&gt;src/consts.ts&lt;/code&gt; 中設定網站的基本資訊&lt;/p&gt;&lt;pre class=&quot;language-typescript&quot;&gt;&lt;code class=&quot;prism language-typescript&quot;&gt;&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;prism language-shell&quot;&gt;&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;prism language-shell&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;pre class=&quot;language-typescript&quot;&gt;&lt;code class=&quot;prism language-typescript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt;  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt;  SITE_TITLE &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;Rojer 的網路學習筆記&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt;  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt;  SITE_DESCRIPTION &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;分享程式開發、Toastmasters 演講經驗、科技產品開箱與旅行心得，記錄學習與生活的點滴&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; white-space: normal;&quot;&gt;在 &lt;/span&gt;&lt;code style=&quot;white-space: normal;&quot;&gt;astro.config.mjs&lt;/code&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; white-space: normal;&quot;&gt; 中設定網站的網址&lt;/span&gt;&lt;/p&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;export  default {
    site:  &#39;https://rojerchen.github.io&#39;,
}&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;本機測試&quot;&gt;5. 本機測試&lt;/h3&gt;
&lt;p&gt;想要在本機環境測試，可以執行以下指令，再開啟網址就可以測試了&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;npm  run  dev&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;編譯&quot;&gt;6. 編譯&lt;/h3&gt;
&lt;p&gt;我自己平常是本機測試完畢無誤後，就透過 Github Action 來將程式部屬到 Github Page，所以我自己是不會使用下面這個指令。&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;npm  run  build&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;只不過有一件事情要留意&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;本機測試正常，編譯未必能成功&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;我就曾經發生過 Github Action 一直失敗，我以為是 Github 的問題，直到我本機測試後，才發現到問題。如果也發現到 Github Action 一直失敗，但是可以本機編譯看看。&lt;/p&gt;&lt;p&gt;接下來，我們可以從 &lt;a href=&quot;https://rojerchen.blogspot.com/2025/10/astro-2.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;回到頁首&lt;/a&gt; 這個功能來實作，了解一下系統的架構&lt;/p&gt;

</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/256790819026768872/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/256790819026768872?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/256790819026768872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/256790819026768872'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/09/astro-1.html' title='Astro 部落格架設筆記(1) - 系統環境初始化'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjPouSHmajPUL-Nfkr225wtGmiKjv1yoqiWqIFjYcZGMiSker0Kcnjb0o9AtvBkwn9OsmcbpX9FMPuqj0BKdg3ryH6Sk-ZVAVSQYlsS_ZeBCMMkdmcbTNgct-hZyRT_xVv5Mmm9ce2tSxq7cQ208HeI2MrPeQ0lYoZgjf3o5QhP-nxTJZP1IcDJ=s72-w640-h640-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-5671043341507728180</id><published>2025-09-24T08:00:00.002+08:00</published><updated>2025-09-29T10:06:43.101+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Astro"/><title type='text'>Astro 部落格架設筆記(0) - 為什麼選擇 Astro 與 GitHub Pages</title><content type='html'>&lt;h3 id=&quot;前言&quot;&gt;前言&lt;/h3&gt;
&lt;p&gt;很久以前我就知道可以透過 GitHub Pages 架設部落格，但因為種種原因，一直沒有真正動手。一方面，我已經使用 Google Blogger 很多年了，加上自己寫文章的頻率並不高，當時覺得沒有必要特地更換平台。另一方面，我對前端的掌握度並不高，雖然我會改，但是改的不夠快，也就更沒有動力來去處理了。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiZMnrEqp5VZgxfmCGtx-PX5l-TEm5_Sc76BvUA-qq9d6bHxQZ9rFvfc1pW6eTOnSKgBNZ1SQG6vDECwcRclFVm9AL4D5swm86TMHkKStYlBGpyF3rIJ0SVtoHJF0RmVTGji5S_cOXVYgXm0nCOPCCVfmaUhncUN_n3QZbw6C_guc-oa5Rnef7R&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;示意圖LOGO&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiZMnrEqp5VZgxfmCGtx-PX5l-TEm5_Sc76BvUA-qq9d6bHxQZ9rFvfc1pW6eTOnSKgBNZ1SQG6vDECwcRclFVm9AL4D5swm86TMHkKStYlBGpyF3rIJ0SVtoHJF0RmVTGji5S_cOXVYgXm0nCOPCCVfmaUhncUN_n3QZbw6C_guc-oa5Rnef7R=w640-h640&quot; title=&quot;示意圖LOGO&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;h3 id=&quot;google-blogger-的缺點&quot;&gt;Google Blogger 的缺點&lt;/h3&gt;
&lt;p&gt;今年我寫文章的次數增加，對於 Blogger 的一些缺點也就越來越難以忍受，剛好有 AI 的輔助，如果是自己架設的話，那前端畫面調整的阻力就大大降低，於是就興起了換家的念頭。&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;不支援 Markdown 語法。&lt;/li&gt;&lt;li&gt;超過五、六年以上沒有更新了。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/05/google-blogger-seo.html&quot; target=&quot;_blank&quot;&gt; Google Blogger SEO 的困境 - 消失的文章&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/05/google-blogger-seo_22.html&quot; target=&quot;_blank&quot;&gt; Google Blogger SEO 的困境 - 行動版網頁重導向錯誤&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/08/google-blogger.html&quot; target=&quot;_blank&quot;&gt; Google Blogger SEO 的困境 - 網站權重&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/08/blogger.html&quot; target=&quot;_blank&quot;&gt; 文章遭 Blogger 下架，究竟違反了什麼規範？&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;     &lt;h3 id=&quot;github-page&quot;&gt;Github Page&lt;/h3&gt;
&lt;p&gt;我並沒有考慮使用其他的部落格平台，畢竟我已經有使用 Google Blogger 了，換個平台只是換湯不換藥，所以使用 Github Page 就是我的首選。&lt;/p&gt;
&lt;h4 id=&quot;優點&quot;&gt;優點&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;b&gt;自由&lt;/b&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;自己架設就不會被平台所綁架，不用擔心哪一天被下架，想要什麼功能，自己開發就好。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;b&gt;學習&lt;/b&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;平常在使用 Github 我只有使用 Git 的功能，其他的功能我都不熟悉，這剛好也是一個好機會來研究其他相關的功能。&lt;/p&gt;
&lt;h4 id=&quot;缺點&quot;&gt;缺點&lt;/h4&gt;
&lt;p&gt;沒有部落格平台的庇護，任何功能都要自己來實作，而現有架構下，有些功能就需要使用第三方服務才能做的到。&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;只支援靜態網站，無法使用後端程式。&lt;/li&gt;&lt;li&gt;動態功能與紀錄，如留言板、搜尋、流量分析只能依賴第三方服務。&lt;/li&gt;&lt;li&gt;SEO 需要自己額外處理。&lt;/li&gt;&lt;li&gt;流量與空間受限 100G、空間 1G。&lt;/li&gt;&lt;li&gt;每次更新必須 commit 推送程式。&lt;/li&gt;&lt;/ol&gt;    &lt;h3 id=&quot;選擇框架&quot;&gt;選擇框架&lt;/h3&gt;
&lt;p&gt;確認好環境後，看看有那些合適的框架可以使用，從 ChatGPT 上的建議框下有以下幾項：&lt;/p&gt;
&lt;h4 id=&quot;jekyll&quot;&gt;Jekyll&lt;/h4&gt;
&lt;p&gt;Github Page 預設支援最基礎的樣板畫面，畫面太過簡潔，沒有任何調整的空間。&lt;/p&gt;
&lt;h4 id=&quot;hexo&quot;&gt;Hexo&lt;/h4&gt;
&lt;p&gt;約略從 2012年推出，網路上還蠻多人分享的，只不過陸陸續續有看到有些人轉換到 Astro。&lt;/p&gt;
&lt;h4 id=&quot;hugo&quot;&gt;Hugo&lt;/h4&gt;
&lt;p&gt;約略從 2013年推出，程式語言為 GO，&lt;a href=&quot;https://themes.gohugo.io/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Hugo Tempalte&quot;&gt;樣板&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;最多最豐富，只不過現階段我並沒有打算學習 GO。&lt;/p&gt;
&lt;h4 id=&quot;astro&quot;&gt;Astro&lt;/h4&gt;
&lt;p&gt;既然有不少人從 Hexo、Hugo 轉換到 Astro，所以它就是我測試上的首選。&lt;/p&gt;
&lt;p&gt;安裝並且嘗試改了幾個功能後，就決定是它了，選擇的理由大概是：&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;文章排版&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;我喜歡這文章排版的效果，比起 Google Blogger 真的是好太多了，看起來就是舒服。&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;看得懂，改的動&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;攤開程式碼，純粹的 HTML、CSS 會讓人產生一種『一看就懂』的錯覺，再加上架構簡單，降低了不少進入的門檻，只要稍有前端的開發經驗，馬上就可以開始開發了。&lt;/li&gt;&lt;/ol&gt;&lt;h4 id=&quot;next.js&quot;&gt;Next.js&lt;/h4&gt;
&lt;p&gt;由於我已經選擇 Astro 了，後續就沒有再研究 Next.js，從鐵人賽的文章中，兩者相比好像複雜了一點。&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://ithelp.ithome.com.tw/users/20093270/ironman/5999&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;2023 iThome 鐵人賽&quot;&gt;iT邦幫忙：從零開始學習 Astro, 打造個人Blog (部落格)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://ithelp.ithome.com.tw/users/20110504/ironman/4269&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;2021 iThome 鐵人賽&quot;&gt;iT邦幫忙：從零開始學習Next.js 系列 - iT 邦幫忙&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;後記&quot;&gt;後記&lt;/h3&gt;
&lt;p&gt;在 Astro 的架設上，建議還是先參考官方文件。我曾多次偷懶想要直接照抄 ChatGPT 給的建議，它卻常常會瞎掰一些不存在或是無法使用的套件，導致我浪費不少時間在試錯。&lt;/p&gt;
&lt;p&gt;接下來就陸續把原本 Google Blogger 的文章搬移過來。&lt;/p&gt;&lt;p&gt;接下來就準備開發環境，開始架設&amp;nbsp;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/09/astro-1.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Astro 部落格架設筆記(1) - 系統環境初始化&lt;/a&gt;&lt;/p&gt;

</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/5671043341507728180/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/5671043341507728180?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/5671043341507728180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/5671043341507728180'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/09/astro-0-astro-github-pages.html' title='Astro 部落格架設筆記(0) - 為什麼選擇 Astro 與 GitHub Pages'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiZMnrEqp5VZgxfmCGtx-PX5l-TEm5_Sc76BvUA-qq9d6bHxQZ9rFvfc1pW6eTOnSKgBNZ1SQG6vDECwcRclFVm9AL4D5swm86TMHkKStYlBGpyF3rIJ0SVtoHJF0RmVTGji5S_cOXVYgXm0nCOPCCVfmaUhncUN_n3QZbw6C_guc-oa5Rnef7R=s72-w640-h640-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-3127380908796731546</id><published>2025-08-31T08:30:00.008+08:00</published><updated>2025-08-31T08:30:00.113+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="FFmpeg"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Power Point"/><title type='text'>FFmpeg 轉檔影片，順利插入 PowerPoint 簡報</title><content type='html'>&lt;p data-end=&quot;209&quot; data-start=&quot;133&quot;&gt;在製作 PowerPoint 簡報時，使用影片往往能讓簡報更生動。尤其是在介紹旅遊景點或特定主題時，影片可以幫助聽眾快速融入，比單純口頭講解更有效。&lt;/p&gt;&lt;p data-end=&quot;271&quot; data-start=&quot;211&quot;&gt;許多時候，我們會使用 &lt;strong data-end=&quot;235&quot; data-start=&quot;222&quot;&gt;官方提供的介紹影片&lt;/strong&gt;，例如旅遊局、景點官方頻道或授權素材，這些影片能確保資訊正確且合法。&lt;/p&gt;&lt;p data-end=&quot;243&quot; data-start=&quot;162&quot;&gt;

&lt;/p&gt;&lt;p data-end=&quot;360&quot; data-start=&quot;273&quot;&gt;不過，在簡報現場直接串流播放影片，最常遇到的問題就是 &lt;strong data-end=&quot;308&quot; data-start=&quot;300&quot;&gt;網路不穩&lt;/strong&gt;。因此，很多人會選擇事先準備好影片檔案，並直接嵌入 PowerPoint，這樣就能確保播放過程順暢。&lt;/p&gt;&lt;h3 data-end=&quot;396&quot; data-start=&quot;367&quot;&gt;不是所有影片都能直接插入 PowerPoint&lt;/h3&gt;&lt;p data-end=&quot;477&quot; data-start=&quot;397&quot;&gt;即使手上已有官方影片檔案，&lt;strong data-end=&quot;440&quot; data-start=&quot;410&quot;&gt;並不是每個影片格式都能被 PowerPoint 支援&lt;/strong&gt;。有些影片插入後，可能會出現「無法播放」或「只有聲音沒有畫面」的問題。&lt;/p&gt;&lt;p data-end=&quot;360&quot; data-start=&quot;273&quot;&gt;

&lt;/p&gt;&lt;p data-end=&quot;545&quot; data-start=&quot;479&quot;&gt;遇到這種情況時，就可以透過 &lt;strong data-end=&quot;503&quot; data-start=&quot;493&quot;&gt;FFmpeg&lt;/strong&gt; 這個工具，將影片轉換成相容的格式，讓它能在 PowerPoint 中順利播放。&lt;br /&gt;&lt;br /&gt;⚠️ 請注意：本文僅適用於 &lt;strong data-end=&quot;582&quot; data-start=&quot;563&quot;&gt;官方影片或你擁有使用授權的影片&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;



&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjxnBKmae_lAjbMYY4o8ZB-YO3mAzObZihBjC7sQ8sZNv2fd74cO0X1-ooRMO7GjCRvzhEX3wcbHqJZkX5dNnkElhq-HHxjDCdirkKbe1fOlegRLX2VIGkDQ05YTty2JupE2zvmpo_7c2NEhWyLcDJ88vWxIR7K1dRdTYhGZ4aHJzyp1CSM-tTQ&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjxnBKmae_lAjbMYY4o8ZB-YO3mAzObZihBjC7sQ8sZNv2fd74cO0X1-ooRMO7GjCRvzhEX3wcbHqJZkX5dNnkElhq-HHxjDCdirkKbe1fOlegRLX2VIGkDQ05YTty2JupE2zvmpo_7c2NEhWyLcDJ88vWxIR7K1dRdTYhGZ4aHJzyp1CSM-tTQ=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 data-end=&quot;614&quot; data-start=&quot;592&quot;&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;使用 FFmpeg 轉檔官方影片&lt;/h3&gt;&lt;p data-end=&quot;673&quot; data-start=&quot;615&quot;&gt;FFmpeg 是一款免費且功能強大的開源工具，可以將影片轉換成各種格式，確保 PowerPoint 能順利播放。&lt;/p&gt;&lt;p data-end=&quot;648&quot; data-start=&quot;610&quot;&gt;

&lt;/p&gt;&lt;p data-end=&quot;718&quot; data-start=&quot;675&quot;&gt;以下是常見的轉檔指令，能把影片轉換成 PowerPoint 支援的 MP4 格式：&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;&lt;pre&gt;&lt;pre style=&quot;white-space: normal;&quot;&gt;&lt;pre&gt;ffmpeg -i sourcefile&amp;nbsp; -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 192k outputfile&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-size: medium;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;轉換後的影片就能順利插入 PowerPoint，不用再擔心無法播放的問題。&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/3127380908796731546/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/3127380908796731546?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/3127380908796731546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/3127380908796731546'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/08/ffmpeg-powerpoint.html' title='FFmpeg 轉檔影片，順利插入 PowerPoint 簡報'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjxnBKmae_lAjbMYY4o8ZB-YO3mAzObZihBjC7sQ8sZNv2fd74cO0X1-ooRMO7GjCRvzhEX3wcbHqJZkX5dNnkElhq-HHxjDCdirkKbe1fOlegRLX2VIGkDQ05YTty2JupE2zvmpo_7c2NEhWyLcDJ88vWxIR7K1dRdTYhGZ4aHJzyp1CSM-tTQ=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-1813188789459807795</id><published>2025-08-18T08:30:00.001+08:00</published><updated>2025-08-18T08:30:00.117+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogger"/><category scheme="http://www.blogger.com/atom/ns#" term="內容審核"/><category scheme="http://www.blogger.com/atom/ns#" term="文章下架"/><title type='text'>文章遭 Blogger 下架，究竟違反了什麼規範？</title><content type='html'>&lt;p&gt;2025.08.01 我收到了一封來自 Blogger 的來信，信中提到我的文章被檢舉下架，但是我從信件內容卻無法確切的得知是違反了哪一條規定。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhA9-zNQJydSxbudYJ9Ltw2f96Ap6JmJ3iSfKO-AJeoy0TvI8LsDenx8zWH6Y3_fMKiF9eVIFfbX51Aa3s_0Rz_ePmRzEKryhFLCY4C0XMgF74lpr_bOt6L-yX6DWcIPyCmzqSusojxe9_0ddP0GmU_0Pyk_I1HMwVHV9X6qiH33HwWyGpSLayO&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;示意圖&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhA9-zNQJydSxbudYJ9Ltw2f96Ap6JmJ3iSfKO-AJeoy0TvI8LsDenx8zWH6Y3_fMKiF9eVIFfbX51Aa3s_0Rz_ePmRzEKryhFLCY4C0XMgF74lpr_bOt6L-yX6DWcIPyCmzqSusojxe9_0ddP0GmU_0Pyk_I1HMwVHV9X6qiH33HwWyGpSLayO=w640-h640&quot; title=&quot;示意圖&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;下面為系統的來信&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgGIv-0EedFlXYHWFNWevWj9sUI3PPnSEYXhPcKzvDmz8TUi02Ut365CsBEKzCXtuII9KRIPU_jsnqN1FQWwqKi6S4njbeTQVxabmLXjbhnSXFEstfhMe2VwGt19-NBXqUg-Wh7HBVgb1gzT_vNCROnsAm3U5RLhCKom1FlkCK-4MJLHA1JrD1H&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;525&quot; data-original-width=&quot;1513&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgGIv-0EedFlXYHWFNWevWj9sUI3PPnSEYXhPcKzvDmz8TUi02Ut365CsBEKzCXtuII9KRIPU_jsnqN1FQWwqKi6S4njbeTQVxabmLXjbhnSXFEstfhMe2VwGt19-NBXqUg-Wh7HBVgb1gzT_vNCROnsAm3U5RLhCKom1FlkCK-4MJLHA1JrD1H=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;我自己猜測可能的原因：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;著作權問題&lt;br /&gt;&lt;br /&gt;這篇文章是單純記錄我是怎麼修改的，&lt;b&gt;在文章的內容與結尾&lt;/b&gt;都有附上參考的連結，記錄我自己部落格程式碼修改前、修改後的結果。如果要說可能有抄襲的部分就屬這個程式碼的部分了，但是大家都使用同樣的平台，結構部分本來就一樣，照理說應該不會有著作權的問題。&lt;br /&gt;&lt;br /&gt;我在網路上有看到其他人文章被系統判定下降的狀況，更糟糕的是審核通過後短時間內又被下架。也有人也有類似的狀況，附上參考連結然後被下架，申訴後又在恢復上架。&lt;br /&gt;&lt;br /&gt;所以我猜我可能也是程式誤判吧？不過我還是稍微修改了一下文章，再特別標註參考來源，並且說明這篇文章已經過時。再次送出審核，幾個小時後就通過了。&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj9tY2XI0mjpz3kasBCRNBJWP2yDQe5E9_fHMZd7k9JtcChEJkR5QIoV3LoU3n3gRreJmcXxJlXttpfPUFKH1sVHWwe1ZOnDGX6ASjv6yUvKgR6f8TQbeMp16ocqzat1CSsZBy4EiKFA9zKRK98-lUU0AC58IxlqBcJuyDkj5tMpmhx-wQeljXl&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;311&quot; data-original-width=&quot;1510&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj9tY2XI0mjpz3kasBCRNBJWP2yDQe5E9_fHMZd7k9JtcChEJkR5QIoV3LoU3n3gRreJmcXxJlXttpfPUFKH1sVHWwe1ZOnDGX6ASjv6yUvKgR6f8TQbeMp16ocqzat1CSsZBy4EiKFA9zKRK98-lUU0AC58IxlqBcJuyDkj5tMpmhx-wQeljXl=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;過時的資訊&lt;br /&gt;&lt;br /&gt;當然，文章也有可能被別人檢舉。如果剛好文章是發佈在 Google 的平台，是可以檢舉讓文章下架的。不過從選單中是沒有辦法選擇著作權這個項目，剩下有可能的項目大概就是垃圾訊息這一項了。&lt;br /&gt;&lt;br /&gt;畢竟 Google Search Console 改規則是 2020 年的事情，而我是在 2023年看到才改的，改完順便紀錄一下，不過就資訊面來說，算是過時的資訊，如果真的被檢舉垃圾文章，那也真是沒有辦法。&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;b&gt;※相關文章&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2023/04/data-vocabularyorg.html&quot; target=&quot;_blank&quot;&gt;Google Search Console 淘汰 data-vocabulary.org 的結構定義&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/1813188789459807795/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/1813188789459807795?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/1813188789459807795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/1813188789459807795'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/08/blogger.html' title='文章遭 Blogger 下架，究竟違反了什麼規範？'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhA9-zNQJydSxbudYJ9Ltw2f96Ap6JmJ3iSfKO-AJeoy0TvI8LsDenx8zWH6Y3_fMKiF9eVIFfbX51Aa3s_0Rz_ePmRzEKryhFLCY4C0XMgF74lpr_bOt6L-yX6DWcIPyCmzqSusojxe9_0ddP0GmU_0Pyk_I1HMwVHV9X6qiH33HwWyGpSLayO=s72-w640-h640-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-7002194546766218503</id><published>2025-08-11T10:30:00.002+08:00</published><updated>2025-08-11T12:55:24.151+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Toastmasters"/><title type='text'>Toastmasters Annual Business Meeting Designate Proxyholder 指定代理投票人設定教學</title><content type='html'>&lt;p&gt;每年，國際演講會（Toastmasters International）都會舉行世界年會（Annual Business Meeting），針對各項議案與重要事項進行討論與表決，比方說選出下一屆的幹部或是&amp;nbsp;&lt;a href=&quot;https://www.toastmasters.org/events/annual-business-meeting/2025-proposals&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;章程&lt;/a&gt;&amp;nbsp;上的修改。&lt;/p&gt;&lt;p&gt;根據制度，每個分會有兩票，而分會的會長（Club President）&lt;span data-end=&quot;164&quot; data-start=&quot;159&quot;&gt;與&lt;/span&gt;秘書長（Club Secretary）可以至系統上設定代理人。投票方式採用線上投票，如果沒有辦法出席，則可透過總會網站填寫代理申請表，將投票權授予給分會會員、其他分會會員，甚至是 District Director，由他們代為行使投票。&lt;/p&gt;&lt;p&gt;&lt;b&gt;如果您能夠參加投票，也還是需要在系統上設定自己，才具備投票資格&lt;/b&gt;。今年的作業程序期間在2025年的&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;7月10日至8月15日&lt;/span&gt;&lt;/b&gt;。&lt;/p&gt;&lt;p&gt;登入總會的官網後，進入「Club Proxy &amp;amp; Voting Instructions」頁面&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgPOnq1zmX4raBel4_sjkxFkzvQeYMEJfr6-EYsfFB_QGhcPLEkOXvEs8wXkiDwuB44UjtSnvmcaA8lO_r61tUWD0X4m4z6xCcXmPvnD06AcW7z_uElq1EQAPeiVt5OzuhqVhG7jkjIr8--ai5sMOVx9BkNmMmqfz3b7w0OIrjEUgCK84rg1xj7&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Club Proxy &amp;amp; Voting Instructions&quot; data-original-height=&quot;1916&quot; data-original-width=&quot;1920&quot; height=&quot;637&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiDnlrENIp0xZLOT6JhHQvnLHaxLQzU7Ibkyatk6Ex3OcFzOyZD85qGfVkEf-Bvx2h8FFMNb5_EkSOYUVCPg5oGbwRc5yjFk_N8ImzGi9mV-LJCyia0w9nOZpyYxpNh5mWFQQXUmr7giaJVXugR5mIh8jd5rvKJIdBcRCCh4_6cxTVccLVWDn4Y=w640-h637&quot; title=&quot;Club Proxy &amp;amp; Voting Instructions&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; margin-left: 1em; margin-right: 1em; text-align: left;&quot;&gt;接下來，選擇 Designate Proxyholder&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; margin-left: 1em; margin-right: 1em; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgPOnq1zmX4raBel4_sjkxFkzvQeYMEJfr6-EYsfFB_QGhcPLEkOXvEs8wXkiDwuB44UjtSnvmcaA8lO_r61tUWD0X4m4z6xCcXmPvnD06AcW7z_uElq1EQAPeiVt5OzuhqVhG7jkjIr8--ai5sMOVx9BkNmMmqfz3b7w0OIrjEUgCK84rg1xj7&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Designate Proxyholder&quot; data-original-height=&quot;800&quot; data-original-width=&quot;1812&quot; height=&quot;282&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgPOnq1zmX4raBel4_sjkxFkzvQeYMEJfr6-EYsfFB_QGhcPLEkOXvEs8wXkiDwuB44UjtSnvmcaA8lO_r61tUWD0X4m4z6xCcXmPvnD06AcW7z_uElq1EQAPeiVt5OzuhqVhG7jkjIr8--ai5sMOVx9BkNmMmqfz3b7w0OIrjEUgCK84rg1xj7=w640-h282&quot; title=&quot;Designate Proxyholder&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;選擇可以代為投票的人員&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhZidzxcetsRExolZLmdcOJVSYOv1dMyJnp5o2sH1HehHBeTSlNF5oIInW2c99J90pSKvdqUrswA60m7wwmAcBiKpbKlUJFgzYhrsnydeSCvYkRuOkLD-UjB2UcFTwFk2ag1R4TS9riLq5-Knp1h7MVw5o2A_uyCrIL2wK6zMfw0-vdkdCDnZXm&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;設定投票的代理人&quot; data-original-height=&quot;706&quot; data-original-width=&quot;1920&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhZidzxcetsRExolZLmdcOJVSYOv1dMyJnp5o2sH1HehHBeTSlNF5oIInW2c99J90pSKvdqUrswA60m7wwmAcBiKpbKlUJFgzYhrsnydeSCvYkRuOkLD-UjB2UcFTwFk2ag1R4TS9riLq5-Knp1h7MVw5o2A_uyCrIL2wK6zMfw0-vdkdCDnZXm=w640-h236&quot; title=&quot;設定投票的代理人&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;接下來按下繼續&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjjMp0XXzkEm0FpZT5Twj5tZ8PeTWAkLTjQbUXemJ5q1CZZ8zZFJ95JXB4JzWZeDZNbKddDkuAdUhNbETzj83jFE9jK49jKem-Of0c3ROXH9-Sjl6Z5s3crrOuPCXaUs58Xw9cHxj59EQM96CbFhHjgW-2lt4TOFSncb16NM-zAPT1EFw9kKqAY&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Designate Proxyholder&quot; data-original-height=&quot;490&quot; data-original-width=&quot;1920&quot; height=&quot;164&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjjMp0XXzkEm0FpZT5Twj5tZ8PeTWAkLTjQbUXemJ5q1CZZ8zZFJ95JXB4JzWZeDZNbKddDkuAdUhNbETzj83jFE9jK49jKem-Of0c3ROXH9-Sjl6Z5s3crrOuPCXaUs58Xw9cHxj59EQM96CbFhHjgW-2lt4TOFSncb16NM-zAPT1EFw9kKqAY=w640-h164&quot; title=&quot;Designate Proxyholder&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;接下來按下繼續&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhNgzrS5NXdC3R5cxNAJbxwwM76QoS2dhdqtfPGL68qEr4JflAg4gItacgutZLhrcc_sH2kvRgnzdJg_tkfWowNIR0zcGSxbjLXTR0acHWn3mb7BjA47SKGcFqgCP7SPHMnuC299YqcV6dIo9pDEqNERAZ57dILsp7uE9JROU0j6IW0Ni6bIcQG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Designate Proxyholder&quot; data-original-height=&quot;596&quot; data-original-width=&quot;1920&quot; height=&quot;198&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhNgzrS5NXdC3R5cxNAJbxwwM76QoS2dhdqtfPGL68qEr4JflAg4gItacgutZLhrcc_sH2kvRgnzdJg_tkfWowNIR0zcGSxbjLXTR0acHWn3mb7BjA47SKGcFqgCP7SPHMnuC299YqcV6dIo9pDEqNERAZ57dILsp7uE9JROU0j6IW0Ni6bIcQG=w640-h198&quot; title=&quot;Designate Proxyholder&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;因為我選擇的是 District Director，系統會自動帶出總會長的名字，如果想要更改，可以點選 Edit ，可以再更改成分會會員、其他分會會員。&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhVZ_nWTDMQN44KwocLEgJQzJZ5rixIZhr-ytTOSgCihTqN1nA6PTzwralj1u3xbYyAAzl-ot014M1NFPlc3UZOuwXO18bHS5E16bujzOh1OPW1P_e31ovhPId0pBrdYgcO7PQaHP3CR3d7EU_JcQrl4-R0-zgk_-JvTfCnO7Tej8MyPHfpf8jc&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;確認代理人&quot; data-original-height=&quot;1708&quot; data-original-width=&quot;1920&quot; height=&quot;569&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhVZ_nWTDMQN44KwocLEgJQzJZ5rixIZhr-ytTOSgCihTqN1nA6PTzwralj1u3xbYyAAzl-ot014M1NFPlc3UZOuwXO18bHS5E16bujzOh1OPW1P_e31ovhPId0pBrdYgcO7PQaHP3CR3d7EU_JcQrl4-R0-zgk_-JvTfCnO7Tej8MyPHfpf8jc=w640-h569&quot; title=&quot;確認代理人&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;最後就會看到報告，就表示已經設定完成。&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;img alt=&quot;Club Proxy Assignment Summary&quot; data-original-height=&quot;1204&quot; data-original-width=&quot;1920&quot; height=&quot;401&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiN0lmAZTds_1bU2fWYS5CBIkzDirfS6pvrdAB7q1oGIEd10uk8FT4rz77jqLq6YbuRrXONZFtj04NE5eYBmXIShBLiolm9BfEwTrCmJOVJQg7rKxJg8nqPWsk8zLwzSgw-JudqIYUbIQFgS83rkwN2uQmRtNXrkDuhJDsMyesHRSCvtqbvGHyr=w640-h401&quot; title=&quot;Club Proxy Assignment Summary&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;如果想要更改代理人，再次進入「Club Proxy &amp;amp; Voting Instructions」頁面還可以再進行設定，不過也請記得在時限內處理完畢。&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgSdTZLUfjEaJA6UiUr3H4OjH5soXbrI-eq0qtMz8oaCzW6Ykegj2Iu9nlJyUYk2pHcl8unzU8MnLroyb7JGQakH-oNTOpKpCmJAulVmtDTu8Ub2v37fw9x5pJSGzI1Z1AABYD3weMHL_8gA_-p4E5gwYA8-gXBOdghdfJxK4MPkOr82JcCNS5x&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;再次進入 Club Proxy &amp;amp; Voting Instructions 會看到已經設定好的代理人&quot; data-original-height=&quot;1428&quot; data-original-width=&quot;1920&quot; height=&quot;476&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgSdTZLUfjEaJA6UiUr3H4OjH5soXbrI-eq0qtMz8oaCzW6Ykegj2Iu9nlJyUYk2pHcl8unzU8MnLroyb7JGQakH-oNTOpKpCmJAulVmtDTu8Ub2v37fw9x5pJSGzI1Z1AABYD3weMHL_8gA_-p4E5gwYA8-gXBOdghdfJxK4MPkOr82JcCNS5x=w640-h476&quot; title=&quot;再次進入 Club Proxy &amp;amp; Voting Instructions 會看到已經設定好的代理人&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/07/20250712-club-success-plan.html&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/07/20250712-club-success-plan.html&quot; target=&quot;_blank&quot;&gt;2025.07.12 分會成功計畫 Club Success Plan 筆記&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/7002194546766218503/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/7002194546766218503?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/7002194546766218503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/7002194546766218503'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/08/toastmasters-annual-business-meeting.html' title='Toastmasters Annual Business Meeting Designate Proxyholder 指定代理投票人設定教學'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiDnlrENIp0xZLOT6JhHQvnLHaxLQzU7Ibkyatk6Ex3OcFzOyZD85qGfVkEf-Bvx2h8FFMNb5_EkSOYUVCPg5oGbwRc5yjFk_N8ImzGi9mV-LJCyia0w9nOZpyYxpNh5mWFQQXUmr7giaJVXugR5mIh8jd5rvKJIdBcRCCh4_6cxTVccLVWDn4Y=s72-w640-h637-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-1401402334552587457</id><published>2025-08-07T21:25:00.004+08:00</published><updated>2025-08-22T10:01:44.095+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Palladium"/><category scheme="http://www.blogger.com/atom/ns#" term="Palladium Boots"/><category scheme="http://www.blogger.com/atom/ns#" term="Palladium Taiwan"/><category scheme="http://www.blogger.com/atom/ns#" term="UNBOXING"/><category scheme="http://www.blogger.com/atom/ns#" term="防水靴"/><title type='text'>開箱文：Palladium Boot 來自法國品牌的靴子</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;前一陣子在市區逛街，想說要買雙新的慢跑鞋來跑馬拉松，結果市區逛街晃一晃後發現到這個來法國的品牌的靴子 Palladium，一不小心就把這雙鞋給帶回家了！剛好配合最近這溼溼答答的天氣，這種天氣穿甚麼鞋子都不對，穿靴子就對啦！&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-me9YJZx8LGTCudTnCNOx9Ki2frTOpEMAi_mxLXQRZj2UhbsngeXHgiwcbskjNq1hBvoH-aKE_jy6NDrfnP39ohC25Q3AAbqCSmpl4IE8zIwTgtoCUsL1VCYcL31b-QQV8Ezf/s1600/PalladiumBoot_01.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Palladium 鞋盒&quot; border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-me9YJZx8LGTCudTnCNOx9Ki2frTOpEMAi_mxLXQRZj2UhbsngeXHgiwcbskjNq1hBvoH-aKE_jy6NDrfnP39ohC25Q3AAbqCSmpl4IE8zIwTgtoCUsL1VCYcL31b-QQV8Ezf/w400-h300/PalladiumBoot_01.JPG&quot; title=&quot;Palladium 鞋盒&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
在市區以前是唱片行競爭激烈，現在是鞋店競爭激烈，在這短短兩百公尺左右就有數十家鞋店，大部分品牌的鞋子在市區逛都買的到，只不過有賣 Palladium 這個品牌的店並不多，目前在市區我只發現到一家，即便是在台北有賣的專櫃也不多。&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLEevK9EhVI6zGlblpOWEcmieb9IK0PkghZfQuSJTC_aQtVQkkJCHLGGoBpRIl6N6vaB1iYRktEZMZ5NT5ywLyMUJ9yi50c1VVovmFjsVtkRu0AQbdJhGQ28gs-uuTCGx94plN/s1600/PalladiumBoot_02.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLEevK9EhVI6zGlblpOWEcmieb9IK0PkghZfQuSJTC_aQtVQkkJCHLGGoBpRIl6N6vaB1iYRktEZMZ5NT5ywLyMUJ9yi50c1VVovmFjsVtkRu0AQbdJhGQ28gs-uuTCGx94plN/s400/PalladiumBoot_02.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;&lt;span style=&quot;background-color: white; color: #444444; font-family: , serif; font-size: 16px; line-height: 21.1px; text-indent: -24px;&quot;&gt;▼這是款能夠反摺的靴子，想要反摺的話旁邊有扣子可以扣起來&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh95AsggmoFRIkvYcjxwukzkY1L50D8vjVW4WQYbaMQEjiq6jwI2pnRQnFNPkFDghVVRVjT1xwbDPgKeYJnGzV6Tl24u11E4EvvPFK0XpCsxSuksozhPFOIyt22knTXllRKvT-y/s1600/PalladiumBoot_03.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh95AsggmoFRIkvYcjxwukzkY1L50D8vjVW4WQYbaMQEjiq6jwI2pnRQnFNPkFDghVVRVjT1xwbDPgKeYJnGzV6Tl24u11E4EvvPFK0XpCsxSuksozhPFOIyt22knTXllRKvT-y/s400/PalladiumBoot_03.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;&lt;span style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: , serif; font-size: 16px; line-height: 21.1px; text-align: center; text-indent: -24px;&quot;&gt;▼鞋底還頗高的，不過穿起來覺得非常舒適一點也不會覺得鞋底很硬&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9onfoL3P6BD0PIteLTBsqYW_Cc9gitjApHLIfAJ6zgULrGeGTMfGQ4iAj2-Bf7Em4lBqJb8g1z5G0bLAhtgxGT_BCuA4IP35JNWg1DnYt_7Vp9EFm3GTFBWZEK6dK4D301GzC/s1600/PalladiumBoot_04.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9onfoL3P6BD0PIteLTBsqYW_Cc9gitjApHLIfAJ6zgULrGeGTMfGQ4iAj2-Bf7Em4lBqJb8g1z5G0bLAhtgxGT_BCuA4IP35JNWg1DnYt_7Vp9EFm3GTFBWZEK6dK4D301GzC/s400/PalladiumBoot_04.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&amp;nbsp;&lt;span style=&quot;background-color: white; color: #444444; font-family: , serif; font-size: 16px; line-height: 21.1px; text-indent: -24px;&quot;&gt;▼靴子正常的高度&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4X56BuQwL03OX3TzjPjwJpL1kDti5Q9LJxC-gYJH924NBzYvlEg_RaJcoPetQDfwBKmFoa2auu6JcvP3FfhrJ5-ZBOc9vzUgaq4bPNzE6DFumrvOQoOmT5c0RR4fKCHyXDogg/s1600/PalladiumBoot_05.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4X56BuQwL03OX3TzjPjwJpL1kDti5Q9LJxC-gYJH924NBzYvlEg_RaJcoPetQDfwBKmFoa2auu6JcvP3FfhrJ5-ZBOc9vzUgaq4bPNzE6DFumrvOQoOmT5c0RR4fKCHyXDogg/s400/PalladiumBoot_05.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #444444; font-family: , serif; font-size: 16px; line-height: 21.1px; text-indent: -24px;&quot;&gt;▼正常高度&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhzE3kRep9w21dlNPkVG5W5DYV8jcBsdkcx1hL6VvJkt-xsku0jn-pval6R6Q96InEkX-0NOrLJbSSJg3k50gdeBobmy6ZEcHjSmCpyPUZP7HZd6ADtlKn9X9AO4BHZEmIRNKw/s1600/PalladiumBoot_06.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhzE3kRep9w21dlNPkVG5W5DYV8jcBsdkcx1hL6VvJkt-xsku0jn-pval6R6Q96InEkX-0NOrLJbSSJg3k50gdeBobmy6ZEcHjSmCpyPUZP7HZd6ADtlKn9X9AO4BHZEmIRNKw/s400/PalladiumBoot_06.JPG&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;&lt;span style=&quot;background-color: white; color: #444444; font-family: , serif; font-size: 16px; line-height: 21.1px; text-align: center; text-indent: -24px;&quot;&gt;▼反摺後的高度&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNSyr7ipuComkQI_ITPg288Hxx677ab8vbJOUGCLdzuUXHhSZ5KGo9dVhTRLStdgN5n7UaRGeKzrcSGzYo04_l2WunYQgP7JT29_sm6awRfNscyRgDneUh-3kIbO3UqDw88Ik5/s1600/PalladiumBoot_07.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNSyr7ipuComkQI_ITPg288Hxx677ab8vbJOUGCLdzuUXHhSZ5KGo9dVhTRLStdgN5n7UaRGeKzrcSGzYo04_l2WunYQgP7JT29_sm6awRfNscyRgDneUh-3kIbO3UqDw88Ik5/s400/PalladiumBoot_07.JPG&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;&lt;span style=&quot;background-color: white; color: #444444; font-family: , serif; font-size: 16px; line-height: 21.1px; text-indent: -24px;&quot;&gt;▼&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: , serif; font-size: 16px; line-height: 21.1px; text-indent: -24px;&quot;&gt;這款是靴子是防潑水的，鞋面上這片是縫起來一片的，所以不用擔心雨從鞋帶的縫隙中滲透進來&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5XS9BUz1be5sUQfo007fKZbsCoVK5uEtL1VbWQH_D610ufYOtyV25eLH9TLTV1mL2SUXzBVxF0w0OJsBs5LrbqPQVJ27fiLrrFs-57w7q5MDb871oE4AzPkGSUIAJSEcwb2Ye/s1600/PalladiumBoot_09.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5XS9BUz1be5sUQfo007fKZbsCoVK5uEtL1VbWQH_D610ufYOtyV25eLH9TLTV1mL2SUXzBVxF0w0OJsBs5LrbqPQVJ27fiLrrFs-57w7q5MDb871oE4AzPkGSUIAJSEcwb2Ye/s400/PalladiumBoot_09.JPG&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&amp;nbsp;&lt;span style=&quot;background-color: white; color: #444444; font-family: , serif; font-size: 16px; line-height: 21.1px; text-indent: -24px;&quot;&gt;▼&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: , serif; font-size: 16px; line-height: 21.1px; text-indent: -24px;&quot;&gt;鞋底&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPkh-37YB7ntTZmLgNWceCnlckxSkvoyECm9DAamo6qD3bQ6zkZ715TmkYNLWXqB31Y5fdORWmchImvtOKc4CsRHJXLfgPnjd-6ZZ3NQcAheHxdnJ-MEn2NTOR3DTu5a8UZi1q/s1600/PalladiumBoot_10.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPkh-37YB7ntTZmLgNWceCnlckxSkvoyECm9DAamo6qD3bQ6zkZ715TmkYNLWXqB31Y5fdORWmchImvtOKc4CsRHJXLfgPnjd-6ZZ3NQcAheHxdnJ-MEn2NTOR3DTu5a8UZi1q/s400/PalladiumBoot_10.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRhUisDpx72LdqA23wxBXMJQKmWEGb81zGNE_zUFDCfnuv0QZEWWSbRTyqh5rF2k-A4aYq83dLKpqeE86En6Vuq8Wba_hTUCPqenfO6PFfuxVfUKyCYg7ZoGH57UssGer91AnS/s1600/PalladiumBoot_11.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRhUisDpx72LdqA23wxBXMJQKmWEGb81zGNE_zUFDCfnuv0QZEWWSbRTyqh5rF2k-A4aYq83dLKpqeE86En6Vuq8Wba_hTUCPqenfO6PFfuxVfUKyCYg7ZoGH57UssGer91AnS/s400/PalladiumBoot_11.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;※心得&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
目前這款鞋子筆者穿了幾天後覺得這款鞋子非常好穿，鞋墊非常的柔軟和舒適不會有新鞋要適應的感覺。鞋子的重量上也相當輕盈，不會像&amp;nbsp;Timberland 那樣厚重，在透氣上是不會有悶熱的感覺，不過最近也剛好比較冷所以可能要等到夏天才會知道。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
除了這種皮的款式之外，也還有帆布的款式，不同的款式在中間這塊反摺的兩側會有不同的縫線方式，我買的這款在縫線上是比較細膩的，其他幾款會覺得縫線會有點隨便，不過我逛過三家門市都有發現到這樣的狀況，所以可能是不同的款式有不同的風格！&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNvLfhmboISncpW2-QSHu94YGbTcvNUbY9Y3iFlER-iGfpm0J-YnpASlK9kTaYOU-z6o33WJkcM9PVNU8AknbQF52ZD5f5r9Uqi0kvUilWbO7ywpXjKalx11nLyXbLEjqx0ONa/s1600/PalladiumBoot_08.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNvLfhmboISncpW2-QSHu94YGbTcvNUbY9Y3iFlER-iGfpm0J-YnpASlK9kTaYOU-z6o33WJkcM9PVNU8AknbQF52ZD5f5r9Uqi0kvUilWbO7ywpXjKalx11nLyXbLEjqx0ONa/s400/PalladiumBoot_08.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;
&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://rojerchen.blogspot.com/2015/12/palladium-water-proof-iv.html&quot;&gt;開箱文：經典回歸 Palladium Water Proof IV 防水靴&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2013/08/nike-lunarglide-5.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Nike 慢跑鞋 Nike Lunarglide 5&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/1401402334552587457/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/1401402334552587457?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/1401402334552587457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/1401402334552587457'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2012/12/palladium-boot.html' title='開箱文：Palladium Boot 來自法國品牌的靴子'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08819163490719899079</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-me9YJZx8LGTCudTnCNOx9Ki2frTOpEMAi_mxLXQRZj2UhbsngeXHgiwcbskjNq1hBvoH-aKE_jy6NDrfnP39ohC25Q3AAbqCSmpl4IE8zIwTgtoCUsL1VCYcL31b-QQV8Ezf/s72-w400-h300-c/PalladiumBoot_01.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-9208417854147829094</id><published>2025-08-07T08:30:00.006+08:00</published><updated>2025-08-08T17:43:36.607+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Jenkins"/><category scheme="http://www.blogger.com/atom/ns#" term="NuGet"/><title type='text'>無網路環境下，使用 Jenkins 編譯 .NET Core 並解決 NuGet 套件缺失問題</title><content type='html'>&lt;p&gt;近期需要在無網路的環境下透過 Jenkins 來編譯 Dotnet Core，在編譯的過程中發生了以下錯誤訊息，但是我卻又無法透過錯誤訊息得知到底是缺少了哪個 nuget package&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj1yF9KWm-h2cKa_2Qex6P5NJaTIDgCnpptPVTHtni9DP0vcxIqbXZcuToTCtlTMe92hCAX1McXxRvj82EeLJ60cz93sMQ9JjyrfRjXiJWldTl9szMWKlW7vG8OAcLcfgQs-IigxFqglIeC8KiAz4GDQ9DFczdjUkm_MdwE8IF6m8rEjtUnyss5&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;示意圖&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj1yF9KWm-h2cKa_2Qex6P5NJaTIDgCnpptPVTHtni9DP0vcxIqbXZcuToTCtlTMe92hCAX1McXxRvj82EeLJ60cz93sMQ9JjyrfRjXiJWldTl9szMWKlW7vG8OAcLcfgQs-IigxFqglIeC8KiAz4GDQ9DFczdjUkm_MdwE8IF6m8rEjtUnyss5=w640-h640&quot; title=&quot;示意圖&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;會有這樣的問題，主因當然是缺少了必要的 nuget package，在執行 dotnet build 的時候，如果有缺少 package，就會連線到 api.nuget.org 來抓取，而我的環境又無法連外，所以當然會出現錯誤訊息。&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhDVnpjBfr-xzXIgYJS_Z8HLD4ll9PDMvVGt2Jdygb5TeljXZLOa12ZQz-VYrd-ctWIkrv_Poc0WScbTORsiNX7tLyMo_9CskmG55whEc4l8P0xGhS7IBk5gETThDCh4hXggV_BV4zUPYDoF_0rpEan1gsWFT4mHzwIrUpSgHT6mdUo9hJlLr8A&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;dotnet resore 錯誤訊息&quot; data-original-height=&quot;660&quot; data-original-width=&quot;2879&quot; height=&quot;146&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhDVnpjBfr-xzXIgYJS_Z8HLD4ll9PDMvVGt2Jdygb5TeljXZLOa12ZQz-VYrd-ctWIkrv_Poc0WScbTORsiNX7tLyMo_9CskmG55whEc4l8P0xGhS7IBk5gETThDCh4hXggV_BV4zUPYDoF_0rpEan1gsWFT4mHzwIrUpSgHT6mdUo9hJlLr8A=w640-h146&quot; title=&quot;dotnet resore 錯誤訊息&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: red;&quot;&gt;warning NU1900: 取得套件弱點資料時發生錯誤: 無法載入來源 https://api.nuget.org/v3/index.json 的服務索引。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;為了要得知到底是缺少了哪個 package，首先要&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;先確認 Jenkins 執行時是使用哪個帳號執行，因為這會和你在命令列處理時使用的帳號不一樣&lt;/span&gt;&lt;/b&gt;，帳號不一樣，設定檔的位置也會有所不同。&lt;/p&gt;&lt;p&gt;先在 pipeline 來判斷是使用哪個帳號執行&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;&lt;pre&gt;&lt;pre style=&quot;white-space: normal;&quot;&gt;&lt;pre&gt;stage(&#39;Debug NuGet Config&#39;) {&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;steps {&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;bat &#39;&#39;&#39;&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;whoami&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;echo %APPDATA%&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;dir %APPDATA%\\NuGet&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;dotnet nuget locals all --list&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&#39;&#39;&#39;&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;}&lt;/pre&gt;&lt;pre&gt;}&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-size: medium;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;像我自己 Jenkins 執行時使用的帳號是&amp;nbsp;nt authority\system ，而對應的 nuget.config 如下&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;div style=&quot;font-size: medium;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;pre&gt;&lt;pre style=&quot;white-space: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;C:\Windows\System32\config\systemprofile\AppData\Roaming\NuGet&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;接下來修改以下內容，加入 clear 的目的在於，我不想要讓他最後又連接到 api.nuget.org&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;&lt;pre&gt;&lt;pre style=&quot;white-space: normal;&quot;&gt;&lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&lt;/pre&gt;&lt;pre&gt;&amp;lt;configuration&amp;gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp; &amp;lt;packageSources&amp;gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp; &amp;nbsp; &amp;lt;clear/&amp;gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp; &amp;nbsp; &amp;lt;add key=&quot;offline&quot; value=&quot;C:\nuget\packages&quot; /&amp;gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp; &amp;lt;/packageSources&amp;gt;&lt;/pre&gt;&lt;pre&gt;&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-size: medium;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;如果沒有加上 clear ，實際上在執行的時候，還會再去 %ProgramFiles(x86)%\NuGet\Config\ 檢查檔案是否存在，所以訊息上面會額外顯示 Microsoft Visual Studio Offline Packages ，而我自己的習慣是加上 clear 。&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;br /&gt;之後再執行 dotnet build 就會逐一列出缺少哪些項目，再把這些項目補齊就可以正常編譯了。&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&amp;nbsp;&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2023/03/visual-sutdio-net-nuget.html&quot; target=&quot;_blank&quot;&gt;Visual Sutdio 無法執行單元測試，未參考 .NET Nuget 配接器&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/08/jenkins-net-core-nuget.html&quot; target=&quot;_blank&quot;&gt;無網路環境下，使用 Jenkins 編譯 .NET Core 並解決 NuGet 套件缺失問題&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/9208417854147829094/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/9208417854147829094?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/9208417854147829094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/9208417854147829094'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/08/jenkins-net-core-nuget.html' title='無網路環境下，使用 Jenkins 編譯 .NET Core 並解決 NuGet 套件缺失問題'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEj1yF9KWm-h2cKa_2Qex6P5NJaTIDgCnpptPVTHtni9DP0vcxIqbXZcuToTCtlTMe92hCAX1McXxRvj82EeLJ60cz93sMQ9JjyrfRjXiJWldTl9szMWKlW7vG8OAcLcfgQs-IigxFqglIeC8KiAz4GDQ9DFczdjUkm_MdwE8IF6m8rEjtUnyss5=s72-w640-h640-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-3032724464187730021</id><published>2025-08-01T08:30:00.051+08:00</published><updated>2025-08-01T10:26:13.315+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google Search Console"/><category scheme="http://www.blogger.com/atom/ns#" term="GSC"/><category scheme="http://www.blogger.com/atom/ns#" term="SEO"/><title type='text'>Google Blogger SEO 的困境 - 網站權重</title><content type='html'>&lt;p&gt;近期在研究 SEO 的時候，發現到有不少免費的檢測工具，我發現到 &lt;a href=&quot;https://www.seoptimer.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SEOptimer&lt;/a&gt; 這個檢測工具還挺方便的，不僅免費還不用註冊帳號，一天有免費幾次的額度可以使用，如果超過了就隔天再來嘗試。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEirSI7tcdCkJB8rk-9fSIYx6cwaf4OBIAfExzszGvhNnxiRZ0zhmWAPua1CQnMkmMsufCPud_K4_ndIL8jsFtWsZg3ENPdWbazJNZiUqejyTdVK7WR58TuxPnuLSqRhkCPe2qLwzjVT0WNbcWmCDKsOXeSybj3ZHNpN_kwC_THVE5C8trakubtq&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;網站權重示意圖&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEirSI7tcdCkJB8rk-9fSIYx6cwaf4OBIAfExzszGvhNnxiRZ0zhmWAPua1CQnMkmMsufCPud_K4_ndIL8jsFtWsZg3ENPdWbazJNZiUqejyTdVK7WR58TuxPnuLSqRhkCPe2qLwzjVT0WNbcWmCDKsOXeSybj3ZHNpN_kwC_THVE5C8trakubtq=w640-h640&quot; title=&quot;網站權重示意圖&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;使用上非常的簡單，只需要輸入網址即可。&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgKhh-XX2zay42QBl-GSGHm0qY9OArFPGNG9zZm3BDpKQtfAD7ijlpk3QHBM4FOouysW9S3IUSHMhz-pemRMeNj-GVh2h9TD5rzH_UbzEYYWHWyHCcHsyodOvNye3Hju9bKIOLMPW7dRfqyCjhjKqc_zp4Pz0b7Vd3ruM8RiJF9tYYULoGzt132&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;SEOptimer  工具操作畫面&quot; data-original-height=&quot;558&quot; data-original-width=&quot;1821&quot; height=&quot;196&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgKhh-XX2zay42QBl-GSGHm0qY9OArFPGNG9zZm3BDpKQtfAD7ijlpk3QHBM4FOouysW9S3IUSHMhz-pemRMeNj-GVh2h9TD5rzH_UbzEYYWHWyHCcHsyodOvNye3Hju9bKIOLMPW7dRfqyCjhjKqc_zp4Pz0b7Vd3ruM8RiJF9tYYULoGzt132=w640-h196&quot; title=&quot;SEOptimer  工具操作畫面&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;從報告中，可以得知檢測會依據下面幾個項目來評分：&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;On-Page SEO&lt;/li&gt;&lt;li&gt;Links&lt;/li&gt;&lt;li&gt;Usability&lt;/li&gt;&lt;li&gt;Performance&lt;/li&gt;&lt;li&gt;Social&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;有一些項目是我們自己可以調整的，而其中最讓我最在意的，就是分數最低的 Link 這個項目&lt;/div&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgNcveriZJFM-lyenkyjahKpoIPAAxYXxvHtMsPwV1so95__g7oem-6kv5xHvi87zuHr8ymlbuES1C3EofPCPwEJ1quUZgP_QXkIYU98TONNcwbYQMjS4cKKJmWMED_9JqN2H__5zghvE7UIGmewV_QY-qxJ2Xj39dFuz_vHeJ4wRSOoy6vT-Yv&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;SEOptimer  報告&quot; data-original-height=&quot;744&quot; data-original-width=&quot;1271&quot; height=&quot;374&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgNcveriZJFM-lyenkyjahKpoIPAAxYXxvHtMsPwV1so95__g7oem-6kv5xHvi87zuHr8ymlbuES1C3EofPCPwEJ1quUZgP_QXkIYU98TONNcwbYQMjS4cKKJmWMED_9JqN2H__5zghvE7UIGmewV_QY-qxJ2Xj39dFuz_vHeJ4wRSOoy6vT-Yv=w640-h374&quot; title=&quot;SEOptimer  報告&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;過往在撰寫文章的時候，有時候會附加外部連結的網址，通常 HTML 內容會是下面這個樣子&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;div style=&quot;font-size: medium;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;pre&gt;&amp;lt;a href=&quot;網址&quot;&amp;gt;文字&amp;lt;/a&amp;gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;這樣寫是正確的，只不過從 SEO 的角度來說，它會認為你信任這個網站的連結，對方網站的 SEO 會引此受益。如果是你信任、推薦、合作的網站，使用這樣的方式是沒問題的。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;如果沒有透過工具檢測，我根本就不會知道有寫法上的差異。原本我使用這樣的方式添加了社群網站的連結，雖然我分享的權重給它，但是卻浪費了我的權重，最後就改用 nofollow 的方式。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;如果想了解更多，可以參考&amp;nbsp;&lt;a href=&quot;https://developers.google.com/search/docs/crawling-indexing/qualify-outbound-links?hl=zh-TW&amp;amp;authuser=0&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Google 搜尋中心&lt;/a&gt;&amp;nbsp;的教學。&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;div style=&quot;font-size: medium;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;pre&gt;&amp;lt;a href=&quot;網址&quot; rel=&quot;nofollow&quot;&amp;gt;不傳遞權重&amp;lt;/a&amp;gt;&lt;/pre&gt;&lt;pre&gt;&amp;lt;a href=&quot;網址&quot; rel=&quot;sponsored&quot;&amp;gt;贊助內容的連結&amp;lt;/a&amp;gt;&lt;/pre&gt;&lt;pre&gt;&amp;lt;a href=&quot;網址&quot; rel=&quot;ugc&quot;&amp;gt;表示使用者產生內容&amp;lt;/a&amp;gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;相反的，如果有越多的反向連結連到你的網站，除了可以增加流量，間接也會提升你網站的權重，像我自己最多反向連結的文章就是下面這兩篇。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2015/06/my-toastmasters-journey-16-tdd.html&quot; rel=&quot;&quot; target=&quot;_blank&quot;&gt;My Toastmasters Journey (16)：我從『自動測試與 TDD 實務開發』學到的授課小技巧&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2015/06/tdd.html&quot; target=&quot;_blank&quot;&gt;『自動測試與 TDD 實務開發』課後心得&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhkWedQIYpD0AHfKj0JNbX-aV9YWROY3x3GUwfaFbG0IKdJqgm67QA3nrPwNfnbhnB8yFLnd7QKoRLGCZn6UGBJe8a8nHQFQlzulhOoyqLa5AAPWqeJ1tYMXiAQO7KU2x-1rfsuMedp1J5xmCpOsXZ9mg3AEY6MB_xDMcj5boCBP2zJiNnGO6Vf&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;239&quot; data-original-width=&quot;1248&quot; height=&quot;122&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhkWedQIYpD0AHfKj0JNbX-aV9YWROY3x3GUwfaFbG0IKdJqgm67QA3nrPwNfnbhnB8yFLnd7QKoRLGCZn6UGBJe8a8nHQFQlzulhOoyqLa5AAPWqeJ1tYMXiAQO7KU2x-1rfsuMedp1J5xmCpOsXZ9mg3AEY6MB_xDMcj5boCBP2zJiNnGO6Vf=w640-h122&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;後來，我有發現到這套工具&amp;nbsp;&lt;a href=&quot;https://ahrefs.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;ahref&lt;/a&gt;&amp;nbsp;可以來觀看歷史權重紀錄，免費版每個月有一定的額度可以瀏覽一些資料。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;🔵 Referring Domains：外部連結網站數量&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;🟣 Domain Rating：整體網站權重&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;🟠 Organic Traffic：自然搜尋流量&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj5cgjW_lS3xtoAFsCx-8UeJjIDm14-LHA1synCcKdfIcbZEuN9nnEiij6p12cS-91SvJfOldFqsoOtRshcKD00kVekuLzgr7KrCR3Y0TSWkIdH016hI5Mr_X_IKrygXdSM5W9k9VJRyv4zdh0JfNTWLirdZeAXKU4R_S4AceCxf-P7KKm_1-7i&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;ahref Domain Traffic 流量統計&quot; data-original-height=&quot;649&quot; data-original-width=&quot;1463&quot; height=&quot;284&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj5cgjW_lS3xtoAFsCx-8UeJjIDm14-LHA1synCcKdfIcbZEuN9nnEiij6p12cS-91SvJfOldFqsoOtRshcKD00kVekuLzgr7KrCR3Y0TSWkIdH016hI5Mr_X_IKrygXdSM5W9k9VJRyv4zdh0JfNTWLirdZeAXKU4R_S4AceCxf-P7KKm_1-7i=w640-h284&quot; title=&quot;ahref Domain Traffic 流量統計&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;有一段時間，整個 blogspot.com 的 Domain Rating 曾被調高，加上當時剛好某些關鍵字被搜尋引擎特別青睞，那段期間 SEO 表現和實際點擊幾乎是同步上升。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;但好景不常，當 Google 不再推薦你的內容，流量很快就出現斷崖式下滑。即使後續幾年 Referring Domains 持續增加，卻沒能帶來實際的訪客。這也凸顯了，外部網站的推薦雖然重要，但要能真正「有效」，外部網站的品質與關聯性更關鍵。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;更慘的是，&lt;b&gt;後來整體的 Domain Rating 被調降，甚至低於最初起步的時候&lt;/b&gt;，不少文章也被移出搜尋索引，讓情況雪上加霜。一直以來我都沒買網域，或許課金綁個網域，更或者直接更換平台，也許可以改善這些問題。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;不過說到底，還是回到最根本的，持續寫出有品質的文章，並且讓文章彼此有關聯繫，看看能否有所改善。&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/05/google-blogger-seo_22.html&quot; target=&quot;_blank&quot;&gt;Google Blogger SEO 的困境 - 行動版網頁重導向錯誤&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/05/google-blogger-seo.html&quot; target=&quot;_blank&quot;&gt;Google Blogger SEO 的困境 - 消失的文章&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2023/04/data-vocabularyorg.html&quot; target=&quot;_blank&quot;&gt;Google Search Console 淘汰 data-vocabulary.org 的結構定義&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #0000ee;&quot;&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/05/google-blogger.html&quot; target=&quot;_blank&quot;&gt;Google Blogger 的困境 - 檢測你的網站，是否支援『複合式搜尋結果』&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/3032724464187730021/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/3032724464187730021?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/3032724464187730021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/3032724464187730021'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/08/google-blogger.html' title='Google Blogger SEO 的困境 - 網站權重'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEirSI7tcdCkJB8rk-9fSIYx6cwaf4OBIAfExzszGvhNnxiRZ0zhmWAPua1CQnMkmMsufCPud_K4_ndIL8jsFtWsZg3ENPdWbazJNZiUqejyTdVK7WR58TuxPnuLSqRhkCPe2qLwzjVT0WNbcWmCDKsOXeSybj3ZHNpN_kwC_THVE5C8trakubtq=s72-w640-h640-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-4885364449088923927</id><published>2025-07-28T11:18:00.002+08:00</published><updated>2025-09-04T00:33:16.885+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IIS"/><category scheme="http://www.blogger.com/atom/ns#" term="TECH"/><title type='text'>Web Deploy 已安裝卻不能用？快速排查與重新安裝</title><content type='html'>&lt;p&gt;最近接手一台 Windows Server 2022 的環境，想要安裝 Web Deploy 網站部屬工具，卻發生一個奇怪的狀況，就是系統顯示已經安裝，但是卻無法將網站透過 Web Deploy 的方式部屬到 IIS 上面。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgKatXIHRWyI_Qil5UCZRSME1uA9rlTdY-0A3ngmJ8RKaZRf7KYhSFHVTiRKd3crCivWIgLfgwj8aGgzIRslbo9_XheWr8LzmCljUdIsRbU4-ZYo2bl8Er-Y0sBlt_QeIeo38d6sWaT-nbqB_A70k0Sif46K1B3YPf6rq-vk7d4P7P7zzOK1kfk&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Web Deploy 安裝故障排除&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgKatXIHRWyI_Qil5UCZRSME1uA9rlTdY-0A3ngmJ8RKaZRf7KYhSFHVTiRKd3crCivWIgLfgwj8aGgzIRslbo9_XheWr8LzmCljUdIsRbU4-ZYo2bl8Er-Y0sBlt_QeIeo38d6sWaT-nbqB_A70k0Sif46K1B3YPf6rq-vk7d4P7P7zzOK1kfk=w640-h640&quot; title=&quot;Web Deploy 安裝故障排除&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;嘗試安裝的時候，卻顯示電腦上面安裝較新的版本，但是控制台卻查詢不到，只能一步步盤查到底是哪裡出了問題。&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgMTn9rlQBIK-XZGNbnHrDyPHNaFqfqw9KI8HYnT9BhVxD56JahI7LVn15Yn07cqa7ZACojECyrQiJw3FpWj81ZIgSSQTak7UZHH7g1XJDGdabcu8KdXoqwoEOFj-caZQ54Dpx9Gm6WqqvLiTJBxJSw5uyosKlh_dlLkauTs_kHqelIYAy6WZYn&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Web Deploy 失敗畫面&quot; data-original-height=&quot;479&quot; data-original-width=&quot;617&quot; height=&quot;498&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgMTn9rlQBIK-XZGNbnHrDyPHNaFqfqw9KI8HYnT9BhVxD56JahI7LVn15Yn07cqa7ZACojECyrQiJw3FpWj81ZIgSSQTak7UZHH7g1XJDGdabcu8KdXoqwoEOFj-caZQ54Dpx9Gm6WqqvLiTJBxJSw5uyosKlh_dlLkauTs_kHqelIYAy6WZYn=w640-h498&quot; title=&quot;Web Deploy 安裝失敗&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;檢查步驟：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;檢查控制台&lt;br /&gt;&lt;br /&gt;確認控制台沒有裝。&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;檢查安裝路徑 Program Files\IIS 是否有 Web Deploy 資料夾&lt;br /&gt;&lt;br /&gt;有，而且版本顯示為 7.x&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;既然已經有安裝了，那 Web Deploy 的功能是否能夠正常執行嗎？&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;不行&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;實測後發現 Web Deploy 功能無法正常使用。&lt;/p&gt;&lt;p&gt;主要問題是系統中缺少以下兩個帳號：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;WDeployAdmin&lt;/li&gt;&lt;li&gt;WDeployConfigWriter&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;這兩個帳號是 Web Deploy 進行授權與配置所需的角色帳號，若未建立，將無法透過 Web Deploy 將網站部署到 IIS 上。&lt;/p&gt;&lt;p&gt;安裝成功後，正常的情況會是下面這個樣子&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg3weQqQZa6vFrfFjqTBXpfb7gojqQGzUZP3Fp8LP91OVP9syW80_aPOgxxw84jDXjQJkMEp6vLMNOBiIJjmetfR9pBk4tC6w7Fm1ND4FaNi1-vDXttQkMiMjc7UmsbevpKLfH_n-pyyn5LtN2-Elz1Jq10BJ70pgOvKVLbRU0hQg9ks9aVaJTF&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;電腦管理畫面&quot; data-original-height=&quot;462&quot; data-original-width=&quot;1158&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg3weQqQZa6vFrfFjqTBXpfb7gojqQGzUZP3Fp8LP91OVP9syW80_aPOgxxw84jDXjQJkMEp6vLMNOBiIJjmetfR9pBk4tC6w7Fm1ND4FaNi1-vDXttQkMiMjc7UmsbevpKLfH_n-pyyn5LtN2-Elz1Jq10BJ70pgOvKVLbRU0hQg9ks9aVaJTF=w640-h256&quot; title=&quot;電腦管理畫面&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;既然如此，只能先移除再重新安裝了。&lt;/p&gt;&lt;p&gt;由於無法透過控制台移除，只能透過以下命令列方式來處理&lt;/p&gt;&lt;p&gt;首先，透過以下命令取得 id&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;div style=&quot;font-size: medium;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;pre&gt;&lt;pre style=&quot;white-space: normal;&quot;&gt;wmic product get name,identifyingnumber&lt;/pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;再來，透過以下命令反安裝&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;div style=&quot;font-size: medium;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;pre&gt;msiexec /x {identifyingnumber}&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;這樣處理完畢後，就可以安裝了。&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/4885364449088923927/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/4885364449088923927?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/4885364449088923927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/4885364449088923927'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/07/web-deploy.html' title='Web Deploy 已安裝卻不能用？快速排查與重新安裝'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgKatXIHRWyI_Qil5UCZRSME1uA9rlTdY-0A3ngmJ8RKaZRf7KYhSFHVTiRKd3crCivWIgLfgwj8aGgzIRslbo9_XheWr8LzmCljUdIsRbU4-ZYo2bl8Er-Y0sBlt_QeIeo38d6sWaT-nbqB_A70k0Sif46K1B3YPf6rq-vk7d4P7P7zzOK1kfk=s72-w640-h640-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-4059463054804076669</id><published>2025-07-17T11:50:00.003+08:00</published><updated>2025-08-11T22:09:37.022+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="My Toastmasters Journey"/><category scheme="http://www.blogger.com/atom/ns#" term="Toastmasters"/><title type='text'>2025.07.12 分會成功計畫 Club Success Plan 筆記</title><content type='html'>&lt;p&gt;今天參加了分會成功計畫（Club Success Plan）的說明會，簡單紀錄一下今年有哪些規則上的異動。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiTZysqyDImkLuaJGHzEEl5J8olF3kv_D75dxeKJtPJc_HVahOKhH_t4v9eUmy0rDP6XLKoKiqN_4Modr6O_DIQMTo6NzUuet8_VItKJ8A-zPbAkwohCRl4rLotA-ijA-2P5q7FjDV5w3X0I6F-s2vt0jc9V680AKmjBaSiztw0pYX4GmKSP3ES&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;844&quot; data-original-width=&quot;1080&quot; height=&quot;500&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiTZysqyDImkLuaJGHzEEl5J8olF3kv_D75dxeKJtPJc_HVahOKhH_t4v9eUmy0rDP6XLKoKiqN_4Modr6O_DIQMTo6NzUuet8_VItKJ8A-zPbAkwohCRl4rLotA-ijA-2P5q7FjDV5w3X0I6F-s2vt0jc9V680AKmjBaSiztw0pYX4GmKSP3ES=w640-h500&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;今年的變動如下：&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Club Successful Plan 需要在 9/30 前提交&lt;br /&gt;&lt;br /&gt;進入 Club Central 後，就可以看到 Club Successful Plan 的填寫項目。&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiLzRh8KvFspvVItCjPqeiy64RfPIfan6qSGPYOnpnFvDmi7ukafYhYdMDh87SyWqw0CtycI1V--oCJrbGnSjz5zmXYNs0nLSScDXN9ggZ5d4kE1qbIDnxUdoHywzlCWdia11R-ZCUDwPAQKWzmcVUUgoxG_Kfw8ZFVAdoIuluR1CVTvSfeMC3r&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Toastmaster Club Central&quot; data-original-height=&quot;544&quot; data-original-width=&quot;1479&quot; height=&quot;235&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiLzRh8KvFspvVItCjPqeiy64RfPIfan6qSGPYOnpnFvDmi7ukafYhYdMDh87SyWqw0CtycI1V--oCJrbGnSjz5zmXYNs0nLSScDXN9ggZ5d4kE1qbIDnxUdoHywzlCWdia11R-ZCUDwPAQKWzmcVUUgoxG_Kfw8ZFVAdoIuluR1CVTvSfeMC3r=w640-h235&quot; title=&quot;Toastmaster Club Central&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;我原本以為只需要填寫 Education 部分，沒想到還包含了 Membership、Training、Administration 等內容。稍微看了一下整體結構，覺得這份計畫其實跟以前我擔任 Area Director 時填寫的 Club Visit Report 有些相似，只是出發角度不同。&lt;br /&gt;&lt;br /&gt;其中最重要的，當然還是 Education 區塊。能夠一開始就掌握分會會員的學習狀況，有助於提早安排大家的演講進度，避免年度結束前才臨時抱佛腳。&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhq9hYXsE3POq8PO66I-FNHMEJL8syN677lCTX5MXOIhl1Yz3P07NbV9pX0XoC5Q112qoT-0CLVRRKLEGsctcQz9cCbYGjGFeYOhpxV7tq78RFvB_9kP3ioNYJ4b0kMX2tPlt0G7qgfQ8ipL5sWiFWBETzen_GfWrqhHGUohRysNJyOF1HQPitx&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Toastmaster Club Success Plan&quot; data-original-height=&quot;1222&quot; data-original-width=&quot;1200&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhq9hYXsE3POq8PO66I-FNHMEJL8syN677lCTX5MXOIhl1Yz3P07NbV9pX0XoC5Q112qoT-0CLVRRKLEGsctcQz9cCbYGjGFeYOhpxV7tq78RFvB_9kP3ioNYJ4b0kMX2tPlt0G7qgfQ8ipL5sWiFWBETzen_GfWrqhHGUohRysNJyOF1HQPitx=w393-h400&quot; title=&quot;Toastmaster Club Success Plan&quot; width=&quot;393&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;DCP 分數與條件異動&lt;br /&gt;&lt;p data-end=&quot;583&quot; data-start=&quot;512&quot;&gt;首先，今年必須先完成 Club Success Plan，才會開始計算 DCP（Distinguished Club Program）的積分。&lt;/p&gt;
&lt;p data-end=&quot;690&quot; data-start=&quot;585&quot;&gt;以往達成 9 分或 10 分都被稱為 &lt;strong data-end=&quot;633&quot; data-start=&quot;604&quot;&gt;President&#39;s Distinguished&lt;/strong&gt;，但今年 Toastmasters 將 10 分的等級改名為 &lt;strong data-end=&quot;689&quot; data-start=&quot;664&quot;&gt;Smedley Distinguished&lt;/strong&gt;。&lt;/p&gt;
&lt;p data-end=&quot;200&quot; data-start=&quot;162&quot;&gt;另外，9 分與 10 分的會員人數條件「達到固定人數門檻」也有所變更：&lt;/p&gt;&lt;p data-end=&quot;726&quot; data-start=&quot;692&quot;&gt;
&lt;/p&gt;&lt;ul data-end=&quot;263&quot; data-start=&quot;202&quot;&gt;
&lt;li data-end=&quot;220&quot; data-start=&quot;202&quot;&gt;
&lt;p data-end=&quot;220&quot; data-start=&quot;204&quot;&gt;達到 20 人可取得 9 分&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end=&quot;263&quot; data-start=&quot;221&quot;&gt;
&lt;p data-end=&quot;263&quot; data-start=&quot;223&quot;&gt;達到 25 人可取得 10 分（即 Smedley Distinguished）&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjFdOWbmhT4HH28RDQGKlgxWtQEHji6sU0YDjr4oGwz7YcmWZvNeQ3T0ewHJfopFNkFJ6alY67zBnwjrku05KTB1UEavJwvDWEv-78IfWmEH7Ga0k2_0jVGZ5nB-q_hh0L6X86DEWM2E9NWt-5W_pIWDmfDfxTkUnSFlisS7BWMU07UVUs1wzJm&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;Toastmaster DCP&quot; data-original-height=&quot;1098&quot; data-original-width=&quot;1466&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjFdOWbmhT4HH28RDQGKlgxWtQEHji6sU0YDjr4oGwz7YcmWZvNeQ3T0ewHJfopFNkFJ6alY67zBnwjrku05KTB1UEavJwvDWEv-78IfWmEH7Ga0k2_0jVGZ5nB-q_hh0L6X86DEWM2E9NWt-5W_pIWDmfDfxTkUnSFlisS7BWMU07UVUs1wzJm=w640-h480&quot; title=&quot;Toastmaster DCP&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Base Camp Manager&lt;br /&gt;&lt;br /&gt;我印象中以前只有 President、VPE 和 Secretary 擁有 Base Camp Manager 的審核權限。不過今年開始，所有的 Officer 都具備 Base Camp Manager 權限，可以登入 Base Camp 處理學習進度審核事宜。&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/08/toastmasters-annual-business-meeting.html&quot; target=&quot;_blank&quot;&gt;Toastmasters Annual Business Meeting Designate Proxyholder 指定代理投票人設定教學&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/4059463054804076669/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/4059463054804076669?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/4059463054804076669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/4059463054804076669'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/07/20250712-club-success-plan.html' title='2025.07.12 分會成功計畫 Club Success Plan 筆記'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiTZysqyDImkLuaJGHzEEl5J8olF3kv_D75dxeKJtPJc_HVahOKhH_t4v9eUmy0rDP6XLKoKiqN_4Modr6O_DIQMTo6NzUuet8_VItKJ8A-zPbAkwohCRl4rLotA-ijA-2P5q7FjDV5w3X0I6F-s2vt0jc9V680AKmjBaSiztw0pYX4GmKSP3ES=s72-w640-h500-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-1030684417800104682</id><published>2025-06-12T11:10:00.007+08:00</published><updated>2025-08-13T18:08:50.487+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JetBrains"/><category scheme="http://www.blogger.com/atom/ns#" term="ReSharper"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio Code"/><category scheme="http://www.blogger.com/atom/ns#" term="心得分享"/><title type='text'>ReSharper for Visual Studio Code 初體驗：功能有限，尚待觀望</title><content type='html'>&lt;p&gt;ReSharper 是由 JetBrains 開發的一款強大的 Visual Studio 擴充工具，主要用於 .NET 開發（C#、VB.NET、ASP.NET 等），提供大量的 程式碼輔助功能，幫助開發者提升生產力、改善程式碼品質。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja9-ZazJImUGlJlxtcTW8OJdcyvhvNpyJY8JYp5rfW-HDczwFgR_8ekg8MeEeyDt7SRT9Ep7TmlzsMFUhnx_Kg2I3ld_n13VisXY_Ile4bSRFPBmEupi7M9x1EFRZkTiUJvx5eluqQlIugcgMsbFq9CvK7NGnXDwh1uyQddeYtgCpegV0EyNVw/s238/ReSharperLogo.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;ReSharper Logo&quot; border=&quot;0&quot; data-original-height=&quot;224&quot; data-original-width=&quot;238&quot; height=&quot;301&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja9-ZazJImUGlJlxtcTW8OJdcyvhvNpyJY8JYp5rfW-HDczwFgR_8ekg8MeEeyDt7SRT9Ep7TmlzsMFUhnx_Kg2I3ld_n13VisXY_Ile4bSRFPBmEupi7M9x1EFRZkTiUJvx5eluqQlIugcgMsbFq9CvK7NGnXDwh1uyQddeYtgCpegV0EyNVw/w320-h301/ReSharperLogo.png&quot; title=&quot;ReSharper Logo&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;我自己在使用 JetBrains IDE 工具的時候，最常就是用到重構、&lt;span data-end=&quot;372&quot; data-start=&quot;363&quot;&gt;導覽與搜尋等功能&lt;/span&gt;，即便是現在 Visual Studio 2022 有了 Quick Action (&lt;a href=&quot;https://rojerchen.blogspot.com/2023/02/vs2022-refactor_27.html&quot; target=&quot;_blank&quot;&gt;參考文章&lt;/a&gt;)，使用上仍舊沒有 JetBrains 來的好用。有上過 Joey (91) 的極速開發，就知道帶來的效益到底有多大。&lt;/p&gt;&lt;p&gt;最近發現 ReSharper 居然上架到 Visual Studio Code ，想說來了解看看，看看原本在 JetBrains IDE 上面的那一套是否都可以搬過來使用。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgA875_Erc41us3W9ReX5i0mlWbTlceFKEUP7vuZcdL-oF-N3m1mz8a7SlEygPGyjmRTpqrPOD8A77sRsZ9jTp7aI5yAKuX03rw4XGAC0vfJmR1M2e5R4hxXzB1KU1a_52Y9vIcTxmS71bKlYQpzsQjtgWteXy2bny7JzIHDLooTxJDztGr87--&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;ReSharper for Visual Studio Code&quot; data-original-height=&quot;213&quot; data-original-width=&quot;644&quot; height=&quot;212&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgA875_Erc41us3W9ReX5i0mlWbTlceFKEUP7vuZcdL-oF-N3m1mz8a7SlEygPGyjmRTpqrPOD8A77sRsZ9jTp7aI5yAKuX03rw4XGAC0vfJmR1M2e5R4hxXzB1KU1a_52Y9vIcTxmS71bKlYQpzsQjtgWteXy2bny7JzIHDLooTxJDztGr87--=w640-h212&quot; title=&quot;ReSharper for Visual Studio Code&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;那這個擴充套件好不好用呢？先說結論，&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;目前產品仍不成熟，建議半年後再來觀望&lt;/span&gt;。&lt;/b&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;為什麼會這樣說呢？&lt;strong data-end=&quot;105&quot; data-start=&quot;82&quot;&gt;因為&lt;span style=&quot;color: red;&quot;&gt;目前最關鍵的「重構」功能尚未支援&lt;/span&gt;。&lt;/strong&gt;&lt;/p&gt;&lt;p data-end=&quot;273&quot; data-start=&quot;107&quot;&gt;我最想測試的，就是 ReSharper 的重構功能在 Visual Studio Code 上的實際表現。目前我的開發流程常常需要在 Visual Studio Code 和 Rider 之間來回切換：先透過 GitHub Copilot 在 VS Code 裡產生程式碼，然後再切回 Rider 進行重構與細節調整。&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p data-end=&quot;393&quot; data-start=&quot;275&quot;&gt;然而實際使用 ReSharper for VS Code 後發現，&lt;strong data-end=&quot;348&quot; data-start=&quot;308&quot;&gt;目前僅提供部分 Code Completion 功能，卻無法進行重構作業&lt;/strong&gt;。若缺乏這項核心功能，這個擴充套件在開發上的價值就大打折扣，也就沒有急著投入使用的必要了。&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie2x5gPY8IEeoJsGIGXEogukeF8V6ZVnudcJyN5v7J-KpINsVFphld_HAYkkNOJR50AEgbXYbGIHfeCaPKe1J7c4U6SmKUdd2n6ngFocrBKzapH7e2Ngp2AqS074x7dmI6udRopdM2sitn-8fV3Qk0H-mJe8MNwv710xVcTsKgq5pmjj38_-rY/s800/resharper-refactor.gif&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;ReSharper 不支援重構&quot; border=&quot;0&quot; data-original-height=&quot;671&quot; data-original-width=&quot;800&quot; height=&quot;536&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie2x5gPY8IEeoJsGIGXEogukeF8V6ZVnudcJyN5v7J-KpINsVFphld_HAYkkNOJR50AEgbXYbGIHfeCaPKe1J7c4U6SmKUdd2n6ngFocrBKzapH7e2Ngp2AqS074x7dmI6udRopdM2sitn-8fV3Qk0H-mJe8MNwv710xVcTsKgq5pmjj38_-rY/w640-h536/resharper-refactor.gif&quot; title=&quot;ReSharper 不支援重構&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;一開始測試的時候，我還以為 ReSharper 的重構功能已經可以使用，因為操作起來和我原本安裝的其他擴充套件表現相似。後來我把那些既有的擴充套件全部停用後 (如 C# 和 C# Dev Kit) 才確認——&lt;span style=&quot;color: red;&quot;&gt;&lt;strong data-end=&quot;135&quot; data-start=&quot;105&quot;&gt;目前這個版本的 ReSharper 並不支援重構功能。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjMT_JOXNgn1G6dNk9Wwq5MJhh8t6TZz1njdscp-aZdggRIq_EvfiHKqTo0Hpyr68VQB3WyFRWngQvI0cVMRQLOZcmY0TNM4fPSdBpybgFyHXrpwGedJykBxcy25XDjSNsdK7Ga4tQFrjfp_HFpAaxB5_G1PCldPMecQeMAUrilzDMoi0MKeabA&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Visual Studio Code 停用 C#, C# Dev Kit 擴充套件&quot; data-original-height=&quot;224&quot; data-original-width=&quot;697&quot; height=&quot;206&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjMT_JOXNgn1G6dNk9Wwq5MJhh8t6TZz1njdscp-aZdggRIq_EvfiHKqTo0Hpyr68VQB3WyFRWngQvI0cVMRQLOZcmY0TNM4fPSdBpybgFyHXrpwGedJykBxcy25XDjSNsdK7Ga4tQFrjfp_HFpAaxB5_G1PCldPMecQeMAUrilzDMoi0MKeabA=w640-h206&quot; title=&quot;Visual Studio Code 停用 C#, C# Dev Kit 擴充套件&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;透過 Commands 面板可以查看目前已支援的快捷鍵與操作指令，&lt;strong data-end=&quot;82&quot; data-start=&quot;60&quot;&gt;但可惜的是，最核心功能尚未移植過來&lt;/strong&gt;。希望未來版本能陸續補上這些實用功能，讓整體體驗更完整。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhYXRqTJyBTbMbhtBY16cCZBpggGbDu57fJix2TPdAmbEqvwTXaDOGdIIihCAsqvZmAgHVYAEMQpQ6ufQdonIqlHltdluNjYdwTvg5FWsb_eQuNuZG10YW4H50JCn7ILM3KbLhYRw7tHIzXTd4yomkJ0RmogGBaYuahJs5PCJpdExeX0wYIZRaY&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;ReSharper for Visual Studio Code 支援的 Command&quot; data-original-height=&quot;993&quot; data-original-width=&quot;1425&quot; height=&quot;446&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhYXRqTJyBTbMbhtBY16cCZBpggGbDu57fJix2TPdAmbEqvwTXaDOGdIIihCAsqvZmAgHVYAEMQpQ6ufQdonIqlHltdluNjYdwTvg5FWsb_eQuNuZG10YW4H50JCn7ILM3KbLhYRw7tHIzXTd4yomkJ0RmogGBaYuahJs5PCJpdExeX0wYIZRaY=w640-h446&quot; title=&quot;ReSharper for Visual Studio Code 支援的 Command&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;截至目前測試的時間點（2025/6/12），ReSharper for VS Code 仍處於&lt;strong data-end=&quot;78&quot; data-start=&quot;69&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;公開預覽版&lt;/span&gt;&lt;/strong&gt;階段。未來&lt;span style=&quot;color: red;&quot;&gt;正式版&lt;/span&gt;推出後將採取訂閱制，&lt;span style=&quot;color: red;&quot;&gt;必須持有 ReSharper 的有效授權&lt;/span&gt;才能繼續使用。至於是否值得付費訂閱？就等功能更完整的新版本推出後再來評估吧。&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjGbzA-E20DeH72B9IEJHFN12Q_nMe-rXq9bjGpI1rPOaf3W6ZWxd4OC-g-cOc5UW_NbLjFmpbvTT38xkY_mpQgzt9_oOaLYlx3PuC9uuQ4qyKUl5bQ2F7okobzT2BGPxiHcRuDVx4MEI8K3vDlSFTtXUTUBCM5-N3vkxBw7_pzMVjzfHIhV8-C&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;ReSharper for Visual Studio Code 測試版本  2025-06-10&quot; data-original-height=&quot;421&quot; data-original-width=&quot;331&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjGbzA-E20DeH72B9IEJHFN12Q_nMe-rXq9bjGpI1rPOaf3W6ZWxd4OC-g-cOc5UW_NbLjFmpbvTT38xkY_mpQgzt9_oOaLYlx3PuC9uuQ4qyKUl5bQ2F7okobzT2BGPxiHcRuDVx4MEI8K3vDlSFTtXUTUBCM5-N3vkxBw7_pzMVjzfHIhV8-C=w315-h400&quot; title=&quot;ReSharper for Visual Studio Code 測試版本 2025-06-10&quot; width=&quot;315&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/05/jetbrains-ai.html&quot; target=&quot;_blank&quot;&gt;JetBrains AI 體驗心得&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2023/02/vs2022-refactor_27.html&quot; target=&quot;_blank&quot;&gt;Visual Studio 2022 Quick Actions 程式碼重構 體驗心得&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ReSharper for VS Code is BAD from Nick Chapsas&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;361&quot; src=&quot;https://www.youtube.com/embed/YCoULbQ92gg&quot; width=&quot;483&quot; youtube-src-id=&quot;YCoULbQ92gg&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/1030684417800104682/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/1030684417800104682?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/1030684417800104682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/1030684417800104682'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/06/resharper-for-visual-studio-code.html' title='ReSharper for Visual Studio Code 初體驗：功能有限，尚待觀望'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja9-ZazJImUGlJlxtcTW8OJdcyvhvNpyJY8JYp5rfW-HDczwFgR_8ekg8MeEeyDt7SRT9Ep7TmlzsMFUhnx_Kg2I3ld_n13VisXY_Ile4bSRFPBmEupi7M9x1EFRZkTiUJvx5eluqQlIugcgMsbFq9CvK7NGnXDwh1uyQddeYtgCpegV0EyNVw/s72-w320-h301-c/ReSharperLogo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-2020203003743713799</id><published>2025-05-29T14:34:00.005+08:00</published><updated>2025-08-29T00:27:34.139+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google Search Console"/><category scheme="http://www.blogger.com/atom/ns#" term="GSC"/><category scheme="http://www.blogger.com/atom/ns#" term="SEO"/><title type='text'>Google Blogger 的困境 - 檢測你的網站，是否支援『複合式搜尋結果』</title><content type='html'>當我們在網頁搜尋的時候，總是會看到有一些網站在搜尋結果底下，有非常詳細的說明，而這個東西就叫做「複合式搜尋結果」，而複合式搜尋結果有以下優點：&lt;br /&gt;&lt;div&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;整合多個資料來源&lt;/li&gt;&lt;li&gt;進階多條件查詢（多重篩選）&lt;/li&gt;&lt;li&gt;提升資訊檢索效率&lt;/li&gt;&lt;li&gt;跨語言 / 跨格式搜尋&lt;/li&gt;&lt;li&gt;知識圖譜 / 結構化搜尋&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;對於 Google Blogger 來說，到底有沒有支援呢？我們就來看看到底有沒有支援，順便看看目前使用的網頁範本中，有沒有需要調整的地方。&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCTnyIkdliWbfWf7pmmODnl_dpkDI7pze5DHqMZA3yvZAjYfll_beRn-0DwZR9ajis43Vqykxfmx3dqp5mBCqNp_h0xlM46FuB2X3Rcs9zkWLvrJ1Brcg748yIrgEBuXCWRy6KTtqgPYo-U6UsybwzSyjvuAnfEV3znRW_YcsOEVXR_F3Ge4RR/s1024/%E8%A4%87%E5%90%88%E5%BC%8F%E6%90%9C%E5%B0%8B%E7%B5%90%E6%9E%9C.jfif&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;複合式搜尋結果 - logo&quot; border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCTnyIkdliWbfWf7pmmODnl_dpkDI7pze5DHqMZA3yvZAjYfll_beRn-0DwZR9ajis43Vqykxfmx3dqp5mBCqNp_h0xlM46FuB2X3Rcs9zkWLvrJ1Brcg748yIrgEBuXCWRy6KTtqgPYo-U6UsybwzSyjvuAnfEV3znRW_YcsOEVXR_F3Ge4RR/w640-h640/%E8%A4%87%E5%90%88%E5%BC%8F%E6%90%9C%E5%B0%8B%E7%B5%90%E6%9E%9C.jfif&quot; title=&quot;複合式搜尋結果 - logo&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;p&gt;檢測網址： &lt;a href=&quot;https://search.google.com/test/rich-results&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://search.google.com/test/rich-results&lt;/a&gt;&lt;/p&gt;&lt;p&gt;首先，輸入任何一個要檢查的網頁網址&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjCehwurZjeS4HRgvRBGyQ2vfprXeg5-bJg3SaIdsY0WjHiMYPIJ7sXIOaDKCM5mY-X1pRGi05vUsV3Nh6wikLgr66UWk2xeXvAMgx0mO8XfvYH6nrJ3aEC2ZyhpR_-QZyjHXjk6T2cw33FXYQvfmtz3qZz5qIyYhWDoQlNcyD3Bn8x0corFVJ_&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;複合式搜尋結果-1&quot; data-original-height=&quot;913&quot; data-original-width=&quot;1901&quot; height=&quot;308&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjCehwurZjeS4HRgvRBGyQ2vfprXeg5-bJg3SaIdsY0WjHiMYPIJ7sXIOaDKCM5mY-X1pRGi05vUsV3Nh6wikLgr66UWk2xeXvAMgx0mO8XfvYH6nrJ3aEC2ZyhpR_-QZyjHXjk6T2cw33FXYQvfmtz3qZz5qIyYhWDoQlNcyD3Bn8x0corFVJ_=w640-h308&quot; title=&quot;複合式搜尋結果-1&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;接下來，發現到有一個項目需要修正&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiyPc_m1eLH6MGBrGhkq4LnsIucbfb3YPnhX5kWed7ktVmA4KHLeDyxSWLrk84VNeDekpUU1EXq3qeoNLz9IQnm8kawajBigGiNTRiJJoe1-RR2oniCIce05I7OWWo7j8ZQxc796ZAumR01Xcn0T3LWE1gunjauEH_nj8ifabJb65w09kEZnjpc&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;複合式搜尋結果-2&quot; data-original-height=&quot;1080&quot; data-original-width=&quot;1920&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiyPc_m1eLH6MGBrGhkq4LnsIucbfb3YPnhX5kWed7ktVmA4KHLeDyxSWLrk84VNeDekpUU1EXq3qeoNLz9IQnm8kawajBigGiNTRiJJoe1-RR2oniCIce05I7OWWo7j8ZQxc796ZAumR01Xcn0T3LWE1gunjauEH_nj8ifabJb65w09kEZnjpc=w640-h360&quot; title=&quot;複合式搜尋結果-2&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;展開細項，會看到有3個非重大問題&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhPMre5Tdao8SxQKtVWO6KikFWhCdBY_oXk9alf18TybPCzdofGIFZNF1IeOnPYgiEmwiJk4Q4WjiwrkF_M0l8Im8vMAxuB1geIxmOcwO74JmtR6a9E_L9-ztIy_sGcMTmKGe3a-cUy6CWvR7AVXJ9FWHasqj4--KlnON9i1KGFBryQp8vkwuYc&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;複合式搜尋結果-3&quot; data-original-height=&quot;923&quot; data-original-width=&quot;1918&quot; height=&quot;308&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhPMre5Tdao8SxQKtVWO6KikFWhCdBY_oXk9alf18TybPCzdofGIFZNF1IeOnPYgiEmwiJk4Q4WjiwrkF_M0l8Im8vMAxuB1geIxmOcwO74JmtR6a9E_L9-ztIy_sGcMTmKGe3a-cUy6CWvR7AVXJ9FWHasqj4--KlnON9i1KGFBryQp8vkwuYc=w640-h308&quot; title=&quot;複合式搜尋結果-3&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;看到細項說明後，可以知道缺少了一些標籤，而這些都是非必要性的&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhXELwQikfpn8N1O1XB-oJovIx2l_kco53fX_DjuxlfKUo1e_u6-Ihn1VCPlGMewUhtpuw-l1uJ1y9Kx4cYr-Gx6aenaR2gEeMJb0r7UnFNkH8wOOA2EMa9XG9bJW-c-6B3SuQbmquZ37CexT274gd1OCDNHC98UNb27RFR_V2QwbBjQyXvtfsC&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;複合式搜尋結果-4&quot; data-original-height=&quot;1080&quot; data-original-width=&quot;1920&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhXELwQikfpn8N1O1XB-oJovIx2l_kco53fX_DjuxlfKUo1e_u6-Ihn1VCPlGMewUhtpuw-l1uJ1y9Kx4cYr-Gx6aenaR2gEeMJb0r7UnFNkH8wOOA2EMa9XG9bJW-c-6B3SuQbmquZ37CexT274gd1OCDNHC98UNb27RFR_V2QwbBjQyXvtfsC=w640-h360&quot; title=&quot;複合式搜尋結果-4&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;像是 datePublished 這個標籤，點選後就可以看到實際上顯示出來的結果是什麼&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj4_55m4bi2XRs2py5qwFTHPYUQX0QVMAbUGaKG7pIvAk5qePamHLBqWxuqvTxa57YI5aN6lkrVCLWMWP9VxQuQco3PUJpPuxJKSwtZ8-IysMT74gaHEhB3m0jEX43NYaWb9e86LYY7kt9UCD2n33WIukwzXSdz8bftzZKEZIiEW5kDNa-qRPY7&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;複合式搜尋結果-5&quot; data-original-height=&quot;700&quot; data-original-width=&quot;1919&quot; height=&quot;234&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj4_55m4bi2XRs2py5qwFTHPYUQX0QVMAbUGaKG7pIvAk5qePamHLBqWxuqvTxa57YI5aN6lkrVCLWMWP9VxQuQco3PUJpPuxJKSwtZ8-IysMT74gaHEhB3m0jEX43NYaWb9e86LYY7kt9UCD2n33WIukwzXSdz8bftzZKEZIiEW5kDNa-qRPY7=w640-h234&quot; title=&quot;複合式搜尋結果-5&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;這次檢測有發現到兩個問題需要修正&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;b&gt;問題一：headline 欄位未填&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;修改前&lt;br /&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;pre&gt;&lt;pre&gt;&amp;lt;h1 class=&#39;post-title entry-title&#39; &lt;span style=&quot;color: red;&quot;&gt;itemprop=&#39;name&#39;&lt;/span&gt;&amp;gt;
  開箱文：Palladium Boot 來自法國品牌的靴子
&amp;lt;/h1&amp;gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;修改後&lt;/p&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;pre&gt;&lt;pre&gt;&amp;lt;h1 class=&#39;post-title entry-title&#39; &lt;span style=&quot;color: red;&quot;&gt;itemprop=&#39;headline&#39;&lt;/span&gt;&amp;gt;
  開箱文：Palladium Boot 來自法國品牌的靴子
&amp;lt;/h1&amp;gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;問題二：datetimePublished 的 datetime 值無效&lt;/b&gt;&lt;/p&gt;&lt;p&gt;修改前&lt;/p&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman; font-size: x-small;&quot;&gt;&lt;pre style=&quot;white-space: normal;&quot;&gt;&lt;pre&gt;&amp;lt;abbr class=&#39;published updated&#39; itemprop=&#39;datePublished&#39; &lt;span style=&quot;color: red;&quot;&gt;title&lt;/span&gt;=&#39;2012-12-08T10:20:00+08:00&#39;&amp;gt;
12/08/2012
&amp;lt;/abbr&amp;gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;修改後&lt;/p&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 5px; overflow-wrap: break-word; overflow: auto; padding: 2px; word-break: break-all;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman; font-size: x-small;&quot;&gt;&lt;pre style=&quot;white-space: normal;&quot;&gt;&lt;pre&gt;&amp;lt;abbr class=&#39;published updated&#39; itemprop=&#39;datePublished&#39; &lt;span style=&quot;color: red;&quot;&gt;datetime&lt;/span&gt;=&#39;2012-12-08T10:20:00+08:00&#39;&amp;gt;
12/08/2012
&amp;lt;/abbr&amp;gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;整個修改完畢後，再來檢測，已經把錯誤的地方給修正完畢了。&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiCZXd0_UQiwBPhJ9wbyJ0Prb4tJAHh9d3pfB9AFnRZQLlGMh5UMJG4OJbvvHTJFM1CvpLGq8K91NC78_d6PnNzuuJDbh3H47hRL5v7_aByDdHZQF_kRveU5VRrBPitPpeCXeruLAxd-u7ihONA8ScuBFLtili-LlttflVqUzgXbo-5VuXINtI5&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;複合式搜尋結果-6&quot; data-original-height=&quot;916&quot; data-original-width=&quot;1919&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiCZXd0_UQiwBPhJ9wbyJ0Prb4tJAHh9d3pfB9AFnRZQLlGMh5UMJG4OJbvvHTJFM1CvpLGq8K91NC78_d6PnNzuuJDbh3H47hRL5v7_aByDdHZQF_kRveU5VRrBPitPpeCXeruLAxd-u7ihONA8ScuBFLtili-LlttflVqUzgXbo-5VuXINtI5=w640-h306&quot; title=&quot;複合式搜尋結果-6&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span&gt;這樣就大致有問題的地方修改完畢了。只不過&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;想要有更複雜的複合式搜尋結果&lt;/span&gt;&lt;span&gt;，&lt;/span&gt;&lt;span&gt;應該&lt;span style=&quot;color: red;&quot;&gt;還要額外&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;嵌入一段 JavaScript 並且符合 Schema.org 格式&lt;/span&gt;。只不過要等 Google 編入索引不知道要等多久，改天再來找篇文章試試看，看看在 Bing 上面呈現的效果是如何。&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;※延伸閱讀&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/05/google-blogger-seo.html&quot; target=&quot;_blank&quot;&gt;Google Blogger SEO 的困境 - 消失的文章&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://www.blogger.com/blog/post/preview/31919365/1964961923284827999&quot; target=&quot;_blank&quot;&gt;Google Blogger SEO 的困境 - 行動版網頁重導向錯誤&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2023/04/data-vocabularyorg.html&quot; target=&quot;_blank&quot;&gt;Google Search Console 淘汰 data-vocabulary.org 的結構定義&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #0000ee; text-decoration-line: underline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #0000ee; text-decoration-line: underline;&quot;&gt;&lt;u&gt;&lt;a href=&quot;https://rojerchen.blogspot.com/2025/08/google-blogger.html&quot; target=&quot;_blank&quot;&gt;Google Blogger SEO 的困境 - 網站權重&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/2020203003743713799/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/2020203003743713799?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/2020203003743713799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/2020203003743713799'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/05/google-blogger.html' title='Google Blogger 的困境 - 檢測你的網站，是否支援『複合式搜尋結果』'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCTnyIkdliWbfWf7pmmODnl_dpkDI7pze5DHqMZA3yvZAjYfll_beRn-0DwZR9ajis43Vqykxfmx3dqp5mBCqNp_h0xlM46FuB2X3Rcs9zkWLvrJ1Brcg748yIrgEBuXCWRy6KTtqgPYo-U6UsybwzSyjvuAnfEV3znRW_YcsOEVXR_F3Ge4RR/s72-w640-h640-c/%E8%A4%87%E5%90%88%E5%BC%8F%E6%90%9C%E5%B0%8B%E7%B5%90%E6%9E%9C.jfif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31919365.post-8580927896592501428</id><published>2025-05-26T08:30:00.001+08:00</published><updated>2025-05-26T08:30:00.120+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Liber Office"/><category scheme="http://www.blogger.com/atom/ns#" term="Office"/><category scheme="http://www.blogger.com/atom/ns#" term="PDF"/><category scheme="http://www.blogger.com/atom/ns#" term="WORD"/><title type='text'>透過 Liber Office 將 WORD 轉成 PDF</title><content type='html'>&lt;p&gt;&amp;nbsp;過去在執行專案的時候，客戶提了一個需求，需要把資料匯出成 WORD 和 PDF 檔案，由於要處理的畫面不少，又不想要針對 WORD、PDF 檔案各別花費不等的時間逐一處理，最終找到了 WORD 轉 PDF 的方案。&lt;/p&gt;&lt;p&gt;只需要處理好 WORD 資料的匯出，然後再透過 LiberOffice 協助將 WORD 轉換成 PDF，就可以滿足大致上的需求。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0QH13xTb_OvsmILHzlmjOlkF2MF5l9Yz4BtNySAa5Dw9R8VsCf5hIklfgAJEzvPR1NktcyuABE7PGjC5n6zRcKJ-GYABykf3Ljhp9NpWp5b61L3YzwCAruIFueextxvAu8SmNl4RT_4qMG2mFRtqFHH-b-skPrGtHDA3MFiIEuFYhrl9eprRA/s970/LiberOffice.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Liber Office Logo&quot; border=&quot;0&quot; data-original-height=&quot;647&quot; data-original-width=&quot;970&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0QH13xTb_OvsmILHzlmjOlkF2MF5l9Yz4BtNySAa5Dw9R8VsCf5hIklfgAJEzvPR1NktcyuABE7PGjC5n6zRcKJ-GYABykf3Ljhp9NpWp5b61L3YzwCAruIFueextxvAu8SmNl4RT_4qMG2mFRtqFHH-b-skPrGtHDA3MFiIEuFYhrl9eprRA/w640-h426/LiberOffice.png&quot; title=&quot;Liber Office Logo&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;安裝 LiberOffice&lt;br /&gt;&lt;br /&gt;由於要使用 Liber Office 來協助轉檔，所以安裝 Liber Office 是必須的。&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;LiberOffice SDK&lt;br /&gt;&lt;br /&gt;由於我是使用 ProsessStartInfo 的方式呼叫 soffice.exe 來協助做轉檔，所以應該就不需要把 SDK 的檔案複製到專案底下。&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;執行轉檔&lt;br /&gt;&lt;br /&gt;我是使用呼叫外部程式的方式來執行，大致上的方法如下&lt;div&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; line-height: 1.42857; margin-bottom: 10px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; word-break: break-all;&quot;&gt;ProcessStartInfo procStartInfo = new ProcessStartInfo(libreOfficePath, $&quot;--convert-to pdf --outdir {outPutPath} --nologo {officePath}&quot;);
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
procStartInfo.WorkingDirectory = Environment.CurrentDirectory;

Process process = new Process() { StartInfo = procStartInfo, };
process.Start();
process.WaitForExit();&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;IIS設定&lt;br /&gt;&lt;br /&gt;使用上述的方式呼叫外部程式轉檔，在開發環境上測試沒有問題，但是將程式佈署到 IIS 上後，就會發現網頁沒有回應，如果觀看工作管理員，就會發現到 soffice.exe 持續在執行，沒有任何停下來的跡象。&lt;br /&gt;&lt;br /&gt;會有這樣的狀況可能是權限的問題，目前我的處理方式是調整應用程式集區，將識別設定為 LocalSystem 後，就可以呼叫 LiberOffice 轉換成 PDF 了。&lt;/li&gt;&lt;/ol&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;從 MSDN 上針對「識別」這個選項是這樣說明的&lt;br /&gt;&lt;ol&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;本機系統：&lt;/b&gt;完全受信任的帳戶，擁有更高的權限，也有 存取網路資源。&lt;/li&gt;&lt;li&gt;&lt;b&gt;網路服務：&lt;/b&gt;限制的網站 或&amp;nbsp; 受限制的服務帳戶通常用來執行 標準 、 最低權限的服務。此帳戶具有較少的權限比本機系統帳戶。此帳戶具有存取網路資源。&lt;/li&gt;&lt;li&gt;&lt;b&gt;本機服務：&lt;/b&gt;限制或有限的服務帳戶是與網路服務非常類似，也提供給執行 標準 、 最低權限的服務。這個帳戶沒有存取網路資源。&lt;/li&gt;&lt;li&gt;&lt;b&gt;ApplicationPoolIdentity:，&lt;/b&gt;當您建立新的應用程式集區時，IIS 會建立新的應用程式集區名稱，並執行應用程式集區背景工作處理序，在 [這個帳戶] 下的虛擬帳戶。這也是最低權限帳戶。&lt;/li&gt;&lt;li&gt;&lt;b&gt;自訂帳戶：&lt;/b&gt;除了這些內建的帳戶，您也可以使用自訂的帳戶藉由指定使用者名稱和密碼。&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;使用「本機系統」這樣的方式看來頗危險，但是目前嘗試使用網路服務、本機服務來試試看，並且把 OpenOffice 資料夾的權限設定這兩個帳號可以完全存取，但是這樣的測試之下還是會發生 soffice.exe 持續執行的狀況，所以目前就只能先這樣子吧，等到以後有空來試試看別種方式。&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://rojerchen.blogspot.com/feeds/8580927896592501428/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/31919365/8580927896592501428?isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/8580927896592501428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31919365/posts/default/8580927896592501428'/><link rel='alternate' type='text/html' href='http://rojerchen.blogspot.com/2025/05/liber-office-word-pdf.html' title='透過 Liber Office 將 WORD 轉成 PDF'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0QH13xTb_OvsmILHzlmjOlkF2MF5l9Yz4BtNySAa5Dw9R8VsCf5hIklfgAJEzvPR1NktcyuABE7PGjC5n6zRcKJ-GYABykf3Ljhp9NpWp5b61L3YzwCAruIFueextxvAu8SmNl4RT_4qMG2mFRtqFHH-b-skPrGtHDA3MFiIEuFYhrl9eprRA/s72-w640-h426-c/LiberOffice.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>