tvl-depot/templates/thread.html
Vincent Ambo 87237f5c28 feat(render): Implement Markdown thread rendering & Gravatar
Implements a new thread rendering pipeline which all posts and the
main thread body are first converted to a `RenderablePost` structure.

During the conversion to this structure, the post body is rendered as
Markdown and the author's email address is converted into the format
required by Gravatar.
2018-04-11 13:25:12 +02:00

78 lines
2.8 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<title>Converse: {{ title }}</title>
</head>
<body>
<header>
<nav class="navbar navbar-light bg-light justify-content-between mb-3">
<a class="navbar-brand" href="/">
<h2>Converse</h2>
</a>
<form class="form-inline">
<a class="btn btn-outline-secondary my-2" href="/">Back to index</a>
</form>
</nav>
</header>
<div class="container">
<div class="row">
<div class="col-12">
<div class="list-group">
<div class="list-group-item flex-column">
<div class="row">
<div class="col-12">
<h3>{{ title }}</h3>
</div>
</div>
</div>
{% for post in posts -%}
<div class="list-group-item flex-column align-items-start">
<div class="row">
<div class="col-2 border-right">
<div class="row">
<div class="col-12">
<img src="https://www.gravatar.com/avatar/{{ post.author_gravatar }}?d=monsterid" />
</div>
</div>
<div class="row">
<div class="col-12">
<strong>{{ post.author_name }}</strong>
</div>
</div>
</div>
<div class="col-10">
{{ post.body }}
</div>
<small class="text-muted">{{ post.posted }}</small>
</div>
</div>
{%- endfor %}
<div class="list-group-item flex-column align-items-start">
<div class="row">
<div class="col-12">
<form action="/thread/reply" method="post">
<input type="hidden" id="thread_id" name="thread_id" value="{{ id }}">
<label for="body">You can use <strong>Markdown</strong>!</label>
<div class="input-group">
<textarea class="form-control" id="body" name="body" aria-label="thread response"></textarea>
<div class="input-group-append">
<button class="btn btn-outline-primary" type="submit">Post!</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>