100 lines
3.4 KiB
HTML
100 lines
3.4 KiB
HTML
<div class="timeline-item flex flex-column pa3" data-id="{{ .ID }}" {{ with .FilterTitle }}data-filter-title="{{ . }}"{{ end }}>
|
|
{{/* top bar - avatar, info, date */}}
|
|
|
|
<div class="flex items-center">
|
|
{{ if .OwnerAvatarUrl }}
|
|
<a class="flex flex-shrink-0" href="{{ .OwnerUrl }}">
|
|
<img class="avatar avatar-user {{ if .ForumLayout }}mr3{{ else }}mr2{{ end }}" src="{{ .OwnerAvatarUrl }}" />
|
|
</a>
|
|
{{ end }}
|
|
{{ if .ForumLayout }}
|
|
<div class="overflow-hidden flex-grow-1 flex flex-column g1 justify-center">
|
|
{{ with .Breadcrumbs }}
|
|
{{ template "breadcrumbs.html" . }}
|
|
{{ end }}
|
|
{{ if .Title }}
|
|
<div class="f5 lh-title {{ if not .AllowTitleWrap }}nowrap truncate{{ end }}">
|
|
{{ with .TypeTitle }}<b class="dn di-ns">{{ . }}:</b>{{ end }}
|
|
<a href="{{ .Url }}">{{ .Title }}</a>
|
|
</div>
|
|
{{ end }}
|
|
<div class="details link-normal">
|
|
<a class="user" href="{{ .OwnerUrl }}">{{ .OwnerName }}</a>
|
|
— {{ timehtml (absoluteshortdate .Date) .Date }}
|
|
</div>
|
|
</div>
|
|
|
|
{{ if .Editable }}
|
|
<a href="javascript:;" class="edit ml2">✎</a>
|
|
<div class="dn rawdesc">{{ .RawDescription }}</div>
|
|
{{ end }}
|
|
{{ else }}
|
|
<div class="overflow-hidden flex-grow-1 flex flex-column g1 justify-center link-normal">
|
|
{{ if .Breadcrumbs }}
|
|
<div>Use .ForumLayout if you want breadcrumbs :)</div>
|
|
{{ end }}
|
|
{{ if .Title }}
|
|
<div>Use .ForumLayout if you want a title :)</div>
|
|
{{ end }}
|
|
<a class="user b" href="{{ .OwnerUrl }}">{{ .OwnerName }}</a>
|
|
<a class="f6" href="{{ .Url }}">{{ timehtml (absoluteshortdate .Date) .Date }}</a>
|
|
</div>
|
|
{{ if eq (len .Projects) 1 }}
|
|
{{ $p := index .Projects 0 }}
|
|
<div class="overflow-hidden flex flex-column g1 justify-center link-normal tr">
|
|
<a class="user b" href="{{ $p.Url }}">{{ $p.Name }}</a>
|
|
</div>
|
|
{{ end }}
|
|
{{ range .Projects }}
|
|
{{ if .Logo }}
|
|
<a class="flex flex-shrink-0" href="{{ .Url }}">
|
|
<img class="avatar ml2" src="{{ .Logo }}">
|
|
</a>
|
|
{{ end }}
|
|
{{ end }}
|
|
{{ end }}
|
|
</div>
|
|
|
|
{{/* content */}}
|
|
|
|
{{ range .Media }}
|
|
<div class="timeline-media mt3 {{ if eq .Type mediaembed }}timeline-embed{{ end }} overflow-hidden flex {{ if not (eq .Type mediaunknown) }}justify-center{{ end }}">
|
|
{{ if eq .Type mediaimage }}
|
|
<img src="{{ .AssetUrl }}">
|
|
{{ else if eq .Type mediavideo }}
|
|
{{ if .ThumbnailUrl }}
|
|
<video src="{{ .AssetUrl }}" poster="{{ .ThumbnailUrl }}" preload="none" controls>
|
|
{{ else }}
|
|
<video src="{{ .AssetUrl }}" preload="metadata" controls>
|
|
{{ end }}
|
|
{{ else if eq .Type mediaaudio }}
|
|
<audio src="{{ .AssetUrl }}" controls>
|
|
{{ else if eq .Type mediaembed }}
|
|
{{ .EmbedHTML }}
|
|
{{ else }}
|
|
<div class="project-card pv1 ph2">
|
|
<a href="{{ .AssetUrl }}" target="_blank">{{ .Filename }} ({{ filesize .FileSize }})</a>
|
|
</div>
|
|
{{ end }}
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ if .Description }}
|
|
<div class="mt3 overflow-hidden relative {{ if .TruncateDescription }}maxh-5{{ end }}">
|
|
<div class="post-content">{{ trim .Description }}</div>
|
|
{{ if .TruncateDescription }}
|
|
<div class="excerpt-fade absolute w-100 h4 bottom-0 z-999"></div>
|
|
{{ end }}
|
|
</div>
|
|
{{ if .TruncateDescription }}
|
|
<div class="mt2">
|
|
<a href="{{ .Url }}">Read more »</a>
|
|
</div>
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
{{ with .DiscordMessageUrl }}
|
|
<a class="f7 mt3 i" href="{{ . }}" target="_blank">View original message on Discord</a>
|
|
{{ end }}
|
|
</div>
|