119 lines
5.5 KiB
HTML
119 lines
5.5 KiB
HTML
{% macro options(current, values, default) -%}
|
|
{% for value in values %}
|
|
<option value="{{ value }}" {% if current == value || (current == "" && value == default) %}selected{% endif %}>
|
|
{{ format!("{}{}", value.get(0..1).unwrap_or_default().to_uppercase(), value.get(1..).unwrap_or_default()) }}
|
|
</option>
|
|
{% endfor %}
|
|
{%- endmacro %}
|
|
|
|
{% macro sort(root, methods, selected) -%}
|
|
{% for method in methods %}
|
|
<a {% if method == selected %}class="selected"{% endif %} href="{{ root }}/{{ method }}">
|
|
{{ format!("{}{}", method.get(0..1).unwrap_or_default().to_uppercase(), method.get(1..).unwrap_or_default()) }}
|
|
</a>
|
|
{% endfor %}
|
|
{%- endmacro %}
|
|
|
|
{% macro search(root, search) -%}
|
|
<form action="{% if root != "/r/" && !root.is_empty() %}{{ root }}{% endif %}/search/" id="searchbox">
|
|
<input id="search" type="text" name="q" placeholder="Search" title="Search libreddit" value="{{ search }}">
|
|
{% if root != "/r/" && !root.is_empty() %}
|
|
<div id="inside">
|
|
<input type="checkbox" name="restrict_sr" id="restrict_sr">
|
|
<label for="restrict_sr" class="search_label" title="Restrict search to this subreddit">in {{ root }}</label>
|
|
</div>
|
|
{% endif %}
|
|
<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>
|
|
</form>
|
|
{%- endmacro %}
|
|
|
|
{% macro render_flair(flair_parts) -%}
|
|
{% for flair_part in flair_parts %}
|
|
{% 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 %}
|
|
{%- endmacro %}
|
|
|
|
{% macro sub_list(current) -%}
|
|
{% if prefs.subscriptions.len() > 0 %}
|
|
<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>
|
|
<p>REDDIT FEEDS</p>
|
|
{% for sub in prefs.subscriptions %}
|
|
<a href="/r/{{ sub }}" {% if sub == current %}class="selected"{% endif %}>{{ sub }}</a>
|
|
{% endfor %}
|
|
</div>
|
|
</details>
|
|
{% endif %}
|
|
{%- endmacro %}
|
|
|
|
{% macro post_in_list(post) -%}
|
|
<div class="post {% if post.flags.stickied %}stickied{% endif %}">
|
|
<p class="post_header">
|
|
<a class="post_subreddit" href="/r/{{ post.community }}">r/{{ post.community }}</a>
|
|
<span class="dot">•</span>
|
|
<a class="post_author" href="/u/{{ post.author.name }}">u/{{ post.author.name }}</a>
|
|
<span class="dot">•</span>
|
|
<span class="created" title="{{ post.created }}">{{ post.rel_time }}</span>
|
|
</p>
|
|
<p class="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 %}
|
|
<a href="{{ post.permalink }}">{{ post.title }}</a>{% if post.flags.nsfw %} <small class="nsfw">NSFW</small>{% endif %}
|
|
</p>
|
|
<!-- POST MEDIA/THUMBNAIL -->
|
|
{% if (prefs.layout.is_empty() || prefs.layout == "card") && post.post_type == "image" %}
|
|
<a href="{{ post.media.url }}" class="post_media_image {% if post.media.height / post.media.width < 2 %}short{% endif %}" >
|
|
<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 alt="Post image" src="{{ post.media.url }}"/>
|
|
</desc>
|
|
</svg>
|
|
</a>
|
|
{% else if (prefs.layout.is_empty() || prefs.layout == "card") && post.post_type == "gif" %}
|
|
<video class="post_media_video short" src="{{ post.media.url }}" width="{{ post.media.width }}px" height="{{ post.media.height }}px" controls loop autoplay><a href={{ post.media.url }}>Video</a></video>
|
|
{% else if (prefs.layout.is_empty() || prefs.layout == "card") && post.post_type == "video" %}
|
|
<video class="post_media_video short" src="{{ post.media.url }}" width="{{ post.media.width }}px" height="{{ post.media.height }}px" poster="{{ post.media.poster }}" preload="none" controls autoplay><a href={{ post.media.url }}>Video</a></video>
|
|
{% else if post.post_type != "self" %}
|
|
<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 %}">
|
|
{% 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 %}
|
|
<svg 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 alt="Thumbnail" src="{{ post.thumbnail.url }}"/>
|
|
</desc>
|
|
</svg>
|
|
{% endif %}
|
|
<span>{% if post.post_type == "link" %}{{ post.domain }}{% else %}{{ post.post_type }}{% endif %}</span>
|
|
</a>
|
|
{% endif %}
|
|
|
|
<div class="post_score">{{ post.score }}<span class="label"> Upvotes</span></div>
|
|
<div class="post_footer">
|
|
<a href="{{ post.permalink }}" class="post_comments">{{ post.comments }} comments</a>
|
|
</div>
|
|
</div>
|
|
{%- endmacro %}
|