add part 8 draft tutorial
This commit is contained in:
23
part_8_ui_posts/templates/base.html.tera
Normal file
23
part_8_ui_posts/templates/base.html.tera
Normal file
@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>lykin</title>
|
||||
<meta name="description" content="lykin: an SSB tutorial application">
|
||||
<meta name="author" content="glyph">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="/css/lykin.css">
|
||||
</head>
|
||||
<body class="container">
|
||||
<h1>
|
||||
<a href="/">lykin</a>
|
||||
</h1>
|
||||
</a>
|
||||
<div class="grid-container">
|
||||
{% include "topbar" %}
|
||||
{% include "peer_list" %}
|
||||
{% include "post_list" %}
|
||||
{% include "post_content" %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
17
part_8_ui_posts/templates/peer_list.html.tera
Normal file
17
part_8_ui_posts/templates/peer_list.html.tera
Normal file
@ -0,0 +1,17 @@
|
||||
<div class="peers">
|
||||
<ul>
|
||||
{% for peer in peers -%}
|
||||
<li>
|
||||
<a class="flex-container" href="/posts/{{ peer.public_key | urlencode_strict }}">
|
||||
<code{% if selected_peer and peer.public_key == selected_peer %} style="font-weight: bold;"{% endif %}>
|
||||
{% if peer.name %}
|
||||
{{ peer.name }}
|
||||
{% else %}
|
||||
{{ peer.public_key }}
|
||||
{% endif %}
|
||||
</code>
|
||||
</a>
|
||||
</li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
</div>
|
5
part_8_ui_posts/templates/post_content.html.tera
Normal file
5
part_8_ui_posts/templates/post_content.html.tera
Normal file
@ -0,0 +1,5 @@
|
||||
<div class="content">
|
||||
{% if post %}
|
||||
{{ post.text | trim_start_matches(pat='"') | trim_end_matches(pat='"') | trim }}
|
||||
{% endif %}
|
||||
</div>
|
20
part_8_ui_posts/templates/post_list.html.tera
Normal file
20
part_8_ui_posts/templates/post_list.html.tera
Normal file
@ -0,0 +1,20 @@
|
||||
<div class="posts">
|
||||
{% if posts %}
|
||||
<ul>
|
||||
{% for post in posts -%}
|
||||
<li{% if selected_post and post.key == selected_post %} class="selected"{% endif %}>
|
||||
<a class="flex-container" href="/posts/{{ selected_peer | urlencode_strict }}/{{ post.key | urlencode_strict }}">
|
||||
<code>
|
||||
{% if post.subject %}
|
||||
{{ post.subject | trim_start_matches(pat='"') }}...
|
||||
{% else %}
|
||||
{{ post.text | trim_start_matches(pat='"') | trim_end_matches(pat='"') }}
|
||||
{% endif %}
|
||||
</code>
|
||||
<p>{{ post.date }}</p>
|
||||
</a>
|
||||
</li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
28
part_8_ui_posts/templates/topbar.html.tera
Normal file
28
part_8_ui_posts/templates/topbar.html.tera
Normal file
@ -0,0 +1,28 @@
|
||||
<div class="nav">
|
||||
<div class="flex-container">
|
||||
<a href="/posts/download_latest" title="Download latest posts">
|
||||
<img src="/icons/download.png">
|
||||
</a>
|
||||
<a class="disabled icon" title="Download latest posts">
|
||||
<img src="/icons/download.png">
|
||||
</a>
|
||||
<a class="disabled icon" title="Mark as read">
|
||||
<img src="/icons/read_post.png">
|
||||
</a>
|
||||
<a class="disabled icon" title="Mark as unread">
|
||||
<img src="/icons/unread_post.png">
|
||||
</a>
|
||||
<a class="disabled icon" title="Delete post">
|
||||
<img src="/icons/delete_post.png">
|
||||
</a>
|
||||
<form class="flex-container" action="/subscribe" method="post">
|
||||
<label for="public_key">Public Key</label>
|
||||
<input type="text" id="public_key" name="public_key" maxlength=53>
|
||||
<input type="submit" value="Subscribe">
|
||||
<input type="submit" value="Unsubscribe" formaction="/unsubscribe">
|
||||
</form>
|
||||
{% if flash and flash.kind == "error" %}
|
||||
<p class="flash-message">[ {{ flash.message }} ]</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
Reference in New Issue
Block a user