使用 where() 實現 filter()
Go 並沒有內建 filter()
,但 Hugo 則提供 where()
類似 filter()
功能。
失くすものさえない今が強くなるチャンスよ
Go 並沒有內建 filter()
,但 Hugo 則提供 where()
類似 filter()
功能。
Go 並沒有內建 map()
,但 Hugo 則提供 apply()
類似 map()
功能。
Go Template 的 .
有 Context 概念,本文解釋為什麼 .
可以存取 Page
Object 與 Site
Object。
除了能在 Hugo 引用外部 CSS 檔案外,Hugo 也兼具 Webpack 角色,可順便將 CSS 加以壓縮。
除了 Homepage 外,有些頁面也會特別客製化,如 About、Series …等,我們也可針對這類頁面設計特別 Layout。
Hugo 自帶 Template 語言,可將在 Markdown 的資料綁定到 HTML。
除了將自訂的資料放在 hugo.json
外,也能將 .json
檔案放在 data
目錄下。
Archetype 是建立 markdown 檔案的 template,我們能在 Archetype 中使用 Page Variable。
Hugo 原本只有 static
目錄,但後來又新增 assets
目錄,這兩個目錄有什麼差異呢?
resources
目錄並不是一開始就有,而是當下了 hugo server
才會建立,我應該手動刪除此目錄嗎?
Pico CSS 為著名的 Classless CSS,特別適合 Blog、Document 之類應用,而 Hugo 也適合 Blog 與 Document,因此 Hugo 與 Pico CSS 可說是天作之合。
Prettier 內建並沒有支援 Go Template,必須另外安裝社群所開發的 prettier-plugin-go-template
才可支援,並將 .html
交給該 Plugin 管理。
Hugo 雖然常搭配 Petite-vue,但只能使用 reactive()
,也沒 computed()
可用,若搭配 Vue 3 就能使用 ref()
與 computed()
。
Hugo 的 Layout 是使用 Go Template,我們可安裝 JetBrains 官方的 Go Template Plugin 使其語法變色。
Alpine 特別適合後端有自己 Template Engine 的使用場景,Hugo 雖然為 SSG,但因為使用了 Go Template,事實上與後端類似,因此也適合 Alpine。
Petite-vue 特別適合後端有自己 Template Engine 的使用場景,Hugo 雖然為 SSG,但因為使用了 Go Template,事實上與後端類似,因此也適合 Petite-vue,更可還原 Composition API 風格在 Hugo 上。
Petite-vue 特別適合後端有自己 Template Engine 的使用場景,Hugo 雖然為 SSG,但因為使用了 Go Template,事實上與後端類似,因此也適合 Petite-vue,更可還原 Alpine 風格將 JavaScript 寫在 HTML 內。
使用 Module Mount 與解決與 Go Template 的 Delimiter 之後,Vue 3 也可搭配 Hugo 使用。
Hugo CLI 並沒有提供參數指定 Front Matter 的格式,預設會在 archetypes
目錄下建立 TOML 格式的 default.md
,必須手動將 TOML 改成 YAML 後,將來 hugo new content
才會使用 YAML 格式。
若使用 Homebrew 安裝 Hugo,可使用 Homebrew 簡單地更新 Hugo。
Hugo 不僅是個 CLI,更是一個 Framework,當使用 hego new site
建立一新站台後,他會自動建立一些預設目錄與檔案,可使團隊有相同的開發依據,也方便我們了解其他 Theme 架構。
儘管每年都有新的 SSG 問世,但 Hugo 仍然是很多人的首選,本文分析 Hugo 的優缺點,可視每個人的需求決定適不適合 Hugo。
Hugo 提供兩個目錄讓我們放 HTML Template:layouts
與 themes
,若該專案只是自己使用,並沒有想發布主題,或許你會想將所有 HTML Template 寫在 layouts
即可,但實務上仍建議寫在 themes
底下。
因為 Hugo 使用 Go 開發,所以自然使用 Go 習慣的 TOML 格式作為設定檔,但我們依然可使用 JSON 作為設定檔格式。
既然可在 ESM 中使用 createApp()
,搭配 Composition API 我們也可以 Module Pattern 形式管理重複代碼。
Hextra 主題有多種安裝方式,最簡單的就是使用官方所提供的 Starter Template。
Hextra 主題有多種安裝方式,若不想修改 Hextra 主題,且想獲得最乾淨的原始 Hugo 專案,則使用 Hugo Module 也是不錯方式。
Hextra 主題有多種安裝方式,若想修改 Hextra 主題,且想獲得最乾淨的原始 Hugo 專案,則要使用 Git Submodule 方式安裝。
使用 Hugo 時,有些檔案並不用近 Git,我們可將這些檔案寫在 .gitignore
內。
Hugo 是由 Go 所寫的 SSG,也是目前 JAMstack 下最快的 SSG。
Install Doks theme with the default configuration.
Install Congo theme with the default configuration and the example site. Congo theme is built with TailwindCSS 3.2.
Install Book theme with the default configuration and the example site.
Install Geekdoc theme with the default configuration.
Although we can place all layouts into the layouts
folder, we can also place these layouts into the themes
folder to build our theme.
Since home page has a different look than other content page, Hugo uses a separate layout layouts/index.html
for the home page to generate.
When using hugo new
to create many markdown files for a section, Hugo uses layouts/_default/list.html
as the default list page layout to generate.
Hugo is great for JAMstack, but we have to use vanilla JavaScript and CSS to create templates. With Alpine and TailwindCSS, we can create layouts by declarative style directly in HTML.
Hugo doesn’t clean up the public
folder. If you were to remove some pages or rename them, you would need to delete the generated versions from the public
folder as well.
When using hugo new
to create a markdown file, Hugo uses layouts/_default/single.html
as the default single page layout to generate.