Ejemplo simple de utilización de plantillas en go
main.go
package main
import (
"encoding/base64"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"os"
"strings"
"text/template"
)
type Doc struct {
Descripcion []string `json:"descripcion"`
Fecha []string `json:"fecha"`
ID string `json:"id"`
Titulo []string `json:"titulo"`
URL []string `json:"url"`
// Contenido []string `json:"contenido"`
}
type MiResponse struct {
Response Docs `json:"response"`
}
type Docs struct {
Docs []Doc `json:"docs"`
}
func main() {
resp, err := http.Get("https://searchengine.athosnetwork.es?rows=9999&q=docker")
if err != nil {
fmt.Println("err", err)
}
body, err2 := ioutil.ReadAll(resp.Body)
if err2 != nil {
fmt.Println("err2", err2)
}
final := strings.ReplaceAll(string(body), "\"", "")
bytes, _ := base64.StdEncoding.DecodeString(final)
resultado := MiResponse{}
json.Unmarshal(bytes, &resultado)
tmpl, err := template.ParseFiles("./template.gogo")
if err != nil {
panic(err)
}
err = tmpl.Execute(os.Stdout, resultado.Response.Docs)
if err != nil {
panic(err)
}
}
template.gogo
{{range $item := . -}}
Nombre de archivo: {{index $item.Titulo 0}}
Url: {{index $item.URL 0}}
{{ end }}
Resultado
Nombre de archivo: como-crear-un-contenedor-con-docker.md
Url: https://athosnetwork.es/posts/como-crear-un-contenedor-con-docker/
Nombre de archivo: instalar-ultima-version-docker-compose.md
Url: https://athosnetwork.es/posts/instalar-ultima-version-docker-compose/
Nombre de archivo: docker-y-runit.md
Url: https://athosnetwork.es/posts/docker-y-runit/
Nombre de archivo: montar-gitlab-self-hosted-con-linux-containers-lxc.md
Url: https://athosnetwork.es/posts/montar-gitlab-self-hosted-con-linux-containers-lxc/
Nombre de archivo: plantilla-docker-compose-wordpress-mysql.md
Url: https://athosnetwork.es/posts/plantilla-docker-compose-wordpress-mysql/
Nombre de archivo: ssh-tunneling.md
Url: https://athosnetwork.es/posts/ssh-tunneling/
Nombre de archivo: monitorizar-servidores-y-servicios.md
Url: https://athosnetwork.es/posts/monitorizar-servidores-y-servicios/
Nombre de archivo: mover-contenedor-lxc-de-un-servidor-a-otro.md
Url: https://athosnetwork.es/posts/mover-contenedor-lxc-de-un-servidor-a-otro/
Nombre de archivo: imagenes-alpine-en-docker.md
Url: https://athosnetwork.es/posts/imagenes-alpine-en-docker/