Skip to main content

Command Palette

Search for a command to run...

用 VuePress 製作說明文件頁面 – 1:安裝

Updated
2 min readView as Markdown
用 VuePress 製作說明文件頁面 – 1:安裝
L

前端工程師 Augustus 的學習筆記 — solving problems, in simple ways.

本篇要解決的問題

之前常常會需要寫一些 components 的說明文件,給前端同事看或是當作一個如何使用 API 之類的記錄。因為都是比較零星的,所以是用 GitLab 的程式碼功能去存。

但零星的程式碼一多,即便 GitLab 程式碼可以條列出來,還是覺得一眼看過去很花,看不到想找的東西。

之前忘了在哪看到 VuePress 這套開箱即用的靜態網站生成器,想說平常都在用 Vue 了,那不如就用用看這套,看能不能把所有要用的 components 及範例都整理成一個有模有樣的頁面,順便嚇嚇後端 XD~。

用了一下後,如果要求的只是一個單純的靜態站,不用做什麼額外設定,裝完後就能用了,如果要加上一些功能,比如客製樣式、裝外掛,那官方文件上也都寫得蠻清楚的。

本系列是整理這幾天在用的時候,有用到的一些功能,更深入的使用就看以後有沒有機會碰到,畢竟目前已解決了所遇到的問題。

本篇主要參考 VuePress 說明文件: https://vuepress.vuejs.org/zh/


安裝前必備

首先,本機必須要安裝好 Node.js ,版本在 8.6 以上,還沒裝的朋友可以直接從官網下載安裝。

另外,文件裡面建議是用 Yarn 來裝需要的 Package,所以 Yarn 也安裝一下,在安裝完 Node.js 後,開啟終端機,輸入:

npm install -g yarn

按下 Enter 就會執行安裝。

嗯……用 NPM 來裝 Yarn,怎麼覺得有點像拿 IE 裝 Chrome 一樣 XD。


安裝 VuePress

Node.js、Yarn 都安裝完成,先建立一個準備放 VuePress 的資料夾,然後用終端機開啟,首先我們要生成一個 package.json,主要是可以看到我們安裝了哪些 Package,輸入:

yarn init 或 yarn init -y

有沒有「-y」的差別就是會不會詢問我們一些基本問題,如果懶得回答就多打個 -y。

按下 Enter 後,資料夾就會多出一個 package.json 的檔案。

接著要來安裝 VuePress,在終端機輸入:

yarn add -D vuepress

按下 Enter 便會執行安裝,安裝完後目前資料夾會看到這樣:

OVex0ol.png

要開啟 VuePress,可以在終端機上輸入:

vuepress dev .

但我們不太想花間去記一些太長的東西 XD,可以有更簡單的方式。

打開 package.json 的檔案,插入以下:

"scripts": {
  "serve": "vuepress dev .",
  "build": "vuepress build ."
}

package.json 的檔案最後會像這樣:

ULjzeM5.png

這樣我們只需要在終端機上輸入:

yarn serve

就會開啟我們的 VuePress。

輸入:

yarn build

就會將我們的 VuePress 打包成靜態檔,讓我們放到主機上。


建立首頁

在執行 yarn serve 之前,因為我們目前一個檔案都沒有,開啟了也什麼都看不到。我們先在資料夾的根目錄下新增一個「README.md」檔,在檔案裡面寫上:

# Hello World

1F2UHQm.png

存檔完後執行 yarn serve,終端機最後會顯示一行:

