最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Hugo 游樂(lè)場(chǎng)內(nèi)容初始化示例詳解

 更新時(shí)間:2023年02月24日 16:46:35   作者:GitAction  
這篇文章主要為大家介紹了Hugo 游樂(lè)場(chǎng)內(nèi)容初始化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

使用Hugo構(gòu)建站點(diǎn)的體驗(yàn)很棒。 首先是構(gòu)建速度快,其次是使用起來(lái)簡(jiǎn)單,一個(gè)hugo命令,我們的站點(diǎn)就已經(jīng)就緒。

在構(gòu)建過(guò)程中,Hugo提供了豐富的內(nèi)置功能函數(shù),可以在構(gòu)建過(guò)程中向你提供所需要的幾乎任何站點(diǎn)相關(guān)的信息。 通過(guò)可重用模板,讓主題來(lái)幫助處理所有展示和布局相關(guān)的問(wèn)題。 讓作者更專注在內(nèi)容的創(chuàng)作上。

Hugo 游樂(lè)場(chǎng)

站點(diǎn)構(gòu)建的就將寫(xiě)好的內(nèi)容,轉(zhuǎn)化成Web服務(wù)器能理解的網(wǎng)站資源。 比如我們寫(xiě)作的時(shí)候用的是Markdown格式,生成的網(wǎng)站資源通常是HTML格式。

下面是一個(gè)簡(jiǎn)單的初始化博客內(nèi)容:

-- config.toml --
theme = "mytheme"
contentDir = "mycontent"
-- myproject.txt --
Hello project!
-- themes/mytheme/mytheme.txt --
Hello theme!
-- mycontent/blog/post.md --
---
title: "Post Title"
---
### first blog
Hello Blog
-- layouts/index.html --
{{ $entries := (readDir ".") }}
START:|{{ range $entry := $entries }}{{ if not $entry.IsDir }}{{ $entry.Name }}|{{ end }}{{ end }}:END:
-- layouts/_default/single.html --
{{ .Content }}
===
Static Content
===

可以看到我們自定義了一個(gè)主題mytheme,只有一個(gè)mytheme.txt文件,并沒(méi)有實(shí)際的模板文件。 這將會(huì)在下面的構(gòu)建流程講解中,幫助我們理解到主題是如何嵌套和加載的。

我們的內(nèi)容文件夾是mycontent,在blog目錄下有一篇簡(jiǎn)單博文/blog/post.md。 如果想要獨(dú)立訪問(wèn)這篇博文,就需要為她生成一個(gè)HTML文件,這樣我們就可以在瀏覽器中訪問(wèn)了。

在樣例中,為了生成首頁(yè)和博客,我們還在layouts下創(chuàng)建了兩個(gè)模板。 一個(gè)是首頁(yè)模板index.html,另一個(gè)則是單篇文章會(huì)用到的模板_default/single.html。

通過(guò)golang tools txtar解析上述文本,方便我們轉(zhuǎn)換成如下結(jié)構(gòu)的磁盤(pán)文件:

.
├── config.toml
├── layouts
│  ├── _default
│  │   └── single.html
│  └── index.html
├── mycontent
│   └── blog
│     └── post.md
├── myproject.txt
└── themes
    └── mytheme
        └── mytheme.txt

通過(guò)Hugo命令進(jìn)行構(gòu)建,就能生成如下站點(diǎn)資源:

?  public tree
.
├── blog
│   └── index.html
├── index.html
└── robots.txt

并包含了我們想要的信息:

站點(diǎn)首頁(yè)

?  public cat index.html
START:|config.toml|myproject.txt|:END:%

博客頁(yè)面

?  public cat blog/index.html
<h3 id="first-blog">first blog</h3>
<p>Hello Blog</p>
===
Static Content
===
  %

那Hugo的這個(gè)魔術(shù)到底是怎么變出來(lái)的呢?

為了了解Hugo構(gòu)建的核心原理,通過(guò)對(duì)Hugo最新源碼進(jìn)行裁剪,移除當(dāng)前階段不必要的"噪音"。 結(jié)合我們上面的實(shí)例,手動(dòng)生成了一個(gè)最小可工作源碼庫(kù) - hugo游樂(lè)場(chǎng)。 以保證我們?cè)谶@個(gè)游樂(lè)場(chǎng)可以盡情地玩耍,專注于核心原理,享受整個(gè)源碼的學(xué)習(xí)過(guò)程。

通過(guò)命令:

git ls-files | grep '.go' | xargs wc -l

分別統(tǒng)計(jì)gohugoio/hugohugo playground的代碼行數(shù)。 我們得到的數(shù)據(jù)分別是 16307533990 行。

整整縮減了近四倍!

相信各位看官也會(huì)虎軀一震,信心倍增!看源碼原來(lái)也可以這么開(kāi)心。 請(qǐng)準(zhǔn)備好瓜子飲料小板凳,各位看官你細(xì)聽(tīng)分說(shuō)。

Show Me The Code

package main
import (
   "bytes"
   "fmt"
   "path/filepath"
   "golang.org/x/tools/txtar"
)
// 文件結(jié)構(gòu)
// 文件名: config.toml
// 文件內(nèi)容:theme = 'mytheme'
var files = "-- config.toml --\n" +
   "theme = 'mytheme'"
func main() {
   // 解析上面的文件結(jié)構(gòu)
   data := txtar.Parse([]byte(files))
   fmt.Println("File start:")
   // 遍歷解析生成的所有文件,通過(guò)File結(jié)構(gòu)體獲取文件名和文件數(shù)據(jù)
   // f.Name 獲取文件名
   // f.Data 獲取文件數(shù)據(jù)
   for _, f := range data.Files {
      filename := filepath.Join("workingDir", f.Name)
      data := bytes.TrimSuffix(f.Data, []byte("\n"))
      fmt.Println(filename)
      fmt.Println(string(data))
   }
   fmt.Println("File end.")
}

