87237f5c28
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.
78 lines
2.8 KiB
HTML
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>
|