structables 0.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- structables/__init__.py +0 -0
- structables/main.py +1282 -0
- structables/static/css/style.css +323 -0
- structables/static/img/logo.png +0 -0
- structables/static/img/logo_lg.png +0 -0
- structables/static/img/magnifying-glass-solid.svg +1 -0
- structables/templates/400.html +8 -0
- structables/templates/404.html +13 -0
- structables/templates/429.html +9 -0
- structables/templates/500.html +8 -0
- structables/templates/archives.html +31 -0
- structables/templates/article-review.html +7 -0
- structables/templates/article.html +87 -0
- structables/templates/base.html +27 -0
- structables/templates/category.html +68 -0
- structables/templates/collection.html +34 -0
- structables/templates/contest.html +23 -0
- structables/templates/contests.html +40 -0
- structables/templates/footer.html +11 -0
- structables/templates/header.html +39 -0
- structables/templates/iframe.html +12 -0
- structables/templates/index.html +43 -0
- structables/templates/member-instructables.html +32 -0
- structables/templates/member.html +39 -0
- structables/templates/privacypolicy.html +10 -0
- structables/templates/projects.html +56 -0
- structables/templates/sitemap.html +23 -0
- structables/templates/style.html +2 -0
- structables-0.2.0.dist-info/METADATA +722 -0
- structables-0.2.0.dist-info/RECORD +33 -0
- structables-0.2.0.dist-info/WHEEL +4 -0
- structables-0.2.0.dist-info/entry_points.txt +2 -0
- structables-0.2.0.dist-info/licenses/LICENSE +661 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<header>
|
|
2
|
+
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
|
3
|
+
<div class="container-fluid">
|
|
4
|
+
<a class="navbar-brand" href="/">
|
|
5
|
+
<img
|
|
6
|
+
class="navbar-logo"
|
|
7
|
+
src="{{ url_for('static', filename='img/logo.png') }}"
|
|
8
|
+
alt="Structables Logo"
|
|
9
|
+
/>
|
|
10
|
+
</a>
|
|
11
|
+
<div class="navbar-collapse">
|
|
12
|
+
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
|
13
|
+
<li class="nav-item">
|
|
14
|
+
<a class="nav-link" href="/projects/">Projects</a>
|
|
15
|
+
</li>
|
|
16
|
+
<li class="nav-item">
|
|
17
|
+
<a class="nav-link" href="/contest/">Contests</a>
|
|
18
|
+
</li>
|
|
19
|
+
<li class="nav-item">
|
|
20
|
+
<a class="nav-link" href="/teachers/">Teachers</a>
|
|
21
|
+
</li>
|
|
22
|
+
<li class="nav-item">
|
|
23
|
+
<a class="nav-link" href="/sitemap/">Sitemap</a>
|
|
24
|
+
</li>
|
|
25
|
+
</ul>
|
|
26
|
+
<form class="d-flex" action="/search" method="post">
|
|
27
|
+
<input
|
|
28
|
+
class="form-control me-2"
|
|
29
|
+
type="search"
|
|
30
|
+
placeholder="Search"
|
|
31
|
+
name="q"
|
|
32
|
+
aria-label="Search"
|
|
33
|
+
/>
|
|
34
|
+
<button class="btn btn-outline-success" type="submit">Search</button>
|
|
35
|
+
</form>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</nav>
|
|
39
|
+
</header>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<title>iframe content</title>
|
|
4
|
+
</head>
|
|
5
|
+
<body>
|
|
6
|
+
<h1>Blocked iframe</h1>
|
|
7
|
+
<p>This page contains content from outside Instructables.com. This was blocked for your safety.</p>
|
|
8
|
+
<p>It tries to load the following URL:</p>
|
|
9
|
+
<p><a href="{{ url | safe }}" target="_self">{{ url | safe }}</a></p>
|
|
10
|
+
<p>Click <a href="{{ url | safe }}" target="_self">here</a> to load the content.</p>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{% extends "base.html" %} {% block content %}
|
|
2
|
+
<div class="container text-center">
|
|
3
|
+
<h1>{{ title }}</h1>
|
|
4
|
+
{% for section in sections %}
|
|
5
|
+
<section>
|
|
6
|
+
<div class="row">
|
|
7
|
+
<h3><a href="{{ section[1] }}">{{ section[0] }}</a></h3>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="row justify-content-center">
|
|
10
|
+
{% for ible in section[2] %}
|
|
11
|
+
<div class="col-xs-12 col-sm-6 col-lg-4 mb-4">
|
|
12
|
+
<div class="card h-100">
|
|
13
|
+
<a href="{{ ible.link }}">
|
|
14
|
+
<img
|
|
15
|
+
class="card-img-top"
|
|
16
|
+
src="{{ ible.img }}"
|
|
17
|
+
alt="{{ ible.alt }}"
|
|
18
|
+
style="max-width: 100%"
|
|
19
|
+
/>
|
|
20
|
+
<div class="card-body">
|
|
21
|
+
<h5 class="card-title">{{ ible.title }}</h5>
|
|
22
|
+
</div>
|
|
23
|
+
</a>
|
|
24
|
+
<div class="card-footer">
|
|
25
|
+
<p class="card-text">
|
|
26
|
+
by <a href="{{ ible.author_link }}">{{ ible.author }}</a>
|
|
27
|
+
</p>
|
|
28
|
+
<p class="card-text">
|
|
29
|
+
in <a href="{{ ible.channel_link }}">{{ ible.channel }}</a>
|
|
30
|
+
</p>
|
|
31
|
+
<p class="card-text">
|
|
32
|
+
{{ ible.favorites }} Favorites, {{ ible.views }} Views
|
|
33
|
+
</p>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
{% endfor %}
|
|
38
|
+
</div>
|
|
39
|
+
<hr />
|
|
40
|
+
</section>
|
|
41
|
+
{% endfor %}
|
|
42
|
+
</div>
|
|
43
|
+
{% endblock %}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{% extends "base.html" %}
|
|
2
|
+
|
|
3
|
+
{% block content %}
|
|
4
|
+
<center>
|
|
5
|
+
<img width=150px height=150px style="display:inline-block;" src="{{ header_content.avatar }}" alt="{{ header_content.title }}">
|
|
6
|
+
<h1>{{ header_content.title }}</h1>
|
|
7
|
+
<span>{{ header_content.location }} </span>
|
|
8
|
+
<span>{{ header_content.signup }}</span>
|
|
9
|
+
<br>
|
|
10
|
+
<span>{{ header_content.instructables }} Instructables </span>
|
|
11
|
+
<span>{{ header_content.views }} Views </span>
|
|
12
|
+
<span>{{ header_content.comments }} Comments </span>
|
|
13
|
+
<span>{{ header_content.followers }} Followers</span>
|
|
14
|
+
<br>
|
|
15
|
+
<p>{{ header_content.bio }}</p>
|
|
16
|
+
<hr>
|
|
17
|
+
<h2>Instructables</h2>
|
|
18
|
+
|
|
19
|
+
<div style="max-width:90%;">
|
|
20
|
+
{% for ible in ibles %}
|
|
21
|
+
<div class="ible-list-item">
|
|
22
|
+
<a href="{{ ible.link }}" style="color:#bbc2cf;">
|
|
23
|
+
<img style="max-width:350px;" src="{{ ible.img }}" alt="{{ ible.title }}">
|
|
24
|
+
<p>{{ ible.title }}</p>
|
|
25
|
+
<p>{{ ible.views }} Views, {{ ible.favorites }} Favorites</p>
|
|
26
|
+
</a>
|
|
27
|
+
</div>
|
|
28
|
+
{% endfor %}
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
</center>
|
|
32
|
+
{% endblock %}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{% extends "base.html" %}
|
|
2
|
+
|
|
3
|
+
{% block content %}
|
|
4
|
+
<center>
|
|
5
|
+
<img width=150px height=150px style="display:inline-block;" src="{{ header_content.avatar }}" alt="{{ header_content.title }}">
|
|
6
|
+
<h1>{{ header_content.title }}</h1>
|
|
7
|
+
<span>{{ header_content.location }} </span>
|
|
8
|
+
<span>{{ header_content.signup }}</span>
|
|
9
|
+
<br>
|
|
10
|
+
<span>{{ header_content.instructables }} Instructables </span>
|
|
11
|
+
<span>{{ header_content.views }} Views </span>
|
|
12
|
+
<span>{{ header_content.comments }} Comments </span>
|
|
13
|
+
<span>{{ header_content.followers }} Followers</span>
|
|
14
|
+
<br>
|
|
15
|
+
<p>{{ header_content.bio }}</p>
|
|
16
|
+
{% if ible_list_title != "" %}
|
|
17
|
+
<hr>
|
|
18
|
+
{% endif %}
|
|
19
|
+
<h2>{{ ible_list_title }}</h2>
|
|
20
|
+
{% for ible in ibles %}
|
|
21
|
+
<div class="member-list">
|
|
22
|
+
<a href="{{ ible.link }}" style="color:#bbc2cf;">
|
|
23
|
+
<img style="max-width:200px;" src="{{ ible.img }}" alt="{{ ible.title }}">
|
|
24
|
+
<p>{{ ible.title }}</p>
|
|
25
|
+
</a>
|
|
26
|
+
</div>
|
|
27
|
+
{% endfor %}
|
|
28
|
+
<p><a href="/member/{{ header_content.title }}/instructables/">View all Instructables</a></p>
|
|
29
|
+
<br>
|
|
30
|
+
<h2>{{ ach_list_title }}</h2>
|
|
31
|
+
{% for ach in achs %}
|
|
32
|
+
<div class="member-list">
|
|
33
|
+
<p><b>{{ ach[0] }}</b></p>
|
|
34
|
+
<p>{{ ach[1] }}</p>
|
|
35
|
+
</div>
|
|
36
|
+
{% endfor %}
|
|
37
|
+
|
|
38
|
+
</center>
|
|
39
|
+
{% endblock %}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{% extends "base.html" %} {% block content %}
|
|
2
|
+
<center>
|
|
3
|
+
<h1>{{ title }}</h1>
|
|
4
|
+
<span><a href="{{ path }}/">Featured</a></span>
|
|
5
|
+
<span><a href="{{ path }}/recent/">Recent</a></span>
|
|
6
|
+
<span><a href="{{ path }}/popular/">Popular</a></span>
|
|
7
|
+
<span><a href="{{ path }}/views/">Views</a></span>
|
|
8
|
+
<span><a href="{{ path }}/winners/">Winners</a></span>
|
|
9
|
+
<br />
|
|
10
|
+
|
|
11
|
+
<div class="container">
|
|
12
|
+
<div class="row">
|
|
13
|
+
{% for ible in ibles %}
|
|
14
|
+
<div class="col-xs-12 col-sm-6 col-lg-4 mb-4">
|
|
15
|
+
<div class="card h-100 d-flex flex-column">
|
|
16
|
+
<a href="{{ ible.link }}">
|
|
17
|
+
<img
|
|
18
|
+
class="card-img-top"
|
|
19
|
+
src="{{ ible.img }}"
|
|
20
|
+
alt="{{ ible.alt }}"
|
|
21
|
+
style="max-width: 100%"
|
|
22
|
+
/>
|
|
23
|
+
<div class="card-body">
|
|
24
|
+
<h5 class="card-title">{{ ible.title }}</h5>
|
|
25
|
+
</div>
|
|
26
|
+
</a>
|
|
27
|
+
<div class="card-footer mt-auto">
|
|
28
|
+
<p class="card-text">
|
|
29
|
+
by <a href="{{ ible.author_link }}">{{ ible.author }}</a>
|
|
30
|
+
</p>
|
|
31
|
+
<p class="card-text">
|
|
32
|
+
in <a href="{{ ible.channel_link }}">{{ ible.channel }}</a>
|
|
33
|
+
</p>
|
|
34
|
+
<p class="card-text">
|
|
35
|
+
{{ ible.favorites }} Favorites, {{ ible.views }} Views
|
|
36
|
+
</p>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
{% endfor %}
|
|
41
|
+
|
|
42
|
+
<ul class="pagination">
|
|
43
|
+
{% for page in pagination %}
|
|
44
|
+
<li class="page-item">
|
|
45
|
+
<a
|
|
46
|
+
class="page-link {% if page.active %}active{% endif %} {% if page.disabled %}disabled{% endif %}"
|
|
47
|
+
href="{{ page.link }}"
|
|
48
|
+
>{{ page.text }}</a
|
|
49
|
+
>
|
|
50
|
+
</li>
|
|
51
|
+
{% endfor %}
|
|
52
|
+
</ul>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</center>
|
|
56
|
+
{% endblock %}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{% extends "base.html" %}
|
|
2
|
+
|
|
3
|
+
{% block content %}
|
|
4
|
+
<center>
|
|
5
|
+
<h1>Sitemap</h1>
|
|
6
|
+
<div class="container">
|
|
7
|
+
<div class="row sitemap-groups"></div>
|
|
8
|
+
{% for group in groups %}
|
|
9
|
+
<div class="sitemap-group col-xs-12 col-sm-6 col-lg-4">
|
|
10
|
+
<a href="{{ group[1] }}">
|
|
11
|
+
<h2>{{ group[0] }}</h2>
|
|
12
|
+
</a>
|
|
13
|
+
<ul>
|
|
14
|
+
{% for channel in group[2] %}
|
|
15
|
+
<li><a href="{{ channel[1] }}">{{ channel[0] }}</a></li>
|
|
16
|
+
{% endfor %}
|
|
17
|
+
</ul>
|
|
18
|
+
</div>
|
|
19
|
+
{% endfor %}
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
</center>
|
|
23
|
+
{% endblock %}
|