success [10:48:56] Build 7270a8 finished in 132 ms! ( http://localhost:8081/ )

那個「http://localhost:8081/」就是我們的 VuePress 在開發模式下的網址,打開瀏覽器後貼上網址,就會看見我們的第一個 VuePress 啦~

aB3R0JC.png


注意事項

本篇最後列出一下注意事項:

  1. VuePress 下所有文件都是用 Markdown 寫成,因此檔名要命成 XXXX.md。
  2. 檔名為 README.md 的就會當成首頁。

第 1 點,Markdown 不難,可以參考〈 Markdown常用語法筆記 〉這篇,或是用一些線上的生成器,如 HackMD

第 2 點,就像我們剛剛在根目錄下創了一個 README.md 檔,就被當作整站的首頁一樣,如果在各個資料夾內建了 README.md 檔,就會當作是那個目錄下的首頁。


原始碼、Demo

本篇開始,原始碼跟 Demo 都會放在 GitHub 上,歡迎取用。

Demo 會隨著系列文更新,所以看到的程式碼會逐漸豐富。

取用之前可以先對本篇點個讚或分享~

原始碼: https://github.com/letswritetw/letswrite-vuepress-document

Demo: https://letswritetw.github.io/letswrite-vuepress-document/


用 VuePress 製作說明文件頁面系列

  1. 安裝
  2. config.js 基本設定
  3. 導覽列
  4. 佈景主題、外掛
  5. 改樣式、加元件
  6. https://www.letswrite.tw/vuepress-document-deploy/

More from this blog

圖片壓縮:用 Compressor.js 自動調整品質壓縮至指定大小

本篇要解決的問題 很多網站功能會需要處理使用者上傳的圖片,比方讓使用者上傳會員照片。 但隨著手機相機愈做愈好,拍出來的照片隨便都是幾 MB,直接上傳的話,耗時也佔空間。 雖然網路上搜尋有許多圖片壓縮工具,但大多只能設定固定的壓縮的品質,無法保證壓縮後的檔案大小符合需求。 本筆記文將使用 Compressor.js 套件,實作一個圖片壓縮功能,符合以下需求: 自動嘗試不同的壓縮品質,直到檔案小於指定大小(ex: 600KB)為止。 將圖片轉換為 WebP 格式。 長、寬限制最大尺寸。 這...

Oct 4, 20254 min read
圖片壓縮:用 Compressor.js 自動調整品質壓縮至指定大小

使用 pm2.web 建立免費 PM2 監控系統

本篇要解決的問題 PM2 是 Node.js 裡常用的 process manager,一般如果是透過網頁監控、重啟,大概會使用官方的 Keymetrics。 但,But!就是這個 But!免費版最多只能監控 4 個 Process,再多就要掏出魔法小卡了。 問了 ChatGPT 後,發現有一個開源的替代方案:pm2.web,可以自己架設,不管幾個 process 都完全免費。 以下筆記如何使用 Vercel + MongoDB Atlas 部署 pm2.web,免費監控我們的 PM2。 架構...

Sep 26, 20252 min read
使用 pm2.web 建立免費 PM2 監控系統

GitHub Copilot + Figma MCP Server 實戰:用 AI 快速切版教學

本篇要解決的問題 最近在研究 MCP,剛好在 Threads 上看到有人實測 Figma MCP,想試看看是否真的能透過 AI 進行切版。 實作了一下後,還真的可以,不過目前僅針對簡單設計稿進行測試,結果略有跑版現象,整體效果尚可接受。 但目前就有這成果覺得厲害,再給它一段時間,也許前端工程師可以省掉切版的時間,把心力放到別的地方。 前提是,客戶要很明確的知道自己要什麼 XD,不然靠 AI 微調,還不如人工直接改程式還比較快。 用到的資源 以下是要實作用 Figma MCP 來切版,需要的資源:...

Apr 12, 20252 min read
GitHub Copilot + Figma MCP Server 實戰:用 AI 快速切版教學

使用 Google Apps Script 串接 Google Analytics API,整合多站數據

本篇要解決的問題 一間公司裡可能旗下會有多個網站,想同時查看所有網站的 GA 數據,通常需要開啟多個瀏覽器視窗並排顯示,操作較為繁瑣。 如果可以改由 API 來取得 GA 的數據,工程師就可以把各站的資料顯示在一個頁面上,而不用同時開多個 GA 來看。 開通 GA API 取得 GCP 專案編號 要先有 Google Cloud Platform(GCP)的專案,沒有的話登入自己的 Google 帳號,就可以先增一個。 專案編號就在 資訊主頁 上: 開通 GA API 功能 在使用 API ...

Mar 29, 20254 min read
使用 Google Apps Script 串接 Google Analytics API,整合多站數據

監聽 localStorage 事件:如何在同一頁面內偵測變更

本篇要解決的問題 我們有時會把資訊存在瀏覽器的空間裡,像是 Cookies、Local Storage、IndexedDB。 Local Storage 原生的 storage 事件主要用於跨分頁同步,如下: window.addEventListener("storage", () => {}); 但如果想要在同一個頁面內監聽變更,就需要手動覆寫 localStorage 方法。 localStorage event listener 我們可以透過 Storage.prototype 覆寫...

Mar 3, 20251 min read
監聽 localStorage 事件:如何在同一頁面內偵測變更
L

Let's Write

63 posts

前端工程師 August 的學習筆記 — solving problems, in simple ways.