blob: 26dc976d80ce28f1f453bd09ea96ef911d90021d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
include ../utils
include postUtils
mixin post(p, currentUrl)
- var from = encodeURIComponent(currentUrl)
- var viewQuery = query && query.view ? query.view : 'compact'
- var sortQuery = query && query.sort ? query.sort + (query.t ? '&t=' + query.t : '') : 'hot'
article(class=`post ${p.stickied?"sticky":""}`)
div.post-container(class=`${query.view}`)
div.post-text(class=`${query.view}`)
div.title-container(class=`${query.view}`)
a(class=`${query.view}`, href=`/comments/${p.id}?from=${from}&sort=${sortQuery}&view=${viewQuery}`)
!= p.title
span.domain (#{p.domain})
div.info-container
p
| #{fmtnum(p.ups)} ↑
span.post-author
| ·
| u/#{p.author}
| ·
| #{timeDifference(Date.now(), p.created * 1000)}
| ·
a(href=`/r/${p.subreddit}?sort=${sortQuery}&view=${viewQuery}`) r/#{p.subreddit}
| ·
a(href=`/comments/${p.id}?from=${from}&sort=${sortQuery}&view=${viewQuery}`) #{fmtnum (p.num_comments)} ↩
if (query.view == "card" && !isPostGallery(p) && !isPostImage(p) && !isPostVideo(p) && p.selftext_html)
div.self-text-overflow(class='card')
if query.view == "card" && (p.spoiler || p.over_18)
div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`)
h2
!= p.over_18 ? 'nsfw' : 'spoiler'
div.self-text(class='card')
!= convertInlineImageLinks(p.selftext_html)
div.media-preview(class=`${query.view}`)
if query.view == "card" && (p.spoiler || p.over_18) && (isPostGallery(p) || isPostImage(p) || isPostVideo(p))
div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`)
h2
!= p.over_18 ? 'nsfw' : 'spoiler'
if isPostGallery(p)
- var item = postGalleryItems(p)[0]
img(src=item.url onclick=`toggleDetails('${p.id}')`)
else if isPostImage(p)
- var url = query.view == "card" ? p.url : postThumbnail(p)
img(src=url onclick=`toggleDetails('${p.id}')`)
else if isPostVideo(p)
- var decodedVideos = decodePostVideoUrls(p)
if query.view == "card"
video(controls="" muted="" data-dashjs-player="" preload="metadata" poster=decodedVideos[4])
// HLS
source(src=decodedVideos[0])
// Dash
source(src=decodedVideos[1])
// Fallback
source(src=decodedVideos[2])
else
video(autoplay="" muted="" data-dashjs-player="" onclick=`toggleDetails('${p.id}')` width="100px" height="100px")
// Scrubber
source(src=decodedVideos[3])
else if isPostLink(p)
a(href=p.url)
if (query.view == 'card')
| #{p.domain}
| ↗
if (isPostGallery(p) || isPostImage(p) || isPostVideo(p))
details(id=`${p.id}`,class=`${query.view}`)
summary.expand-post expand media
div.image-viewer(class=`${query.view}`)
if isPostGallery(p)
div.gallery(class=`${query.view}`)
each item in postGalleryItems(p)
div.gallery-item(class=`${query.view}`)
div.gallery-item-idx(class=`${query.view}`)
| #{`${item.idx}/${item.total}`}
a(href=`/media/${item.url}`)
img(src=item.url loading="lazy")
else if isPostImage(p)
a(href=`/media/${p.url}`)
img(src=p.url loading="lazy").post-media
else if isPostVideo(p)
video(controls="" muted="" data-dashjs-player="" preload="metadata" playsinline="" poster=decodedVideos[4] objectfit="contain" loading="lazy").post-media
//HLS
source(src=decodedVideos[0])
// Dash
source(src=decodedVideos[1])
// Fallback
source(src=decodedVideos[2])
button(onclick=`toggleDetails('${p.id}')`,class=`${query.view}`)
if (query.view == 'card')
| ╳
else
| close
|