first commit
This commit is contained in:
commit
31f9bf6c2b
29 changed files with 5096 additions and 0 deletions
21
templates/400.html
Normal file
21
templates/400.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>400 - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1 style="font-size:10em;line-height:0em;">400</h1>
|
||||
<p>The request was malformed</p>
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
43
templates/404.html
Normal file
43
templates/404.html
Normal file
|
@ -0,0 +1,43 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>404 - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
<style>
|
||||
.go_here_link {
|
||||
background-color: #4CAF50;
|
||||
/* Green */
|
||||
border: none;
|
||||
color: white;
|
||||
padding: 15px 32px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.go_here_link:hover {
|
||||
color: black;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1 style="font-size:10em;line-height:0em;">404</h1>
|
||||
<p>This resource cannot be found</p>
|
||||
<br>
|
||||
<p>Why don't you try one of these instead?</p>
|
||||
<a href="/" class="go_here_link">Featured</a>
|
||||
<a href="/contest" class="go_here_link">Contests</a>
|
||||
<br><br>
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
21
templates/429.html
Normal file
21
templates/429.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>429 - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1 style="font-size:10em;line-height:0em;">429</h1>
|
||||
<p>This instance is being rate-limited</p>
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
44
templates/archives.html
Normal file
44
templates/archives.html
Normal file
|
@ -0,0 +1,44 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Contests Archive, Page {{ data[0] }} - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1>Past Contests</h1>
|
||||
<p>{{ data[1] }}</p>
|
||||
<p><a href="/contest/">See running contests</a></p>
|
||||
</center>
|
||||
{% for year in data[3] %}
|
||||
<div class="archive-year">
|
||||
<hr>
|
||||
<h2>{{ year[0] }}</h2>
|
||||
<hr>
|
||||
{% for month in year[1] %}
|
||||
<div class="archive-month-wrapper">
|
||||
<div class="archive-month">
|
||||
<h3>{{ month[0] }}</h3>
|
||||
{% for contest in month[1] %}
|
||||
<div class="archive">
|
||||
<p>{{ contest[0] }}<a href="{{ contest[1] }}">{{ contest[2] }}</a></p>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<br>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<hr>
|
||||
{{ data[2]|safe }}
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
21
templates/article-review.html
Normal file
21
templates/article-review.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Pending Review - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1>This content is being reviewed</h1>
|
||||
<p>This Instructable was just published and is still pending review.</p>
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
66
templates/article.html
Normal file
66
templates/article.html
Normal file
|
@ -0,0 +1,66 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>{{ data[0] }} - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1>{{ data[0] }}</h1>
|
||||
|
||||
<p>by <a href="{{ data[2] }}">{{ data[1] }}</a> in <a href="{{ data[4] }}">{{ data[3] }}</a> > <a
|
||||
href="{{ data[6] }}">{{ data[5] }}</a></p>
|
||||
<p>{{ data[7] }} Views, {{ data[8] }} Favorites, {{ data[10] }}</p>
|
||||
</center>
|
||||
|
||||
{% for step in data[9] %}
|
||||
<h2>{{ step[0] }}</h2>
|
||||
<div class="step-imgs">
|
||||
{% for step_img in step[1] %}
|
||||
<img src="{{ step_img[0] }}" alt="{{ step_img[1] }}">
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="step-vids">
|
||||
{% for step_video in step[3] %}
|
||||
<video src="{{ step_video[0] }}"></video>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{{ step[2]|safe }}
|
||||
{% endfor %}
|
||||
|
||||
<br>
|
||||
{% for index, comment in enumerate(data[11]) %}
|
||||
<a href="{{ comment[4] }}">
|
||||
<img style="display:inline-block;" width=30px height=30px src="{{ comment[1] }}" alt="{{ comment[2] }}">
|
||||
<span>{{ comment[3] }}</span>
|
||||
</a>
|
||||
<span>{{ comment[5] }}</span>
|
||||
<span>{{ comment[0] }} votes</span>
|
||||
{{ comment[6]|safe }}
|
||||
<input type="checkbox" id="replies{{ index }}" class="reply-button">
|
||||
<label for="replies{{ index }}"><b>{{ comment[7] }} replies</b></label>
|
||||
<div class="replies">
|
||||
{% for reply in comment[8] %}
|
||||
<blockquote>
|
||||
<a href="{{ reply[4] }}">
|
||||
<img style="display:inline-block;" width=30px height=30px src="{{ reply[1] }}" alt="{{ comment[2] }}">
|
||||
<span>{{ reply[3] }}</span>
|
||||
</a>
|
||||
<span>{{ reply[5] }}</span>
|
||||
<span>{{ reply[0] }} votes</span>
|
||||
{{ reply[6]|safe }}
|
||||
</blockquote>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<br>
|
||||
{% endfor %}
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
55
templates/category.html
Normal file
55
templates/category.html
Normal file
|
@ -0,0 +1,55 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>{{ data[0] }} - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1>{{ data[0] }}</h1>
|
||||
<div class="channel-list">
|
||||
{% for channel in data[1] %}
|
||||
<div style="display:inline-block">
|
||||
<a href="{{ channel[0] }}" style="position:relative;text-align:center;color:white;">
|
||||
<img src="{{ channel[2] }}" alt="{{ channel[1] }}" style="display:inline-block;max-width:200px;">
|
||||
<p style="position:absolute;bottom:0px;left:4px;font-weight:thin;">{{ channel[1] }}</p>
|
||||
</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<h2><a href="{{ data[4] }}projects/">Featured Projects</a></h2>
|
||||
<div class="project-list">
|
||||
{% for ible in data[2] %}
|
||||
<div class="ible-list-item">
|
||||
<a href="{{ ible[0] }}">
|
||||
<img src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<br>
|
||||
<span><b>{{ ible[2] }}</b></span>
|
||||
</a>
|
||||
<span>by <a href="{{ ible[4] }}">{{ ible[3] }}</a></span>
|
||||
<span>in <a href="{{ ible[6] }}">{{ ible[5] }}</a></span>
|
||||
<br>
|
||||
<span>{{ ible[7] }} Views </span>
|
||||
<span>{{ ible[8] }} Favorites</span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<h2><a href="/contest/">Contests</a></h2>
|
||||
<div style="display:inline-block;">
|
||||
{% for contest in data[3] %}
|
||||
<a href="{{ contest[0] }}" style="color:#bbc2cf;">
|
||||
<img src="{{ contest[1] }}" alt="{{ contest[2] }}" style="max-width:400px;">
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
41
templates/collection.html
Normal file
41
templates/collection.html
Normal file
|
@ -0,0 +1,41 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>{{ data[0] }} - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1>{{ data[0] }}</h1>
|
||||
|
||||
<p>by <a href="{{ data[2] }}">{{ data[1] }}</a> in <a href="{{ data[4] }}">{{ data[3] }}</a> > <a
|
||||
href="{{ data[6] }}">{{ data[5] }}</a></p>
|
||||
<p>{{ data[7] }} Views, {{ data[8] }} Favorites, {{ data[10] }}</p>
|
||||
|
||||
<div style="max-width:90%;">
|
||||
{% for thumbnail in data[9] %}
|
||||
<div class="ible-list-item">
|
||||
{% if thumbnail[0] == '' %}
|
||||
<a href="{{ thumbnail[1] }}" style="color:#bbc2cf;">
|
||||
<img style="max-width:350px;" src="{{ thumbnail[2] }}" alt="{{ thumbnail[3] }}">
|
||||
<p>{{ thumbnail[3] }}</p>
|
||||
</a>
|
||||
<p>by <a href="{{ thumbnail[5] }}">{{ thumbnail[4] }}</a> in <a href="{{ thumbnail[7] }}">{{
|
||||
thumbnail[6] }}</a> </p>
|
||||
{% else %}
|
||||
{{ thumbnail[0]|safe }}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
35
templates/contest.html
Normal file
35
templates/contest.html
Normal file
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>{{ data[0] }} - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<img src="{{ data[1] }}" alt="{{ data[0] }}" style="max-width:98vw;">
|
||||
<p>{{ data[2] }} Entries, {{ data[3] }} Prizes</p>
|
||||
<br>
|
||||
{{ data[4]|safe }}
|
||||
<div class="ible-list">
|
||||
{% for ible in data[5] %}
|
||||
<div class="ible-list-item">
|
||||
<a href="{{ ible[0] }}" style="color:#bbc2cf;">
|
||||
<img style="max-width:350px;" src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<p>{{ ible[2] }}</p>
|
||||
</a>
|
||||
<p>by <a href="{{ ible[4] }}">{{ ible[3] }}</a> in <a href="{{ ible[6] }}">{{ ible[5] }}</a></p>
|
||||
<p>{{ ible[7] }} Views</p>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
53
templates/contests.html
Normal file
53
templates/contests.html
Normal file
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Contests - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1>Contests</h1>
|
||||
{{ data[0]|safe }}
|
||||
<br>
|
||||
<div class="contest-list">
|
||||
{% for contest in data[1] %}
|
||||
<div class="contest-list-item">
|
||||
<a href="{{ contest[0] }}">
|
||||
<img src="{{ contest[1] }}" alt="{{ contest[2] }}" style="max-width:500px;">
|
||||
</a>
|
||||
<p>Closes {{ contest[3] }}</p>
|
||||
<p class="ible-small">{{ contest[4] }} Prizes, {{ contest[5] }} Entries</p>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="closed-contests" id="contest-winners">
|
||||
<h2>Winner's Circle</h2>
|
||||
{% for closed in data[2] %}
|
||||
<div class="closed-contest">
|
||||
<a href="{{ closed[0] }}"><img class="closed-contest-contest" src="{{ closed[1] }}"
|
||||
alt="{{ closed[2] }}"></a>
|
||||
{% for featured_items in closed[3] %}
|
||||
<div class="closed-contest-winner">
|
||||
<a href="{{ featured_items[0] }}">
|
||||
<img class="closed-contest-winner-img" src="{{ featured_items[1] }}"
|
||||
alt="{{ featured_items[2] }}">
|
||||
<br>
|
||||
<b>{{ featured_items[2] }}</b>
|
||||
</a>
|
||||
<p>by <a href="{{ featured_items[4] }}">{{ featured_items[3] }}</a></p>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
7
templates/footer.html
Normal file
7
templates/footer.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
<footer>
|
||||
<hr>
|
||||
<center>
|
||||
<p><a href="">Source code (AGPLv3)</a></p>
|
||||
<p><a href="">View privacy policy.</a></p>
|
||||
</center>
|
||||
</footer>
|
26
templates/header.html
Normal file
26
templates/header.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<header>
|
||||
<ul
|
||||
style="display:flex;justify-content:flex-start;list-style-type:none;padding-left:0px;align-items:center;flex-wrap:wrap;">
|
||||
<div style="width: 20px; height: 0px"> </div>
|
||||
<li><a href="/"><img style="display:inline" src="{{ url_for('static', filename='img/logo.png') }}"
|
||||
height=75px></a></li>
|
||||
<div style="width: 40px; height: 0px"> </div>
|
||||
<li><a href="/projects/">Projects</a></li>
|
||||
<div style="width: 40px; height: 0px"> </div>
|
||||
<li><a href="/contest/">Contests</a></li>
|
||||
<div style="width: 40px; height: 0px"> </div>
|
||||
<li><a href="/teachers/">Teachers</a></li>
|
||||
|
||||
<div style="width: 60px; height: 0px"> </div>
|
||||
|
||||
<form action="/search" method="GET">
|
||||
<input type="search" placeholder="Search" name="q" maxlength="88" autocapitalize="none" autocorrect="off"
|
||||
autocomplete="off" value="" style="width: 720%; font-size: medium; padding: 3%;">
|
||||
</form>
|
||||
|
||||
<div style="width: 60%; height: 0px"> </div>
|
||||
|
||||
<li><a href="/sitemap/">Sitemap</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
</header>
|
145
templates/index.html
Normal file
145
templates/index.html
Normal file
|
@ -0,0 +1,145 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1>{{ data[0] }}</h1>
|
||||
|
||||
<b><a href="/circuits/">Circuits</a></b>
|
||||
<br>
|
||||
{% for ible in data[1] %}
|
||||
<div class="ibles">
|
||||
<a href="{{ ible[0] }}">
|
||||
<img style="max-width:19vw;" src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<h3 style="max-width:19vw;">{{ ible[3] }}</h3>
|
||||
</a>
|
||||
<div class="ible-small">
|
||||
<p>by <a href="{{ ible[5] }}">{{ ible[4] }}</a></p>
|
||||
<p>in <a href="{{ ible[7] }}">{{ ible[6] }}</a></p>
|
||||
<p>{{ ible[8] }} Favorites, {{ ible[9] }} Views</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<b><a href="/workshop/">Workshop</a></b>
|
||||
<br>
|
||||
{% for ible in data[2] %}
|
||||
<div class="ibles">
|
||||
<a href="{{ ible[0] }}">
|
||||
<img style="max-width:19vw;" src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<h3 style="max-width:19vw;">{{ ible[3] }}</h3>
|
||||
</a>
|
||||
<div class="ible-small">
|
||||
<p>by <a href="{{ ible[5] }}">{{ ible[4] }}</a></p>
|
||||
<p>in <a href="{{ ible[7] }}">{{ ible[6] }}</a></p>
|
||||
<p>{{ ible[8] }} Favorites, {{ ible[9] }} Views</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<b><a href="/craft/">Craft</a></b>
|
||||
<br>
|
||||
{% for ible in data[3] %}
|
||||
<div class="ibles">
|
||||
<a href="{{ ible[0] }}">
|
||||
<img style="max-width:19vw;" src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<h3 style="max-width:19vw;">{{ ible[3] }}</h3>
|
||||
</a>
|
||||
<div class="ible-small">
|
||||
<p>by <a href="{{ ible[5] }}">{{ ible[4] }}</a></p>
|
||||
<p>in <a href="{{ ible[7] }}">{{ ible[6] }}</a></p>
|
||||
<p>{{ ible[8] }} Favorites, {{ ible[9] }} Views</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<b><a href="/cooking/">Cooking</a></b>
|
||||
<br>
|
||||
{% for ible in data[4] %}
|
||||
<div class="ibles">
|
||||
<a href="{{ ible[0] }}">
|
||||
<img style="max-width:19vw;" src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<h3 style="max-width:19vw;">{{ ible[3] }}</h3>
|
||||
</a>
|
||||
<div class="ible-small">
|
||||
<p>by <a href="{{ ible[5] }}">{{ ible[4] }}</a></p>
|
||||
<p>in <a href="{{ ible[7] }}">{{ ible[6] }}</a></p>
|
||||
<p>{{ ible[8] }} Favorites, {{ ible[9] }} Views</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<b><a href="/living/">Living</a></b>
|
||||
<br>
|
||||
{% for ible in data[5] %}
|
||||
<div class="ibles">
|
||||
<a href="{{ ible[0] }}">
|
||||
<img style="max-width:19vw;" src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<h3 style="max-width:19vw;">{{ ible[3] }}</h3>
|
||||
</a>
|
||||
<div class="ible-small">
|
||||
<p>by <a href="{{ ible[5] }}">{{ ible[4] }}</a></p>
|
||||
<p>in <a href="{{ ible[7] }}">{{ ible[6] }}</a></p>
|
||||
<p>{{ ible[8] }} Favorites, {{ ible[9] }} Views</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<b><a href="/outside/">Outside</a></b>
|
||||
<br>
|
||||
{% for ible in data[6] %}
|
||||
<div class="ibles">
|
||||
<a href="{{ ible[0] }}">
|
||||
<img style="max-width:19vw;" src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<h3 style="max-width:19vw;">{{ ible[3] }}</h3>
|
||||
</a>
|
||||
<div class="ible-small">
|
||||
<p>by <a href="{{ ible[5] }}">{{ ible[4] }}</a></p>
|
||||
<p>in <a href="{{ ible[7] }}">{{ ible[6] }}</a></p>
|
||||
<p>{{ ible[8] }} Favorites, {{ ible[9] }} Views</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<b><a href="/teachers/">Teachers</a></b>
|
||||
<br>
|
||||
{% for ible in data[7] %}
|
||||
<div class="ibles">
|
||||
<a href="{{ ible[0] }}">
|
||||
<img style="max-width:19vw;" src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<h3 style="max-width:19vw;">{{ ible[3] }}</h3>
|
||||
</a>
|
||||
<div class="ible-small">
|
||||
<p>by <a href="{{ ible[5] }}">{{ ible[4] }}</a></p>
|
||||
<p>in <a href="{{ ible[7] }}">{{ ible[6] }}</a></p>
|
||||
<p>{{ ible[8] }} Favorites, {{ ible[9] }} Views</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
45
templates/member-instructables.html
Normal file
45
templates/member-instructables.html
Normal file
|
@ -0,0 +1,45 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>{{ data[1] }}'s Instructables - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<img width=150px height=150px style="display:inline-block;" src="{{ data[0] }}" alt="{{ data[1] }}">
|
||||
<h1>{{ data[1] }}</h1>
|
||||
<span>{{ data[2] }} </span>
|
||||
<span>{{ data[3] }}</span>
|
||||
<br>
|
||||
<span>{{ data[4] }} Instructables </span>
|
||||
<span>{{ data[5] }} Views </span>
|
||||
<span>{{ data[6] }} Comments </span>
|
||||
<span>{{ data[7] }} Followers</span>
|
||||
<br>
|
||||
<p>{{ data[8] }}</p>
|
||||
<hr>
|
||||
<h2>Instructables</h2>
|
||||
|
||||
<div style="max-width:90%;">
|
||||
{% for ible in data[9] %}
|
||||
<div class="ible-list-item">
|
||||
<a href="{{ ible[0] }}" style="color:#bbc2cf;">
|
||||
<img style="max-width:350px;" src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<p>{{ ible[2] }}</p>
|
||||
<p>{{ ible[3] }} Views, {{ ible[4] }} Favorites</p>
|
||||
</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
52
templates/member.html
Normal file
52
templates/member.html
Normal file
|
@ -0,0 +1,52 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>{{ data[1] }}'s Profile - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<img width=150px height=150px style="display:inline-block;" src="{{ data[0] }}" alt="{{ data[1] }}">
|
||||
<h1>{{ data[1] }}</h1>
|
||||
<span>{{ data[2] }} </span>
|
||||
<span>{{ data[3] }}</span>
|
||||
<br>
|
||||
<span>{{ data[4] }} Instructables </span>
|
||||
<span>{{ data[5] }} Views </span>
|
||||
<span>{{ data[6] }} Comments </span>
|
||||
<span>{{ data[7] }} Followers</span>
|
||||
<br>
|
||||
<p>{{ data[8] }}</p>
|
||||
{% if data[9] != "" %}
|
||||
<hr>
|
||||
{% endif %}
|
||||
<h2>{{ data[9] }}</h2>
|
||||
{% for ible in data[10] %}
|
||||
<div class="member-list">
|
||||
<a href="{{ ible[1] }}" style="color:#bbc2cf;">
|
||||
<img style="max-width:200px;" src="{{ ible[2] }}" alt="{{ ible[0] }}">
|
||||
<p>{{ ible[0] }}</p>
|
||||
</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<p><a href="/member/{{ data[1] }}/instructables/">View all Instructables</a></p>
|
||||
<br>
|
||||
<h2>{{ data[11] }}</h2>
|
||||
{% for ach in data[12] %}
|
||||
<div class="member-list">
|
||||
<p><b>{{ ach[0] }}</b></p>
|
||||
<p>{{ ach[1] }}</p>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
39
templates/projects.html
Normal file
39
templates/projects.html
Normal file
|
@ -0,0 +1,39 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>{{ data[0] }} - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1>{{ data[0] }}</h1>
|
||||
<span><a href="{{ data[2] }}/">Featured</a></span>
|
||||
<span><a href="{{ data[2] }}/recent/">Recent</a></span>
|
||||
<span><a href="{{ data[2] }}/popular/">Popular</a></span>
|
||||
<span><a href="{{ data[2] }}/views/">Views</a></span>
|
||||
<span><a href="{{ data[2] }}/winners/">Winners</a></span>
|
||||
<br>
|
||||
|
||||
<div style="max-width:90%;">
|
||||
{% for ible in data[1] %}
|
||||
<div class="ible-list-item">
|
||||
<a href="{{ ible[0] }}" style="color:#bbc2cf;">
|
||||
<img style="max-width:350px;" src="{{ ible[1] }}" alt="{{ ible[2] }}">
|
||||
<p>{{ ible[2] }}</p>
|
||||
</a>
|
||||
<p>by <a href="{{ ible[4] }}">{{ ible[3] }}</a> in <a href="{{ ible[6] }}">{{ ible[5] }}</a></p>
|
||||
<p>{{ ible[7] }} Views, {{ ible[8] }} Favorites</p>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
34
templates/sitemap.html
Normal file
34
templates/sitemap.html
Normal file
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Sitemap - Indestructables</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{% include "style.html" %}
|
||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/favicon.png') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1>Sitemap</h1>
|
||||
<div class="sitemap-groups">
|
||||
{% for group in data %}
|
||||
<div class="sitemap-group">
|
||||
<a href="{{ group[1] }}">
|
||||
<h2>{{ group[0] }}</h2>
|
||||
</a>
|
||||
<ul>
|
||||
{% for channel in group[2] %}
|
||||
<li><a href="{{ channel[1] }}">{{ channel[0] }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</center>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
|
||||
</html>
|
166
templates/style.html
Normal file
166
templates/style.html
Normal file
|
@ -0,0 +1,166 @@
|
|||
<style>
|
||||
body {
|
||||
font-family: DejaVu Sans Mono, monospace;
|
||||
margin:20px auto;
|
||||
line-height:1.5em;
|
||||
font-size:1.1em;
|
||||
background-color:#282c34;
|
||||
max-width:100vw;
|
||||
color:#bbc2cf;
|
||||
padding:0 10px;
|
||||
hyphens:auto;
|
||||
}
|
||||
|
||||
|
||||
a { color:#ff6c6b; text-decoration:none; }
|
||||
a:hover { color:#ff6c6b; text-decoration:underline; }
|
||||
|
||||
h1,h2,h3,.fact_check_info_title {
|
||||
line-height:1.2;
|
||||
color:#51afef;
|
||||
font-size:1.3em;
|
||||
}
|
||||
h2 { font-size:1.2em; }
|
||||
h3,.fact_check_info_title { font-size:1.1em; }
|
||||
|
||||
pre,code {
|
||||
tab-size:8;
|
||||
background: #20232a;
|
||||
color: #969ba6;
|
||||
border: 1px solid lightgrey;
|
||||
padding: 5px;
|
||||
tab-size:4;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 10px solid #969ba6;
|
||||
padding-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.ibles {
|
||||
display:inline-block;
|
||||
vertical-align:top;
|
||||
}
|
||||
|
||||
.ible-small {
|
||||
font-size:0.7em;
|
||||
font-weight:thin;
|
||||
line-height:1em;
|
||||
}
|
||||
|
||||
.step-imgs {
|
||||
display:flex;
|
||||
align-items:center;
|
||||
justify-content:center;
|
||||
flex-wrap:wrap;
|
||||
}
|
||||
|
||||
.step-imgs img {
|
||||
max-width:300px;
|
||||
}
|
||||
|
||||
.reply-button,.replies {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.reply-button + label {
|
||||
position:relative;
|
||||
display:block;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
input.reply-button:checked + label + .replies {
|
||||
display:flex;
|
||||
flex-direction:column;
|
||||
gap:1rem;
|
||||
margin-top:1rem;
|
||||
}
|
||||
|
||||
.member-list {
|
||||
display:inline-block;
|
||||
max-width:200px;
|
||||
vertical-align:top;
|
||||
}
|
||||
|
||||
.ible-list-item {
|
||||
display:inline-block;
|
||||
max-width:350px;
|
||||
vertical-align:top;
|
||||
margin-bottom:2rem;
|
||||
}
|
||||
|
||||
.contest-list-item {
|
||||
display:inline-block;
|
||||
max-width:500px;
|
||||
vertical-align:top;
|
||||
margin-bottom:2rem;
|
||||
}
|
||||
|
||||
.archive-month-wrapper {
|
||||
display:inline-block;
|
||||
width:30vw;
|
||||
vertical-align:top;
|
||||
}
|
||||
|
||||
.archive-month {
|
||||
display:flex;
|
||||
flex-direction:column;
|
||||
gap:-10px;
|
||||
margin-bottom:1rem;
|
||||
justify-content:space-between;
|
||||
}
|
||||
|
||||
.archive {
|
||||
margin-bottom:-20px;
|
||||
}
|
||||
|
||||
ul.pagination {
|
||||
display:flex;
|
||||
justify-content:space-around;
|
||||
padding: 0 33vw;
|
||||
list-style-type:none;
|
||||
align-items:center;
|
||||
}
|
||||
|
||||
ul.pagination li.active a,
|
||||
ul.pagination li.disabled a,
|
||||
ul.pagination li.active a:hover,
|
||||
ul.pagination li.disabled a:hover {
|
||||
color:#bbc2cf;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
.closed-contest-contest {
|
||||
object-fit:cover;
|
||||
width:33vw;
|
||||
height:15vw;
|
||||
display:inline-block;
|
||||
vertical-align:top;
|
||||
padding:0 10px;
|
||||
}
|
||||
|
||||
.closed-contest-winner,
|
||||
.closed-contest-winner-img {
|
||||
width:15vw;
|
||||
display:inline-block;
|
||||
vertical-align:top;
|
||||
padding:0 10px;
|
||||
font-size:0.8em;
|
||||
text-overflow:ellipsis;
|
||||
white-space:nowrap;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
.sitemap-group {
|
||||
margin-top:2em;
|
||||
display:inline-block;
|
||||
width:30vw;
|
||||
text-align:left;
|
||||
vertical-align:top;
|
||||
}
|
||||
|
||||
.sitemap-group h2 {
|
||||
text-align:center;
|
||||
}
|
||||
</style>
|
Loading…
Add table
Add a link
Reference in a new issue