Output:

# 解析后得到文件config.toml,以及下面的文件內(nèi)容
# workingDir就是我們的工作目錄,通常是要寫(xiě)入的文件目錄
File start:
workingDir/config.toml
theme = 'mytheme'
File end.

Try it yourself

以上就是Hugo 游樂(lè)場(chǎng)內(nèi)容初始化示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Hugo 內(nèi)容初始化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 3個(gè)Go語(yǔ)言中實(shí)用重構(gòu)技術(shù)分享

    3個(gè)Go語(yǔ)言中實(shí)用重構(gòu)技術(shù)分享

    代碼重構(gòu)是在不改變外部功能的情況下對(duì)現(xiàn)有代碼進(jìn)行改進(jìn),是編程的核心部分之一,本文為大家介紹了Go語(yǔ)言中3個(gè)實(shí)用重構(gòu)技術(shù),需要的可以參考一下
    2023-06-06
  • 詳解go 中的 fmt 占位符

    詳解go 中的 fmt 占位符

    這篇文章主要介紹了go 中的 fmt 占位符,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • go語(yǔ)言實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的http文件服務(wù)器實(shí)例

    go語(yǔ)言實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的http文件服務(wù)器實(shí)例

    這篇文章主要介紹了go語(yǔ)言實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的http文件服務(wù)器的方法,實(shí)例分析了Go語(yǔ)言操作http的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 基于Golang實(shí)現(xiàn)內(nèi)存數(shù)據(jù)庫(kù)的示例詳解

    基于Golang實(shí)現(xiàn)內(nèi)存數(shù)據(jù)庫(kù)的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何基于Golang實(shí)現(xiàn)內(nèi)存數(shù)據(jù)庫(kù),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以參考一下
    2023-03-03
  • golang優(yōu)先級(jí)隊(duì)列的實(shí)現(xiàn)全過(guò)程

    golang優(yōu)先級(jí)隊(duì)列的實(shí)現(xiàn)全過(guò)程

    優(yōu)先級(jí)隊(duì)列是一種特殊隊(duì)列,下面這篇文章主要給大家介紹了關(guān)于golang優(yōu)先級(jí)隊(duì)列的實(shí)現(xiàn)全過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 利用Go語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單Ping過(guò)程的方法

    利用Go語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單Ping過(guò)程的方法

    相信利用各種語(yǔ)言實(shí)現(xiàn)Ping已經(jīng)是大家喜聞樂(lè)見(jiàn)的事情了,網(wǎng)絡(luò)上利用Golang實(shí)現(xiàn)Ping已經(jīng)有比較詳細(xì)的代碼示例,但大多是僅僅是實(shí)現(xiàn)了Request過(guò)程,而對(duì)Response的回顯內(nèi)容并沒(méi)有做接收。而Ping程序不僅僅是發(fā)送一個(gè)ICMP,更重要的是如何接收并進(jìn)行統(tǒng)計(jì)。
    2016-09-09
  • golang1.21泛型函數(shù)全面講解

    golang1.21泛型函數(shù)全面講解

    在Go編程語(yǔ)言中,泛型一直是一個(gè)備受期待的特性,隨著Go?1.21的發(fā)布,本文旨在提供Go?1.21中泛型的詳細(xì)探索,闡明它們的優(yōu)點(diǎn)、語(yǔ)法、實(shí)現(xiàn)和最佳實(shí)踐,希望對(duì)大家有所幫助
    2023-09-09
  • 詳解Golang實(shí)現(xiàn)http重定向https的方式

    詳解Golang實(shí)現(xiàn)http重定向https的方式

    這篇文章主要介紹了詳解Golang實(shí)現(xiàn)http重定向https的方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • GoLang基于zap日志庫(kù)的封裝過(guò)程詳解

    GoLang基于zap日志庫(kù)的封裝過(guò)程詳解

    Zap是我個(gè)人比較喜歡的日志庫(kù),是uber開(kāi)源的,有較好的性能,在項(xiàng)目開(kāi)發(fā)中,經(jīng)常需要把程序運(yùn)行過(guò)程中各種信息記錄下來(lái),有了詳細(xì)的日志有助于問(wèn)題排查和功能優(yōu)化,這篇文章主要介紹了GoLang基于zap日志庫(kù)的封裝過(guò)程,想要詳細(xì)了解可以參考下文
    2023-05-05
  • golang使用接口進(jìn)行靈活緩存

    golang使用接口進(jìn)行靈活緩存

    緩存是編程中一種常見(jiàn)的技術(shù),通過(guò)存儲(chǔ)昂貴的計(jì)算或?IO?結(jié)果來(lái)快速查找,從而提高性能,本文將介紹一下Go的接口如何幫助構(gòu)建靈活、可擴(kuò)展的緩存,感興趣的可以了解下
    2023-09-09

最新評(píng)論

于田县| 石棉县| 仁怀市| 星座| 丽江市| 正安县| 霸州市| 乐都县| 万州区| 延吉市| 中卫市| 滨海县| 乐都县| 南京市| 江北区| 锡林郭勒盟| 墨玉县| 太谷县| 普宁市| 灵武市| 金山区| 海城市| 梅河口市| 恩施市| 山丹县| 鞍山市| 稷山县| 克什克腾旗| 安溪县| 清新县| 巴里| 涡阳县| 达州市| 福海县| 金平| 阜新市| 图木舒克市| 平湖市| 水城县| 乐至县| 池州市|