Maybe templating engines help..
here's one example.

https://github.com/gobuffalo/plush

On Mon, Jun 29, 2020 at 3:27 AM Bill Nixon <bnixo...@gmail.com> wrote:

> I am trying to do some creative formatting using text template and wanted
> to see if there might be a better approach than what I implemented.
>
> I have an array of structs, where each element has a Project and Task. The
> array is sorted by Project.
> type DisplayTask struct {
>  Project string
>  Task string
> }
>
> I want to output all the tasks within a project without repeating the
> project name each time and I want the tasks to be indented, for example:
>
> Project1
>   Task1
>   Task2
> Project2
>   Task3
> Project3
>   Task4
>   Task5
>
> After much experimentation, I am using the following template and trying
> to determine if there is a way to avoid the printf and just have the indent
> as part of the template, but I can't figure out a way to do this and
> suppress white space (newline) from the if statement for the same project.
> {{- $lastProject := "" -}}
> {{ range . }}
> {{- if (ne $lastProject .Project) -}}
> {{ .Project }} {{ $lastProject = .Project }}
> {{ end -}}
>   {{ printf "  %s" .Task }}
> {{ end -}}
>
> Go Playground of the working code is at
> https://play.golang.org/p/3qqVW8lN-Ha
>
> The challenge I had was suppressing white space after the end, but still
> allowing an indent via white space, so resorted to the printf.
>
> Is there a better way?
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/8da74f77-a462-4bdf-9491-38e403d8c250o%40googlegroups.com
> <https://groups.google.com/d/msgid/golang-nuts/8da74f77-a462-4bdf-9491-38e403d8c250o%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CA%2BVCgc2ft53o2GL6ab%2BFgGE%3DAc3UnM-721BcQzS%3DKw2vL%3DNK4Q%40mail.gmail.com.

Reply via email to