2021-01-01 12:54:13 +13:00
{% macro options(current, values, default) -%}
{% for value in values %}
2021-12-27 18:18:20 +13:00
< option value = "{{ value }}" { % if current = = value . to_string ( ) | | ( current = = " " & & value . to_string ( ) = = default . to_string ( ) ) % } selected { % endif % } >
2021-02-21 09:14:32 +13:00
{{ format!("{}{}", value.get(0..1).unwrap_or_default().to_uppercase(), value.get(1..).unwrap_or_default()) }}
2021-01-01 12:54:13 +13:00
< / option >
{% endfor %}
{%- endmacro %}
{% macro sort(root, methods, selected) -%}
{% for method in methods %}
2021-12-27 18:18:20 +13:00
< a { % if method . to_string ( ) = = selected . to_string ( ) % } class = "selected" { % endif % } href = "{{ root }}/{{ method }}" >
2021-02-21 09:14:32 +13:00
{{ format!("{}{}", method.get(0..1).unwrap_or_default().to_uppercase(), method.get(1..).unwrap_or_default()) }}
2021-01-01 12:54:13 +13:00
< / a >
{% endfor %}
{%- endmacro %}
{% macro search(root, search) -%}
2021-03-18 13:28:05 +13:00
< form action = "{% if root != " / r / " & & ! root . is_empty ( ) % } { { root } } { % endif % } / search " id = "searchbox" >
2021-01-18 11:49:36 +13:00
< input id = "search" type = "text" name = "q" placeholder = "Search" title = "Search libreddit" value = "{{ search }}" >
2021-01-01 17:21:56 +13:00
{% if root != "/r/" & & !root.is_empty() %}
2021-01-01 12:54:13 +13:00
< div id = "inside" >
2022-01-06 11:06:41 +13:00
< input type = "checkbox" name = "restrict_sr" id = "restrict_sr" checked >
2021-02-13 17:53:33 +13:00
< label for = "restrict_sr" class = "search_label" title = "Restrict search to this subreddit" > in {{ root }}< / label >
2021-01-01 12:54:13 +13:00
< / div >
{% endif %}
2021-01-18 12:51:03 +13:00
< button class = "submit" >
< svg width = "15" viewBox = "0 0 110 100" fill = "none" stroke-width = "10" stroke-linecap = "round" >
< path d = "M20 50 H100" / >
< path d = "M75 15 L100 50 L75 85" / >
→
< / svg >
< / button >
2021-01-01 12:54:13 +13:00
< / form >
2021-01-13 10:43:03 +13:00
{%- endmacro %}
2021-02-21 10:59:16 +13:00
{% macro render_flair(flair_parts) -%}
2021-12-27 18:18:20 +13:00
{% for flair_part in flair_parts.clone() %}{% if flair_part.flair_part_type == "emoji" %}< span class = "emoji" style = "background-image:url('{{ flair_part.value }}');" > < / span > {% else if flair_part.flair_part_type == "text" & & !flair_part.value.is_empty() %}< span > {{ flair_part.value }}< / span > {% endif %}{% endfor %}
2021-01-13 10:43:03 +13:00
{%- endmacro %}
2021-01-30 18:00:55 +13:00
2021-01-31 11:52:18 +13:00
{% macro sub_list(current) -%}
2021-02-02 14:50:00 +13:00
< details id = "feeds" >
< summary > Feeds< / summary >
< div id = "feed_list" >
< p > MAIN FEEDS< / p >
< a href = "/" > Home< / a >
< a href = "/r/popular" > Popular< / a >
< a href = "/r/all" > All< / a >
2022-05-21 17:42:05 +12:00
{% if prefs.subscriptions.len() > 0 %}
< p > REDDIT FEEDS< / p >
{% for sub in prefs.subscriptions %}
< a href = "/r/{{ sub }}" { % if sub = = current % } class = "selected" { % endif % } > {{ sub }}< / a >
{% endfor %}
{% endif %}
2021-01-31 15:16:42 +13:00
< / div >
< / details >
2021-01-30 18:00:55 +13:00
{%- endmacro %}
2021-02-04 08:11:04 +13:00
2021-05-10 13:25:52 +12:00
{% macro render_hls_notification(redirect_url) -%}
{% if post.post_type == "video" & & !post.media.alt_url.is_empty() & & prefs.hide_hls_notification != "on" %}
2021-05-17 03:41:47 +12:00
< div class = "post_notification" > < p > < a href = "/settings/update/?use_hls=on&redirect={{ redirect_url }}" > Enable HLS< / a > to view with audio, or < a href = "/settings/update/?hide_hls_notification=on&redirect={{ redirect_url }}" > disable this notification< / a > < / p > < / div >
2021-05-10 13:25:52 +12:00
{% endif %}
{%- endmacro %}
2022-11-10 05:16:51 +13:00
{% macro post(post) -%}
<!-- POST CONTENT -->
< div class = "post highlighted" >
< p class = "post_header" >
< a class = "post_subreddit" href = "/r/{{ post.community }}" > r/{{ post.community }}< / a >
< span class = "dot" > • < / span >
< a class = "post_author {{ post.author.distinguished }}" href = "/user/{{ post.author.name }}" > u/{{ post.author.name }}< / a >
{% if post.author.flair.flair_parts.len() > 0 %}
< small class = "author_flair" > {% call render_flair(post.author.flair.flair_parts) %}< / small >
{% endif %}
< span class = "dot" > • < / span >
< span class = "created" title = "{{ post.created }}" > {{ post.rel_time }}< / span >
2023-01-02 15:39:38 +13:00
{% if !post.awards.is_empty() & & prefs.hide_awards != "on" %}
2022-11-10 05:16:51 +13:00
< span class = "dot" > • < / span >
< span class = "awards" >
{% for award in post.awards.clone() %}
< span class = "award" title = "{{ award.name }}" >
< img alt = "{{ award.name }}" src = "{{ award.icon_url }}" width = "16" height = "16" / >
{{ award.count }}
< / span >
{% endfor %}
< / span >
{% endif %}
< / p >
< h1 class = "post_title" >
{{ post.title }}
{% if post.flair.flair_parts.len() > 0 %}
< a href = "/r/{{ post.community }}/search?q=flair_name%3A%22{{ post.flair.text }}%22&restrict_sr=on"
class="post_flair"
style="color:{{ post.flair.foreground_color }}; background:{{ post.flair.background_color }};">{% call render_flair(post.flair.flair_parts) %}< / a >
{% endif %}
{% if post.flags.nsfw %} < small class = "nsfw" > NSFW< / small > {% endif %}
< / h1 >
<!-- POST MEDIA -->
<!-- post_type: {{ post.post_type }} -->
{% if post.post_type == "image" %}
< div class = "post_media_content" >
< a href = "{{ post.media.url }}" class = "post_media_image" >
< svg
width="{{ post.media.width }}px"
height="{{ post.media.height }}px"
xmlns="http://www.w3.org/2000/svg">
< image width = "100%" height = "100%" href = "{{ post.media.url }}" / >
< desc >
< img loading = "lazy" alt = "Post image" src = "{{ post.media.url }}" / >
< / desc >
< / svg >
< / a >
< / div >
{% else if post.post_type == "video" || post.post_type == "gif" %}
{% if prefs.use_hls == "on" & & !post.media.alt_url.is_empty() %}
< script src = "/hls.min.js" > < / script >
< div class = "post_media_content" >
2022-12-14 17:15:28 +13:00
< video class = "post_media_video short {% if prefs.autoplay_videos == " on " % } hls_autoplay { % endif % } " { % if post . media . width > 0 & & post.media.height > 0 %}width="{{ post.media.width }}" height="{{ post.media.height }}"{% endif %} poster="{{ post.media.poster }}" preload="none" controls>
2022-11-10 05:16:51 +13:00
< source src = "{{ post.media.alt_url }}" type = "application/vnd.apple.mpegurl" / >
< source src = "{{ post.media.url }}" type = "video/mp4" / >
< / video >
< / div >
< script src = "/playHLSVideo.js" > < / script >
{% else %}
< div class = "post_media_content" >
< video class = "post_media_video" src = "{{ post.media.url }}" controls { % if prefs . autoplay_videos = = " on " % } autoplay { % endif % } loop > < a href = {{ post . media . url } } > Video< / a > < / video >
< / div >
{% call render_hls_notification(post.permalink[1..]) %}
{% endif %}
{% else if post.post_type == "gallery" %}
< div class = "gallery" >
{% for image in post.gallery -%}
< figure >
< a href = "{{ image.url }}" > < img loading = "lazy" alt = "Gallery image" src = "{{ image.url }}" / > < / a >
< figcaption >
< p > {{ image.caption }}< / p >
{% if image.outbound_url.len() > 0 %}
< p > < a class = "outbound_url" href = "{{ image.outbound_url }}" rel = "nofollow" > {{ image.outbound_url }}< / a >
{% endif %}
< / figcaption >
< / figure >
{%- endfor %}
< / div >
{% else if post.post_type == "link" %}
< a id = "post_url" href = "{{ post.media.url }}" rel = "nofollow" > {{ post.media.url }}< / a >
{% endif %}
<!-- POST BODY -->
< div class = "post_body" > {{ post.body|safe }}< / div >
< div class = "post_score" title = "{{ post.score.1 }}" > {{ post.score.0 }}< span class = "label" > Upvotes< / span > < / div >
< div class = "post_footer" >
< ul id = "post_links" >
< li class = "desktop_item" > < a href = "{{ post.permalink }}" > permalink< / a > < / li >
< li class = "mobile_item" > < a href = "{{ post.permalink }}" > link< / a > < / li >
{% if post.num_duplicates > 0 %}
< li class = "desktop_item" > < a href = "/r/{{ post.community }}/duplicates/{{ post.id }}" > duplicates< / a > < / li >
< li class = "mobile_item" > < a href = "/r/{{ post.community }}/duplicates/{{ post.id }}" > dupes< / a > < / li >
{% endif %}
< li class = "desktop_item" > < a href = "https://reddit.com{{ post.permalink }}" rel = "nofollow" > reddit< / a > < / li >
< li class = "mobile_item" > < a href = "https://reddit.com{{ post.permalink }}" rel = "nofollow" > reddit< / a > < / li >
< / ul >
< p > {{ post.upvote_ratio }}%< span id = "upvoted" > Upvoted< / span > < / p >
< / div >
< / div >
{%- endmacro %}
2021-02-04 08:11:04 +13:00
{% macro post_in_list(post) -%}
2021-05-10 13:25:52 +12:00
< div class = "post {% if post.flags.stickied %}stickied{% endif %}" id = "{{ post.id }}" >
2021-02-04 08:11:04 +13:00
< p class = "post_header" >
2021-04-07 05:23:05 +12:00
{% let community -%}
{% if post.community.starts_with("u_") -%}
{% let community = format!("u/{}", & post.community[2..]) -%}
{% else -%}
{% let community = format!("r/{}", post.community) -%}
{% endif -%}
< a class = "post_subreddit" href = "/{{ community }}" > {{ community }}< / a >
2021-02-04 08:11:04 +13:00
< span class = "dot" > • < / span >
2022-01-09 15:50:53 +13:00
< a class = "post_author {{ post.author.distinguished }}" href = "/u/{{ post.author.name }}" > u/{{ post.author.name }}< / a >
2021-02-04 08:11:04 +13:00
< span class = "dot" > • < / span >
< span class = "created" title = "{{ post.created }}" > {{ post.rel_time }}< / span >
2023-01-02 15:39:38 +13:00
{% if !post.awards.is_empty() & & prefs.hide_awards != "on" %}
2021-11-25 15:08:27 +13:00
{% for award in post.awards.clone() %}
< span class = "award" title = "{{ award.name }}" >
< img alt = "{{ award.name }}" src = "{{ award.icon_url }}" width = "16" height = "16" / >
< / span >
{% endfor %}
{% endif %}
2021-02-04 08:11:04 +13:00
< / p >
2022-05-22 10:47:58 +12:00
< h2 class = "post_title" >
2021-02-04 08:11:04 +13:00
{% if post.flair.flair_parts.len() > 0 %}
2021-03-18 13:28:05 +13:00
< a href = "/r/{{ post.community }}/search?q=flair_name%3A%22{{ post.flair.text }}%22&restrict_sr=on"
2021-02-22 17:28:04 +13:00
class="post_flair"
2021-05-07 07:11:25 +12:00
style="color:{{ post.flair.foreground_color }}; background:{{ post.flair.background_color }};"
dir="ltr">{% call render_flair(post.flair.flair_parts) %}< / a >
2021-02-04 08:11:04 +13:00
{% endif %}
< a href = "{{ post.permalink }}" > {{ post.title }}< / a > {% if post.flags.nsfw %} < small class = "nsfw" > NSFW< / small > {% endif %}
2022-05-22 10:47:58 +12:00
< / h2 >
2021-02-04 08:11:04 +13:00
<!-- POST MEDIA/THUMBNAIL -->
{% if (prefs.layout.is_empty() || prefs.layout == "card") & & post.post_type == "image" %}
2022-09-27 14:35:23 +13:00
< div class = "post_media_content" >
< a href = "{{ post.media.url }}" class = "post_media_image {% if post.media.height / post.media.width < 2 %}short{% endif %}" >
< svg
{%if post.flags.nsfw & & prefs.blur_nsfw=="on" %}class="post_nsfw_blur"{% endif %}
width="{{ post.media.width }}px"
height="{{ post.media.height }}px"
xmlns="http://www.w3.org/2000/svg">
< image width = "100%" height = "100%" href = "{{ post.media.url }}" / >
< desc >
< img loading = "lazy" alt = "Post image" src = "{{ post.media.url }}" / >
< / desc >
< / svg >
< / a >
< / div >
2021-02-08 13:22:14 +13:00
{% else if (prefs.layout.is_empty() || prefs.layout == "card") & & post.post_type == "gif" %}
2022-09-27 14:35:23 +13:00
< div class = "post_media_content" >
2022-12-14 17:15:28 +13:00
< video class = "post_media_video short {%if post.flags.nsfw && prefs.blur_nsfw==" on " % } post_nsfw_blur { % endif % } " src = "{{ post.media.url }}" { % if post . media . width > 0 & & post.media.height > 0 %}width="{{ post.media.width }}" height="{{ post.media.height }}"{% endif %} poster="{{ post.media.poster }}" preload="none" controls loop {% if prefs.autoplay_videos == "on" %}autoplay{% endif %}>< a href = {{ post . media . url } } > Video< / a > < / video >
2022-09-27 14:35:23 +13:00
< / div >
2021-02-08 13:22:14 +13:00
{% else if (prefs.layout.is_empty() || prefs.layout == "card") & & post.post_type == "video" %}
2021-05-10 13:25:52 +12:00
{% if prefs.use_hls == "on" & & !post.media.alt_url.is_empty() %}
2022-09-27 14:35:23 +13:00
< div class = "post_media_content" >
2022-12-14 17:15:28 +13:00
< video class = "post_media_video short {%if post.flags.nsfw && prefs.blur_nsfw==" on " % } post_nsfw_blur { % endif % } { % if prefs . autoplay_videos = = " on " % } hls_autoplay { % endif % } " { % if post . media . width > 0 & & post.media.height > 0 %}width="{{ post.media.width }}" height="{{ post.media.height }}"{% endif %} poster="{{ post.media.poster }}" controls preload="none">
2022-09-27 14:35:23 +13:00
< source src = "{{ post.media.alt_url }}" type = "application/vnd.apple.mpegurl" / >
< source src = "{{ post.media.url }}" type = "video/mp4" / >
< / video >
< / div >
2021-05-10 13:25:52 +12:00
{% else %}
2022-09-27 14:35:23 +13:00
< div class = "post_media_content" >
2022-12-14 17:15:28 +13:00
< video class = "post_media_video short {%if post.flags.nsfw && prefs.blur_nsfw==" on " % } post_nsfw_blur { % endif % } " src = "{{ post.media.url }}" { % if post . media . width > 0 & & post.media.height > 0 %}width="{{ post.media.width }}" height="{{ post.media.height }}"{% endif %} poster="{{ post.media.poster }}" preload="none" controls {% if prefs.autoplay_videos == "on" %}autoplay{% endif %}>< a href = {{ post . media . url } } > Video< / a > < / video >
2022-09-27 14:35:23 +13:00
< / div >
2021-08-05 06:52:24 +12:00
{% call render_hls_notification(format!("{}%23{}", & self.url[1..].replace("& ", "%26").replace("+", "%2B"), post.id)) %}
2021-05-10 13:25:52 +12:00
{% endif %}
2021-02-04 08:11:04 +13:00
{% else if post.post_type != "self" %}
2021-05-11 05:31:19 +12:00
< a class = "post_thumbnail {% if post.thumbnail.url.is_empty() %}no_thumbnail{% endif %}" href = "{% if post.post_type == " link " % } { { post . media . url } } { % else % } { { post . permalink } } { % endif % } " rel = "nofollow" >
2021-02-04 08:11:04 +13:00
{% if post.thumbnail.url.is_empty() %}
< svg viewBox = "0 0 100 106" width = "140" height = "53" xmlns = "http://www.w3.org/2000/svg" >
< title > Thumbnail< / title >
< path d = "M35,15h-15a10,10 0,0,0 0,20h25a10,10 0,0,0 10,-10m-12.5,0a10, 10 0,0,1 10, -10h25a10,10 0,0,1 0,20h-15" fill = "none" stroke-width = "5" stroke-linecap = "round" / >
< / svg >
{% else %}
2022-09-27 14:35:23 +13:00
< div style = "max-width:{{ post.thumbnail.width }}px;max-height:{{ post.thumbnail.height }}px;" >
< svg { % if post . flags . nsfw & & prefs . blur_nsfw = ="on" % } class = "thumb_nsfw_blur" { % endif % } width = "{{ post.thumbnail.width }}px" height = "{{ post.thumbnail.height }}px" xmlns = "http://www.w3.org/2000/svg" >
< image width = "100%" height = "100%" href = "{{ post.thumbnail.url }}" / >
< desc >
< img loading = "lazy" alt = "Thumbnail" src = "{{ post.thumbnail.url }}" / >
< / desc >
< / svg >
< / div >
2021-02-04 08:11:04 +13:00
{% endif %}
< span > {% if post.post_type == "link" %}{{ post.domain }}{% else %}{{ post.post_type }}{% endif %}< / span >
< / a >
{% endif %}
2021-03-21 11:42:47 +13:00
< div class = "post_score" title = "{{ post.score.1 }}" > {{ post.score.0 }}< span class = "label" > Upvotes< / span > < / div >
2021-11-21 10:13:50 +13:00
< div class = "post_body post_preview" >
2022-05-21 17:28:31 +12:00
{{ post.body|safe }}
2021-11-21 10:13:50 +13:00
< / div >
2021-02-04 08:11:04 +13:00
< div class = "post_footer" >
2022-11-01 14:36:24 +13:00
< a href = "{{ post.permalink }}" class = "post_comments" title = "{{ post.comments.1 }} {% if post.comments.1 == " 1 " % } comment { % else % } comments { % endif % } " > {{ post.comments.0 }} {% if post.comments.1 == "1" %}comment{% else %}comments{% endif %}< / a >
2021-02-04 08:11:04 +13:00
< / div >
< / div >
{%- endmacro %}