package views import ( "fmt" "gitrepo.ru/neonxp/gorum/models" "gitrepo.ru/neonxp/gorum/utils" "strconv" ) templ Node(node *models.Node, topics []*models.Node, nodes []*models.Node) { @Layout(node.Parent) { switch node.Type { case models.TopicType:

{ node.Text }

Новая подтема
case models.PostType:

Пост

@Post(node, 0, false) } if len(topics) != 0 { for _, n := range topics { @Topic(n) }
Тема Тем/Ответов Дата Автор
} if len(nodes) == 0 { Постов нет } for _, n := range nodes { @Post(n, level(node), true) } if isAuthorized(ctx) { @NewPostForm(node) } else { Войдите чтобы ответить в тему. } } } templ Topic(n *models.Node) { { n.Text } { strconv.Itoa(len(n.Children)) } { utils.FormatDate(n.CreatedAt) } { n.Author.Username } } css levelStyle(level int) { margin-left: { fmt.Sprintf("%dem", level) }; } templ Post(n *models.Node, level int, withFooter bool) {
{ n.Author.Username } { utils.FormatDate(n.CreatedAt) }
@templ.Raw(utils.MarkdownToHTML(n.Text)) if withFooter { }
} func level(node *models.Node) int { if node.Type == models.PostType { return 1 } return 0 }