diff options
Diffstat (limited to 'src/mixins/post.pug')
-rw-r--r-- | src/mixins/post.pug | 93 |
1 files changed, 37 insertions, 56 deletions
diff --git a/src/mixins/post.pug b/src/mixins/post.pug index c4f3bc5..30310a8 100644 --- a/src/mixins/post.pug +++ b/src/mixins/post.pug | |||
@@ -28,77 +28,58 @@ mixin post(p, currentUrl) | |||
28 | | · | 28 | | · |
29 | a(href=`/comments/${p.id}?from=${from}&sort=${sortQuery}&view=${viewQuery}`) #{fmtnum (p.num_comments)} ↩ | 29 | a(href=`/comments/${p.id}?from=${from}&sort=${sortQuery}&view=${viewQuery}`) #{fmtnum (p.num_comments)} ↩ |
30 | if (query.view == "card" && !isPostGallery(p) && !isPostImage(p) && !isPostVideo(p) && p.selftext_html) | 30 | if (query.view == "card" && !isPostGallery(p) && !isPostImage(p) && !isPostVideo(p) && p.selftext_html) |
31 | div.self-text-overflow(class='card') | 31 | div.self-text-overflow.card |
32 | if query.view == "card" && (p.spoiler || p.over_18) | 32 | if p.spoiler || p.over_18 |
33 | div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`) | 33 | div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`) |
34 | h2 | 34 | h2 |
35 | != p.over_18 ? 'nsfw' : 'spoiler' | 35 | != p.over_18 ? 'nsfw' : 'spoiler' |
36 | div.self-text(class='card') | 36 | div.self-text.card |
37 | != convertInlineImageLinks(p.selftext_html) | 37 | != convertInlineImageLinks(p.selftext_html) |
38 | div.media-preview(class=`${query.view}`) | 38 | if query.view != "card" |
39 | - var onclick = query.view != "card" ? `toggleDetails('${p.id}')` : `` | 39 | div.media-preview |
40 | - var onclick = `toggleDetails('${p.id}')` | ||
41 | if isPostGallery(p) | ||
42 | - var item = (p.over_18 ? `/nsfw.svg` : p.spoiler ? `/spoiler.svg` : postGalleryItems(p)[0].url) | ||
43 | img(src=item onclick=onclick) | ||
44 | else if isPostImage(p) | ||
45 | - var url = postThumbnail(p) | ||
46 | img(src=url onclick=onclick) | ||
47 | else if isPostVideo(p) | ||
48 | - var decodedVideos = decodePostVideoUrls(p) | ||
49 | video(autoplay="" muted="" data-dashjs-player="" onclick=`toggleDetails('${p.id}')` poster=decodedVideos[4] width="100px" height="100px") | ||
50 | // Scrubber | ||
51 | source(src=decodedVideos[3]) | ||
52 | else if isPostLink(p) | ||
53 | a(href=p.url) | ||
54 | | ↗ | ||
55 | |||
56 | details(id=`${p.id}` open=(query.view == "card" && (isPostGallery(p) || isPostImage(p) || isPostVideo(p)))) | ||
57 | summary.expand-post expand media | ||
58 | div.image-viewer | ||
40 | if query.view == "card" && (p.spoiler || p.over_18) && (isPostGallery(p) || isPostImage(p) || isPostVideo(p)) | 59 | if query.view == "card" && (p.spoiler || p.over_18) && (isPostGallery(p) || isPostImage(p) || isPostVideo(p)) |
41 | div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`) | 60 | div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`) |
42 | h2 | 61 | h2 |
43 | != p.over_18 ? 'nsfw' : 'spoiler' | 62 | != p.over_18 ? 'nsfw' : 'spoiler' |
44 | if isPostGallery(p) | 63 | if isPostGallery(p) |
45 | - var item = postGalleryItems(p)[0] | 64 | div.gallery |
46 | if query.view == "card" | 65 | each item in postGalleryItems(p) |
47 | div.gallery(class=`${query.view}`) | 66 | div.gallery-item |
48 | each item in postGalleryItems(p) | 67 | a(href=`/media/${item.url}`) |
49 | div.gallery-item(class=`${query.view}`) | 68 | img(src=item.url loading="lazy") |
50 | a(href=`/media/${item.url}`) | 69 | div.gallery-item-idx |
51 | img(src=item.url loading="lazy") | 70 | | #{`${item.idx}/${item.total}`} |
52 | div.gallery-item-idx(class=`${query.view}`) | ||
53 | | #{`${item.idx}/${item.total}`} | ||
54 | else | ||
55 | img(src=item.url onclick=onclick) | ||
56 | else if isPostImage(p) | 71 | else if isPostImage(p) |
57 | - var url = query.view == "card" ? p.url : postThumbnail(p) | 72 | a(href=`/media/${p.url}`) |
58 | #{query.view == "card" ? "a href=/media/" + url : span} | 73 | img(src=p.url loading="lazy") |
59 | img(src=url onclick=onclick) | ||
60 | else if isPostVideo(p) | 74 | else if isPostVideo(p) |
61 | - var decodedVideos = decodePostVideoUrls(p) | 75 | - var decodedVideos = decodePostVideoUrls(p) |
62 | if query.view == "card" | 76 | video(controls="" muted="" data-dashjs-player="" preload="metadata" playsinline="" poster=decodedVideos[4] objectfit="contain" loading="lazy") |
63 | video(controls="" muted="" data-dashjs-player="" preload="metadata" poster=decodedVideos[4]) | ||
64 | // HLS | 77 | // HLS |
65 | source(src=decodedVideos[0]) | 78 | source(src=decodedVideos[0]) |
66 | // Dash | 79 | // Dash |
67 | source(src=decodedVideos[1]) | 80 | source(src=decodedVideos[1]) |
68 | // Fallback | 81 | // Fallback |
69 | source(src=decodedVideos[2]) | 82 | source(src=decodedVideos[2]) |
70 | else | 83 | if (query.view == "compact") |
71 | video(autoplay="" muted="" data-dashjs-player="" onclick=`toggleDetails('${p.id}')` width="100px" height="100px") | 84 | button(onclick=`toggleDetails('${p.id}')`) |
72 | // Scrubber | 85 | | close |
73 | source(src=decodedVideos[3]) | ||
74 | else if isPostLink(p) | ||
75 | a(href=p.url) | ||
76 | if (query.view == 'card') | ||
77 | | #{p.domain} | ||
78 | | ↗ | ||
79 | |||
80 | if query.view == "compact" && (isPostGallery(p) || isPostImage(p) || isPostVideo(p)) | ||
81 | details(id=`${p.id}`) | ||
82 | summary.expand-post expand media | ||
83 | div.image-viewer | ||
84 | if isPostGallery(p) | ||
85 | div.gallery | ||
86 | each item in postGalleryItems(p) | ||
87 | div.gallery-item | ||
88 | div.gallery-item-idx | ||
89 | | #{`${item.idx}/${item.total}`} | ||
90 | a(href=`/media/${item.url}`) | ||
91 | img(src=item.url loading="lazy") | ||
92 | else if isPostImage(p) | ||
93 | a(href=`/media/${p.url}`) | ||
94 | img(src=p.url loading="lazy").post-media | ||
95 | else if isPostVideo(p) | ||
96 | video(controls="" muted="" data-dashjs-player="" preload="metadata" playsinline="" poster=decodedVideos[4] objectfit="contain" loading="lazy").post-media | ||
97 | //HLS | ||
98 | source(src=decodedVideos[0]) | ||
99 | // Dash | ||
100 | source(src=decodedVideos[1]) | ||
101 | // Fallback | ||
102 | source(src=decodedVideos[2]) | ||
103 | button(onclick=`toggleDetails('${p.id}')`) | ||
104 | | close | ||