iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
Modern Web

Hugo 貼身打造個人部落格系列 第 5

Day 05. Hugo Site 資料夾

  • 分享至 

  • xImage
  •  

Hugo 資料夾裡面有什麼

上次 new 一個專案資料夾長這樣,我稍微講一下每個資料夾放些什麼:

.
├── archetypes
├── config.toml
├── content
├── data
├── layouts
├── static
└── themes
  • archetypes

    放文章模板文件的地方,當你 new 一個新的 content files 時,會根據這邊的模板產生 markdown 文件,例如 archetypes/default.md,若你 new 的文章頂層資料夾名稱 (top level path) 對應不到模板時,會使用 default.md 作為模板生成文件。

  • config.toml

    網站 environments 配置檔,所有網站建置參數都可在此設置,之後文章有提到或使用相關設置時會在個別說明。

  • content

    所有 new 出來的文章都會放在這;如果你想要把文章個別分不同的 setion (top level path),例如 drafts(草稿)、posts(已發布文章),可透過新增文章指令,指定的不同頂層路徑,生成文件到不同資料夾中。

    hugo new drafts/my-drafts.md # 新增一份草稿
    

    補充說明: 此例你必須透過定義 drafts.md 模板內容 draft: true,讓生成 草稿文件 真的是 草稿狀態,否則文件一樣會是已發布狀態。

  • data

    我目前還沒使用到這個資料夾,依照官方說法是,你可以把一些資料集放在這,支援格式有 YAML, JSON, 或是 TOML;換句話說,這可以當作你的資料庫使用,例如你的網站是專門介紹咖啡的,你有一組每個縣市最好喝的咖啡清單,就可以在這邊創建:

    {
        "taipei_no_1": "鐵定好喝咖啡店",
        "taichung_no_1": "1976 咖啡館",
        ...
    }
    

    至於運用方式請參考 Hugo Data Templates

  • layouts

    你的靜態網站的 .html 文件都會放在這,但你 new 的專案一開始會是空的,主要都是由佈景建構 layouts。

  • static

    靜態資源檔案,例如圖片、js、css 等會放在這邊。

  • themes

    放各種佈景的地方,如果不常換來換去的話,底下只會放一種佈景,你可以建置一個 sandbox,透過 --theme 參數去切換嘗試各種不同佈景,在本地跑起來看看他們的樣子。

小結

還有很多資料夾是 new site 時不會產生的,例如 assets、i18n、public,之後文章還會有機會帶到;明天會講要如何挑選佈景。

參考連結


上一篇
Day 04. Hugo New Site
下一篇
Day 06. Hugo Theme 佈景
系列文
Hugo 貼身打造個人部落格30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
alicexdcw
iT邦新手 5 級 ‧ 2021-06-05 09:35:06

想請教一下
若你 new 的文章頂層資料夾名稱 (top level path) 對應不到模板時,會使用 default.md 作為模板生成文件。
這裡的頂層資料夾名稱是甚麼意思呢? "對應不到模板"的意思是會對應到哪裡的模板?archetypes嗎?

你好,我腦海記憶體有點清空了,我努力的回想一下,這邊當初寫的「頂層資料夾」指的是

hugo new {頂層資料夾}/content.md

例如:post、page

對應模板則為:

  • archetypes/post.md
    當你下 hugo new post/content.md,hugo 會複製 archetypes/post.md 檔案,命名為 content.md,放在 content/post 底下
  • archetypes/page.md
    當你下 hugo new page/content.md,hugo 會複製 archetypes/page.md 檔案,命名為 content.md,放在 content/page 底下

對應不到的意思為:

  • hugo new foo/content.md (archetypes/底下沒有 foo.md,則使用 default.md 作爲模板)
0
idea-stu
iT邦新手 5 級 ‧ 2023-03-23 20:31:00

draft: true 要怎麼設定?

寫在 Front Matter 中,例如

---
categories:
- Hugo
- Test
date: "2020-09-25"
slug: "test"
title: "我是 yaml 格式的 Front Matter"
draft: true
---

Boom!!

ref

我要留言

立即登入留言