深入理解Hugo: Txtar

package main
import (
    "bytes"
    "fmt"
    "path/filepath"
    "golang.org/x/tools/txtar"
)

文件结构 文件名: config.toml 文件内容:theme = ‘mytheme’

var files = "-- config.toml --\n" +
    "theme = 'mytheme'"

解析上面的文件结构

func main() {
    data := txtar.Parse([]byte(files))
    fmt.Println("File start:")

遍历解析生成的所有文件,通过File结构体获取文件名和文件数据 f.Name 获取文件名 f.Data 获取文件数据

    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.")
}

解析后得到文件config.toml,以及下面的文件内容 workingDir就是我们的工作目录,通常是要写入的文件目录

File start:
workingDir/config.toml
theme = 'mytheme'
File end.
Program exited.

Next example: Template.