data.GetCSV
Instead, use transform.Unmarshal
with a global, page, or remote resource.
See the remote data example.
Given the following directory structure:
my-project/
└── other-files/
└── pets.csv
Access the data with either of the following:
{{ $data := getCSV "," "other-files/pets.csv" }}
{{ $data := getCSV "," "other-files/" "pets.csv" }}
When working with local data, the file path is relative to the working directory.
You must not place CSV files in the project's data directory.
Access remote data with either of the following:
{{ $data := getCSV "," "https://example.org/pets.csv" }}
{{ $data := getCSV "," "https://example.org/" "pets.csv" }}
The resulting data structure is an array of arrays:
[
["name","type","breed","age"],
["Spot","dog","Collie","3"],
["Felix","cat","Malicious","7"]
]
Options​
Add headers to the request by providing an options map:
{{ $opts := dict "Authorization" "Bearer abcd" }}
{{ $data := getCSV "," "https://example.org/pets.csv" $opts }}
Add multiple headers using a slice:
{{ $opts := dict "X-List" (slice "a" "b" "c") }}
{{ $data := getCSV "," "https://example.org/pets.csv" $opts }}
Global resource alternative​
Consider using the resources.Get
function with transform.Unmarshal
when accessing a global resource.
my-project/
└── assets/
└── data/
└── pets.csv
{{ $data := dict }}
{{ $p := "data/pets.csv" }}
{{ with resources.Get $p }}
{{ $opts := dict "delimiter" "," }}
{{ $data = . | transform.Unmarshal $opts }}
{{ else }}
{{ errorf "Unable to get resource %q" $p }}
{{ end }}
Page resource alternative​
Consider using the Resources.Get
method with transform.Unmarshal
when accessing a page resource.
my-project/
└── content/
└── posts/
└── my-pets/
├── index.md
└── pets.csv
{{ $data := dict }}
{{ $p := "pets.csv" }}
{{ with .Resources.Get $p }}
{{ $opts := dict "delimiter" "," }}
{{ $data = . | transform.Unmarshal $opts }}
{{ else }}
{{ errorf "Unable to get resource %q" $p }}
{{ end }}
Remote resource alternative​
Consider using the resources.GetRemote
function with transform.Unmarshal
when accessing a remote resource to improve error handling and cache control.
{{ $data := dict }}
{{ $u := "https://example.org/pets.csv" }}
{{ with resources.GetRemote $u }}
{{ with .Err }}
{{ errorf "%s" . }}
{{ else }}
{{ $opts := dict "delimiter" "," }}
{{ $data = . | transform.Unmarshal $opts }}
{{ end }}
{{ else }}
{{ errorf "Unable to get remote resource %q" $u }}
{{ end }}