feat: Check in simplified CSS
This commit is contained in:
parent
b5f3ddc4d7
commit
9de12606a6
11 changed files with 901 additions and 381 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -6,6 +6,7 @@ privacy.md
|
|||
privacy.txt
|
||||
*.pyc
|
||||
venv/
|
||||
/output
|
||||
|
||||
# Special rules needed for building the Docker image
|
||||
/dist/*
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1,2 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 512 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>
|
||||
<!-- MIT © Phosphor Icons - https://github.com/phosphor-icons -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="#000000" viewBox="0 0 256 256"><path d="M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"></path></svg>
|
Before Width: | Height: | Size: 494 B After Width: | Height: | Size: 334 B |
|
@ -3,25 +3,20 @@
|
|||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>{% if title %}{{ title }} - {% endif %}Structables</title>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{ url_for('static', filename='css/style.css') }}"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{ url_for('static', filename='dist/css/bootstrap.min.css') }}"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
href="{{ url_for('static', filename='img/logo.png') }}"
|
||||
/>
|
||||
<title>
|
||||
{% if title %}{{ title }} -{% endif %}
|
||||
Structables</title>
|
||||
<link rel="stylesheet"
|
||||
href="{{ url_for('static', filename='css/style.css') }}" />
|
||||
<link rel="icon"
|
||||
type="image/png"
|
||||
href="{{ url_for('static', filename='img/logo.png') }}" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% include "header.html" %}
|
||||
<main>{% block content %} {% endblock %}</main>
|
||||
<main class="container">
|
||||
{% block content %}{% endblock %}
|
||||
</main>
|
||||
{% include "footer.html" %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,68 +1,35 @@
|
|||
{% extends "base.html" %} {% block content %}
|
||||
<div class="container">
|
||||
<h1 class="text-center">{{ title }}</h1>
|
||||
<div class="row">
|
||||
{% for channel in channels %}
|
||||
<div class="col-6 col-md-4 col-lg-3 text-center mb-3">
|
||||
<a
|
||||
href="/{{ channel }}"
|
||||
class="btn btn-primary d-block position-relative"
|
||||
>
|
||||
{{ channel }}
|
||||
</a>
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<div class="text-center">
|
||||
<h1>{{ title }}</h1>
|
||||
<div class="channel-grid my-4">
|
||||
{% for channel in channels %}<a href="/{{ channel }}" class="btn btn-primary">{{ channel }}</a>{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<h2 class="text-center">
|
||||
<a href="{{ path }}projects/">Featured Projects</a>
|
||||
</h2>
|
||||
<div class="row">
|
||||
{% for ible in ibles %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-4 mb-4">
|
||||
<div class="card h-100 d-flex flex-column">
|
||||
<a href="{{ ible.link }}">
|
||||
<img
|
||||
class="card-img-top"
|
||||
src="{{ ible.img }}"
|
||||
alt="{{ ible.alt }}"
|
||||
style="max-width: 100%"
|
||||
/>
|
||||
<h2 class="my-4">
|
||||
<a href="{{ path }}projects/">Featured Projects</a>
|
||||
</h2>
|
||||
<div class="card-grid">
|
||||
{% for ible in ibles %}
|
||||
<div class="card">
|
||||
<a href="{{ ible.link }}">
|
||||
<img class="card-img-top" src="{{ ible.img }}" alt="{{ ible.alt }}">
|
||||
</a>
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ ible.title }}</h5>
|
||||
<h5 class="card-title">
|
||||
<a href="{{ ible.link }}">{{ ible.title }}</a>
|
||||
</h5>
|
||||
<p class="card-text">
|
||||
by <a href="{{ ible.author_link }}">{{ ible.author }}</a>
|
||||
</p>
|
||||
<p class="card-text">
|
||||
in <a href="{{ ible.channel_link }}">{{ ible.channel }}</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<p class="card-text">{{ ible.favorites }} Favorites, {{ ible.views }} Views</p>
|
||||
</div>
|
||||
</a>
|
||||
<div class="card-footer mt-auto">
|
||||
<p class="card-text">
|
||||
by <a href="{{ ible.author_link }}">{{ ible.author }}</a>
|
||||
</p>
|
||||
<p class="card-text">
|
||||
in <a href="{{ ible.channel_link }}">{{ ible.channel }}</a>
|
||||
</p>
|
||||
<p class="card-text">
|
||||
{{ ible.favorites }} Favorites, {{ ible.views }} Views
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<!-- Doesn't seem to be current
|
||||
<h2 class="text-center"><a href="/contest/">Contests</a></h2>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
{% for contest in contests %}
|
||||
<a href="{{ contest.link }}">
|
||||
<img
|
||||
src="{{ contest.img }}"
|
||||
alt="{{ contest.title }}"
|
||||
class="img-fluid"
|
||||
/>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,17 +1,13 @@
|
|||
<footer class="bg-light text-dark py-4">
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6 text-center text-md-left">
|
||||
<div class="col-6">
|
||||
<p class="mb-1">
|
||||
<a
|
||||
href="https://git.private.coffee/PrivateCoffee/structables"
|
||||
class="text-dark"
|
||||
>
|
||||
Structables Code (AGPLv3)
|
||||
</a>
|
||||
<a href="https://git.private.coffee/PrivateCoffee/structables"
|
||||
class="text-dark">Structables Code (AGPLv3)</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6 text-center text-md-right">
|
||||
<div class="col-6 text-right">
|
||||
<p class="mb-1">
|
||||
<a href="/privacypolicy" class="text-dark">View privacy policy</a>
|
||||
</p>
|
||||
|
|
|
@ -1,39 +1,39 @@
|
|||
<header>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<div class="container-fluid">
|
||||
<div class="container">
|
||||
<nav class="navbar">
|
||||
<a class="navbar-brand" href="/">
|
||||
<img
|
||||
class="navbar-logo"
|
||||
src="{{ url_for('static', filename='img/logo.png') }}"
|
||||
alt="Structables Logo"
|
||||
/>
|
||||
<img class="navbar-logo"
|
||||
src="{{ url_for('static', filename='img/logo.png') }}"
|
||||
alt="Structables Logo" />
|
||||
Structables
|
||||
</a>
|
||||
<div class="navbar-collapse">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/projects/">Projects</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/contest/">Contests</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/teachers/">Teachers</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/sitemap/">Sitemap</a>
|
||||
</li>
|
||||
</ul>
|
||||
<form class="d-flex" action="/search" method="post">
|
||||
<input
|
||||
class="form-control me-2"
|
||||
type="search"
|
||||
placeholder="Search"
|
||||
name="q"
|
||||
aria-label="Search"
|
||||
/>
|
||||
<button class="btn btn-outline-success" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/projects/">Projects</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/contest/">Contests</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/teachers/">Teachers</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/sitemap/">Sitemap</a>
|
||||
</li>
|
||||
</ul>
|
||||
<form class="search-form" action="/search" method="post">
|
||||
<input class="search-input"
|
||||
type="search"
|
||||
placeholder="Search"
|
||||
name="q"
|
||||
aria-label="Search" />
|
||||
<button class="search-button" type="submit">
|
||||
<img src="{{ url_for('static', filename='img/magnifying-glass-solid.svg') }}"
|
||||
alt="Search"
|
||||
width="16"
|
||||
height="16">
|
||||
</button>
|
||||
</form>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
|
|
@ -1,45 +1,37 @@
|
|||
{% extends "base.html" %} {% block content %}
|
||||
<div class="container text-center">
|
||||
<h1>{{ title }}</h1>
|
||||
{% for section in sections %}
|
||||
<section>
|
||||
<div class="row">
|
||||
<h3><a href="{{ section[1] }}">{{ section[0] }}</a></h3>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
{% for ible in section[2] %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-4 mb-4">
|
||||
<div class="card h-100">
|
||||
<a href="{{ ible.link }}">
|
||||
<img
|
||||
class="card-img-top"
|
||||
src="{{ ible.img }}"
|
||||
alt="{{ ible.alt }}"
|
||||
style="max-width: 100%"
|
||||
/>
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ ible.title }}</h5>
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<div class="text-center">
|
||||
<h1>{{ title }}</h1>
|
||||
{% for section in sections %}
|
||||
<section class="my-5">
|
||||
<h3>
|
||||
<a href="{{ section[1] }}">{{ section[0] }}</a>
|
||||
</h3>
|
||||
<div class="card-grid">
|
||||
{% for ible in section[2] %}
|
||||
<div class="card">
|
||||
<a href="{{ ible.link }}">
|
||||
<img class="card-img-top" src="{{ ible.img }}" alt="{{ ible.alt }}">
|
||||
</a>
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">
|
||||
<a href="{{ ible.link }}">{{ ible.title }}</a>
|
||||
</h5>
|
||||
<p class="card-text">
|
||||
by <a href="{{ ible.author_link }}">{{ ible.author }}</a>
|
||||
</p>
|
||||
<p class="card-text">
|
||||
in <a href="{{ ible.channel_link }}">{{ ible.channel }}</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<p class="card-text">{{ ible.favorites }} Favorites, {{ ible.views }} Views</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<div class="card-footer">
|
||||
<p class="card-text">
|
||||
by <a href="{{ ible.author_link }}">{{ ible.author }}</a>
|
||||
</p>
|
||||
<p class="card-text">
|
||||
in <a href="{{ ible.channel_link }}">{{ ible.channel }}</a>
|
||||
</p>
|
||||
<p class="card-text">
|
||||
{{ ible.favorites }} Favorites, {{ ible.views }} Views
|
||||
</p>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% if section != sections[-1] %}
|
||||
<hr />
|
||||
{% endif %}
|
||||
</section>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% if section != sections[-1] %}<hr class="my-4" />{% endif %}
|
||||
</section>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,56 +1,49 @@
|
|||
{% extends "base.html" %} {% block content %}
|
||||
<center>
|
||||
<h1>{{ title }}</h1>
|
||||
<span><a href="{{ path }}/">Featured</a></span>
|
||||
<span><a href="{{ path }}/recent/">Recent</a></span>
|
||||
<span><a href="{{ path }}/popular/">Popular</a></span>
|
||||
<span><a href="{{ path }}/views/">Views</a></span>
|
||||
<span><a href="{{ path }}/winners/">Winners</a></span>
|
||||
<br />
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<div class="text-center">
|
||||
<h1>{{ title }}</h1>
|
||||
<div class="sort-links my-3">
|
||||
<a href="{{ path }}/"
|
||||
class="btn btn-outline-primary {% if 'recent' not in path and 'popular' not in path and 'views' not in path and 'winners' not in path %}active{% endif %}">Featured</a>
|
||||
<a href="{{ path }}/recent/"
|
||||
class="btn btn-outline-primary {% if 'recent' in path %}active{% endif %}">Recent</a>
|
||||
<a href="{{ path }}/popular/"
|
||||
class="btn btn-outline-primary {% if 'popular' in path %}active{% endif %}">Popular</a>
|
||||
<a href="{{ path }}/views/"
|
||||
class="btn btn-outline-primary {% if 'views' in path %}active{% endif %}">Views</a>
|
||||
<a href="{{ path }}/winners/"
|
||||
class="btn btn-outline-primary {% if 'winners' in path %}active{% endif %}">Winners</a>
|
||||
</div>
|
||||
<div class="card-grid">
|
||||
{% for ible in ibles %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-4 mb-4">
|
||||
<div class="card h-100 d-flex flex-column">
|
||||
<div class="card">
|
||||
<a href="{{ ible.link }}">
|
||||
<img
|
||||
class="card-img-top"
|
||||
src="{{ ible.img }}"
|
||||
alt="{{ ible.alt }}"
|
||||
style="max-width: 100%"
|
||||
/>
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ ible.title }}</h5>
|
||||
</div>
|
||||
<img class="card-img-top" src="{{ ible.img }}" alt="{{ ible.title }}">
|
||||
</a>
|
||||
<div class="card-footer mt-auto">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">
|
||||
<a href="{{ ible.link }}">{{ ible.title }}</a>
|
||||
</h5>
|
||||
<p class="card-text">
|
||||
by <a href="{{ ible.author_link }}">{{ ible.author }}</a>
|
||||
</p>
|
||||
<p class="card-text">
|
||||
in <a href="{{ ible.channel_link }}">{{ ible.channel }}</a>
|
||||
</p>
|
||||
<p class="card-text">
|
||||
{{ ible.favorites }} Favorites, {{ ible.views }} Views
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<p class="card-text">{{ ible.favorites }} Favorites, {{ ible.views }} Views</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<ul class="pagination">
|
||||
{% for page in pagination %}
|
||||
<li class="page-item">
|
||||
<a
|
||||
class="page-link {% if page.active %}active{% endif %} {% if page.disabled %}disabled{% endif %}"
|
||||
href="{{ page.link }}"
|
||||
>{{ page.text }}</a
|
||||
>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="pagination">
|
||||
{% for page in pagination %}
|
||||
<li class="page-item">
|
||||
<a class="page-link {% if page.active %}active{% endif %} {% if page.disabled %}disabled{% endif %}"
|
||||
href="{{ page.link }}">{{ page.text }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</center>
|
||||
{% endblock %}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue