<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vuepress on Howar31 Blog</title><link>https://blog.howar31.com/tags/vuepress/</link><description>Recent content in Vuepress on Howar31 Blog</description><generator>Hugo</generator><language>zh-tw</language><lastBuildDate>Wed, 22 Apr 2026 23:51:19 +0800</lastBuildDate><atom:link href="https://blog.howar31.com/tags/vuepress/index.xml" rel="self" type="application/rss+xml"/><item><title>升上 VuePress v2 RC 五個月後，決定再遷移到 Hugo 的紀錄</title><link>https://blog.howar31.com/posts/vuepress-to-hugo-migration/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.howar31.com/posts/vuepress-to-hugo-migration/</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;2025 年 11 月才剛從 VuePress v1.8 升上 v2.0.0-rc.26，本以為至少能安穩用個幾年。結果升完五個月就遇到一堆問題，最後在 2026 年 4 月決定&lt;strong&gt;再搬一次&lt;/strong&gt;，這次換到 Hugo。&lt;/p&gt;
&lt;p&gt;這篇記錄從評估、選型、遷移、踩雷到最後部署上線的完整過程，順便也拿這篇當 component 測試文，把 Hugo 版型的 code block、tip、warning、表格、SVG、taxonomy 一次全部跑過。&lt;/p&gt;
&lt;h2 id="為什麼升-v2-才-5-個月就要再搬"&gt;為什麼升 v2 才 5 個月就要再搬？&lt;/h2&gt;
&lt;p&gt;升級前以為是一次「大幅刷新但之後穩定」的投資。升完才真正理解現狀：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VuePress v2 本身自 2022 就卡在 RC&lt;/strong&gt;，到 2026 仍然沒有 stable。這個「卡 RC 3+ 年」的背景是在&lt;strong&gt;升上去之後&lt;/strong&gt;才有切身感受&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;插件生態沒跟上&lt;/strong&gt;：v1 時期依賴的若干插件在 v2 沒有對應版本，有些甚至上游直接放棄維護&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RC 階段的 theme API 仍會 breaking change&lt;/strong&gt;：升 v2 時已經改了一次 theme，完全不想再因為某次 RC 升級又全部改一次&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dev server 啟動 30 秒&lt;/strong&gt;：寫文章的摩擦大到開了就忘記要寫什麼&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;與其繼續賭 v2 什麼時候脫 RC，不如直接換到&lt;strong&gt;生態穩定、建置極快&lt;/strong&gt;的工具。於是評估了 Astro、Next.js、Eleventy、Hugo，最後選 Hugo：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;候選&lt;/th&gt;
 &lt;th&gt;建置速度&lt;/th&gt;
 &lt;th&gt;生態穩定度&lt;/th&gt;
 &lt;th&gt;Runtime 依賴&lt;/th&gt;
 &lt;th&gt;主要缺點&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Hugo&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;極快（幾百毫秒）&lt;/td&gt;
 &lt;td&gt;十年以上穩定&lt;/td&gt;
 &lt;td&gt;Go binary&lt;/td&gt;
 &lt;td&gt;模板語法較陌生&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Astro&lt;/td&gt;
 &lt;td&gt;中等&lt;/td&gt;
 &lt;td&gt;快速演進中&lt;/td&gt;
 &lt;td&gt;Node.js&lt;/td&gt;
 &lt;td&gt;還在 breaking changes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Next.js&lt;/td&gt;
 &lt;td&gt;慢（依頁面數成長）&lt;/td&gt;
 &lt;td&gt;成熟但偏 App&lt;/td&gt;
 &lt;td&gt;Node.js&lt;/td&gt;
 &lt;td&gt;對靜態部落格 overkill&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Eleventy&lt;/td&gt;
 &lt;td&gt;快&lt;/td&gt;
 &lt;td&gt;小眾但穩定&lt;/td&gt;
 &lt;td&gt;Node.js&lt;/td&gt;
 &lt;td&gt;template 選擇多到雜亂&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Hugo 的勝出原因很簡單：&lt;strong&gt;Go 寫的單一執行檔、零 Node.js、零 npm、template 語法雖然怪但至少不會自己 breaking change&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>從 VuePress v1 升級到 v2</title><link>https://blog.howar31.com/posts/vuepress-v1-to-v2-upgrade/</link><pubDate>Sun, 23 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.howar31.com/posts/vuepress-v1-to-v2-upgrade/</guid><description>&lt;p&gt;使用 VuePress v1 架設 blog 好幾年了，我決定升級到 VuePress v2，主要是想用更現代的建置系統、更好的效能，還有更好的開發體驗。 VuePress v2 帶來了不少改進，包括 Vite 打包工具、Vue 3 支援、TypeScript 支援，還有更模組化的插件架構。&lt;/p&gt;
&lt;p&gt;這篇文章記錄了我從 VuePress v1 升級到 v2 的過程，包括遇到的問題和解決方法。&lt;/p&gt;
&lt;h2 id="為什麼要升級"&gt;為什麼要升級？&lt;/h2&gt;
&lt;p&gt;VuePress v2 有幾個讓我想要升級的理由：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vite 打包工具&lt;/strong&gt; - 建置時間比 webpack 快很多，熱模組替換也更快&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vue 3 支援&lt;/strong&gt; - 現代的 Composition API 和更好的效能&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TypeScript 支援&lt;/strong&gt; - 型別安全的配置和更好的 IDE 支援&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模組化架構&lt;/strong&gt; - 更好的插件系統和更靈活的客製化&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;效能改進&lt;/strong&gt; - 優化的打包分割和更快的頁面載入&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更好的開發體驗&lt;/strong&gt; - 改進的錯誤訊息和除錯工具&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hint-container tip"&gt;
 &lt;p class="hint-container-title"&gt;
 &lt;i class="fas fa-lightbulb" aria-hidden="true"&gt;&lt;/i&gt;
 Tip
 &lt;/p&gt;
 寫這篇文章的時候，VuePress v2 還在 Release Candidate (RC) 階段 (v2.0.0-rc.26)，不過已經穩定到可以上 production 了。 官方 v2 正式版應該很快就會發布。
&lt;/div&gt;

&lt;h2 id="環境"&gt;環境&lt;/h2&gt;
&lt;p&gt;升級時使用的環境：&lt;/p&gt;</description></item><item><title>Setup VuePress with GitLab Pages on Ubuntu 18.04 LTS</title><link>https://blog.howar31.com/posts/vuepress-ubuntu/</link><pubDate>Wed, 17 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.howar31.com/posts/vuepress-ubuntu/</guid><description>&lt;p&gt;This is a lite version of setup tutorial about Vuepress docs on Ubuntu. For detailed tutorial I wrote, please visit &lt;a href="https://blog.howar31.com/vuepress-blog-tutorial/"&gt;Create a docs with VuePress on GitLab Pages&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="environment"&gt;Environment&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ubuntu 18.04.1 LTS&lt;/li&gt;
&lt;li&gt;Node.js 11.14.0&lt;/li&gt;
&lt;li&gt;npm 6.9.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="setup-vuepress"&gt;Setup VuePress&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://vuepress.vuejs.org/guide/"&gt;VuePress Official Guide&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="install-vuepress"&gt;Install VuePress&lt;/h3&gt;
&lt;p&gt;First, install VuePress globally:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;npm install -g vuepress
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or if you want to install locally:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;npm install vuepress
&lt;/code&gt;&lt;/pre&gt;
&lt;div class="hint-container warning"&gt;
 &lt;p class="hint-container-title"&gt;
 &lt;i class="fas fa-exclamation-triangle" aria-hidden="true"&gt;&lt;/i&gt;
 Warning
 &lt;/p&gt;
 With Vuepress installed locally, you may need to use &lt;code&gt;npx vuepress&lt;/code&gt; in command line.
&lt;/div&gt;

&lt;h3 id="config-build-path-for-gitlab-pages"&gt;Config Build Path for GitLab Pages&lt;/h3&gt;
&lt;p&gt;To change the built files destination, we must set it up in config file. By default the config file is not exist, you may create a config file by yourself:&lt;/p&gt;</description></item><item><title>Enable PWA Support for VuePress</title><link>https://blog.howar31.com/posts/vuepress-pwa/</link><pubDate>Fri, 22 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.howar31.com/posts/vuepress-pwa/</guid><description>&lt;p&gt;PWAs, &lt;strong&gt;Progressive Web Applications&lt;/strong&gt; are web applications which is loaded as a website, but can also provide native app functionalities, such as offline mode, push notification, hardware access, and more. For more info about PWA, please read the articles metioned in &lt;a href="./#references"&gt;References&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="environment"&gt;Environment&lt;/h2&gt;
&lt;p&gt;The environment I used:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;macOS Mojave, 10.14.3&lt;/li&gt;
&lt;li&gt;VuePress 0.14.10&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I setup &lt;a href="https://blog.howar31.com/"&gt;my blog&lt;/a&gt; as a PWA successfully. You may visit &lt;a href="https://blog.howar31.com/"&gt;my blog&lt;/a&gt; on your phone (Chrome on Android recommended) to see how it works.&lt;/p&gt;</description></item><item><title>Create a Blog with VuePress on GitLab Pages</title><link>https://blog.howar31.com/posts/vuepress-blog-tutorial/</link><pubDate>Wed, 20 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.howar31.com/posts/vuepress-blog-tutorial/</guid><description>&lt;p&gt;After several years hosting my blog on Wordpress, I decided to move my blog to VuePress so that I may write my blog with Markdown, and also customize my blog with Vue.js.&lt;/p&gt;
&lt;p&gt;VuePress is a Vue-powered static site generator, which can easily help you to setup a SPA website in just few minutes. And with CI/CD and GitLab Pages integration, it becomes one of the best solution for personal blog which can be programmatically themed with Vue.js, automatically publish with CI/CD, and free host with GitLab Pages.&lt;/p&gt;</description></item><item><title>Thanks Wordpress, Hello VuePress</title><link>https://blog.howar31.com/posts/thanks-wordpress-hello-vuepress/</link><pubDate>Mon, 18 Mar 2019 13:00:00 +0000</pubDate><guid>https://blog.howar31.com/posts/thanks-wordpress-hello-vuepress/</guid><description>&lt;p&gt;Welcome, Howar31 Blog is moved again! We are now on GitLab Pages + VuePress.&lt;/p&gt;
&lt;h2 id="new-blog-in-2019"&gt;New Blog in 2019&lt;/h2&gt;
&lt;p&gt;After hosting blog on Wordpress for several years, I found that it&amp;rsquo;s very hard and complicated to maintain the blog, since there are so many plugins and themes to take care of. Moreover, writing in HTML (rich editor) is not my type. I&amp;rsquo;d love to write docs in Markdown due to simplicity and efficiency. These reasons make me want to move my blog to a new home.&lt;/p&gt;</description></item></channel></rss>