Compare commits

..

84 Commits

Author SHA1 Message Date
Simple_Not
4ec4263e08 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 13:20:33 +10:00
Simple_Not
a4c1a4cb7b check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 13:19:50 +10:00
Simple_Not
d83ccb48ec check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 13:19:01 +10:00
Simple_Not
d4bcfa7b8f check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 13:16:32 +10:00
Simple_Not
db9279ea2a check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 13:16:05 +10:00
Simple_Not
f0ff983fc8 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 13:14:27 +10:00
Simple_Not
132028c649 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 13:13:21 +10:00
Simple_Not
e11888c930 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 12:45:46 +10:00
Simple_Not
79196c3c9f check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 12:39:28 +10:00
Simple_Not
382e50391c check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 12:38:22 +10:00
Simple_Not
25725646cb check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 12:34:27 +10:00
Simple_Not
f670bc9b2c check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 12:31:18 +10:00
Simple_Not
f9c55713d4 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 12:29:19 +10:00
Simple_Not
eee63ed855 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 02:14:08 +10:00
Simple_Not
dfa38a20d3 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 02:13:10 +10:00
Simple_Not
7c4c3b4d25 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 02:12:10 +10:00
Simple_Not
0378e7e484 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 02:10:40 +10:00
Simple_Not
ad75b536f1 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 02:09:52 +10:00
Simple_Not
7c026e82bf check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 02:09:01 +10:00
Simple_Not
8e0ddee465 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 02:08:51 +10:00
Simple_Not
fd5cb4140a check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 02:06:24 +10:00
Simple_Not
4eb7bd8a50 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 02:05:33 +10:00
Simple_Not
ed9260ca66 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 02:04:38 +10:00
Simple_Not
b824370a43 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 01:52:36 +10:00
Simple_Not
39aa0a9687 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 01:52:00 +10:00
Simple_Not
bda72fc32d check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 01:43:56 +10:00
Simple_Not
6d9caa78f2 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 01:40:19 +10:00
Simple_Not
6add3fe85d check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 01:35:31 +10:00
Simple_Not
1d5369d73a check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-14 01:32:56 +10:00
Simple_Not
10b0643899 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 22:06:10 +10:00
Simple_Not
9492835187 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 22:03:03 +10:00
Simple_Not
12cfadab19 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 22:02:19 +10:00
Simple_Not
ec724d0c18 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 22:01:47 +10:00
Simple_Not
4024f8f032 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:56:36 +10:00
Simple_Not
1173482a57 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:45:11 +10:00
Simple_Not
8739ad9313 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:34:56 +10:00
Simple_Not
9b7fae2a62 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:34:06 +10:00
Simple_Not
5e9d093589 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:32:36 +10:00
Simple_Not
216a35734c check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:31:16 +10:00
Simple_Not
7e01cf90b5 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:27:39 +10:00
Simple_Not
3361533b62 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:26:04 +10:00
Simple_Not
9488d197dc check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:05:09 +10:00
Simple_Not
8aa2d0b0bf check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:03:33 +10:00
Simple_Not
012f55c18d check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:02:51 +10:00
Simple_Not
98388b2021 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 21:01:57 +10:00
Simple_Not
697d2f5703 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:54:44 +10:00
Simple_Not
694c0bc1a9 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:51:33 +10:00
Simple_Not
bf8581a560 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:50:19 +10:00
Simple_Not
be8202d2b0 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:48:47 +10:00
Simple_Not
7510c10e9f check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:48:10 +10:00
Simple_Not
34bb443b0d check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:47:10 +10:00
Simple_Not
8c8fab8147 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:45:52 +10:00
Simple_Not
463d539ea4 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:45:23 +10:00
Simple_Not
c923785016 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:44:32 +10:00
Simple_Not
a2c552df47 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:42:35 +10:00
Simple_Not
329614ed3f check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:41:22 +10:00
Simple_Not
33c7a8e59f check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:38:48 +10:00
Simple_Not
f027a04c0f check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:38:08 +10:00
Simple_Not
295381937c check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:36:52 +10:00
Simple_Not
2876a00bed check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:35:37 +10:00
Simple_Not
1222913234 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:35:11 +10:00
Simple_Not
8fde2c68ee check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:33:47 +10:00
Simple_Not
faf6296efd check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:33:42 +10:00
Simple_Not
c94424d110 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:32:42 +10:00
Simple_Not
fb336375c6 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:31:23 +10:00
Simple_Not
52769de237 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:29:29 +10:00
Simple_Not
da1a38971a check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:28:21 +10:00
Simple_Not
c9d0424926 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:27:31 +10:00
Simple_Not
9ad17b25d4 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:26:14 +10:00
Simple_Not
e7955b9585 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:23:59 +10:00
Simple_Not
11f1cada7e check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:23:27 +10:00
Simple_Not
1fef23b5a4 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:23:01 +10:00
Simple_Not
74233dd498 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:21:17 +10:00
Simple_Not
f3a0c82ef5 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:20:34 +10:00
Simple_Not
17d84638e3 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:19:57 +10:00
Simple_Not
7b1e40820f check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:18:12 +10:00
Simple_Not
3e935e4d1b check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:13:33 +10:00
Simple_Not
270b3f562b check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:12:11 +10:00
Simple_Not
e7e34ff9f6 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:09:26 +10:00
Simple_Not
f064c0aedd check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 20:03:01 +10:00
Simple_Not
974e1f52d6 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 19:59:56 +10:00
Simple_Not
b92b5c63b1 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 19:57:40 +10:00
Simple_Not
f1d5ef70ad check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 19:56:43 +10:00
Simple_Not
6094f277b5 check posts
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 19:50:45 +10:00
9 changed files with 177 additions and 3072 deletions

59
app.py
View File

@ -23,6 +23,7 @@ js.build()
docker_short_id = socket.gethostname()
arango_client = ArangoClient(hosts='https://arango.vdk2ch.ru')
db = arango_client.db('board1', username='root', password='stolendick527')
@ -45,7 +46,6 @@ def healthz():
@app.route("/")
def homepage():
docker_short_id = socket.gethostname()
return render_template("main-page.html", host_id=docker_short_id, boards=board_list)
@ -53,12 +53,57 @@ def homepage():
def page_board(board_id):
b_threads = [ open_threads[thread_id] for thread_id in open_threads if thread_id in threads_lists[board_id]]
return render_template("board.html", board_id=board_id, boards=board_list, board_threads=b_threads)
return render_template("board.html", host_id=docker_short_id, board_id=board_id, boards=board_list, board_threads=b_threads)
# @app.route('/post_my_post', method=['POST'])
# def post_a_post():
# pass
@app.route("/db_posts")
def page_posts_from_db():
postos = db.collection('posts')
postos = [ p for p in postos]
postos = sorted(postos, key=lambda posto: posto['_key'], reverse=False)
return render_template("interactive-posts.html", host_id=docker_short_id, postos=postos)
@app.route('/post_my_post/<post_key>', methods=['POST'])
def post_a_post(post_key):
postos = db.collection('posts')
#### TODO проверить как-то по-умному что мы таки его добавили
metadata = postos.insert({
'texto': 'next post is this',
'parent_post': f'{post_key}'
}, overwrite_mode='update')
metadata = db.collection('post_parents').insert({
# '_key': post_key,
'_from': f'posts/{post_key}',
'_to': f'posts/{metadata["_key"]}'
}, overwrite_mode='update')
cursor = db.aql.execute(
"""FOR ppp IN posts
LET children = (FOR v IN 1..9999 OUTBOUND ppp post_parents RETURN v)
UPDATE ppp WITH { children_num : COUNT_DISTINCT( children[*]._key ) } IN posts"""
)
cursor = db.aql.execute(
"""FOR ppp IN posts
LET children = (FOR v IN 1OUTBOUND ppp post_parents RETURN v)
UPDATE ppp WITH { answers_num : COUNT_DISTINCT( children[*]._key ) } IN posts"""
)
postos = db.collection('posts')
postos = sorted(postos, key=lambda posto: posto['_key'], reverse=False)
return render_template("i-posts.html", host_id=docker_short_id, postos=postos)
# @app.route('/post_my_file', method=['POST'])
# def post_a_file():
@ -76,14 +121,14 @@ def search_todo():
search_term = request.form.get("search")
if not len(search_term):
return render_template("todo.html", todos=[])
return render_template("todo.html", host_id=docker_short_id, todos=[])
res_todos = []
for todo in todos:
if search_term in todo["title"]:
res_todos.append(todo)
return render_template("todo.html", todos=res_todos)
return render_template("todo.html", host_id=docker_short_id, todos=res_todos)
### /stolen

File diff suppressed because it is too large Load Diff

View File

@ -20,12 +20,12 @@
display: inline-block;
font-size:initial;
clip-path: polygon(0% 25%, 0% 75%, 50% 100%, 100% 75%, 100% 25%, 50% 0%);
background: red;
background: transparent;
margin-bottom: calc(var(--m) - var(--s)*0.2885);
}
.hex-container img:nth-child(odd) {
background:green;
background: transparent;
}
.hex-container::before {
content: "";
@ -37,3 +37,5 @@ content: "";
#000 0 var(--f));
}

View File

@ -5,7 +5,11 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/purecss@3.0.0/build/pure-min.css" integrity="sha384-X38yfunGUhNzHpBaEBsWLO+A0HDYOQi8ufWDkZ0k9e0eXz/tH3II7uKZ9msv++Ls" crossorigin="anonymous">
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
{% assets 'css' %}
<link rel="stylesheet" href="{{ ASSET_URL }}">
{% endassets %}
@ -18,7 +22,29 @@
<title>Board++</title>
</head>
<body class="bg-blue-100">
<div id="multi-bg">
{% block content %}
{% endblock content %}
</div>
<style>
#multi-bg{
background-size: 100% 100%;
height: 100%;
background-repeat: repeat-y;
background-attachment: fixed;
/* height: 1080px;
background-position: bottom center, 50%, 50%;
*/
display: block;
background-color: #808;
background-image:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cpolygon fill='%23cc3f47' points='957 450 539 900 1396 900'/%3E%3Cpolygon fill='%23b3373e' points='957 450 872.9 900 1396 900'/%3E%3Cpolygon fill='%23c8364e' points='-60 900 398 662 816 900'/%3E%3Cpolygon fill='%23b02f44' points='337 900 398 662 816 900'/%3E%3Cpolygon fill='%23c22f55' points='1203 546 1552 900 876 900'/%3E%3Cpolygon fill='%23ab294b' points='1203 546 1552 900 1162 900'/%3E%3Cpolygon fill='%23bb285c' points='641 695 886 900 367 900'/%3E%3Cpolygon fill='%23a52351' points='587 900 641 695 886 900'/%3E%3Cpolygon fill='%23b32362' points='1710 900 1401 632 1096 900'/%3E%3Cpolygon fill='%239f1f57' points='1710 900 1401 632 1365 900'/%3E%3Cpolygon fill='%23aa2068' points='1210 900 971 687 725 900'/%3E%3Cpolygon fill='%23971c5d' points='943 900 1210 900 971 687'/%3E%3C/svg%3E"),
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='200' viewBox='0 0 160 80'%3E%3Cg fill='%23FFF' fill-opacity='0.2'%3E%3Cpolygon points='0 10 0 0 10 0'/%3E%3Cpolygon points='0 40 0 30 10 30'/%3E%3Cpolygon points='0 30 0 20 10 20'/%3E%3Cpolygon points='0 70 0 60 10 60'/%3E%3Cpolygon points='0 80 0 70 10 70'/%3E%3Cpolygon points='50 80 50 70 60 70'/%3E%3Cpolygon points='10 20 10 10 20 10'/%3E%3Cpolygon points='10 40 10 30 20 30'/%3E%3Cpolygon points='20 10 20 0 30 0'/%3E%3Cpolygon points='10 10 10 0 20 0'/%3E%3Cpolygon points='30 20 30 10 40 10'/%3E%3Cpolygon points='20 20 20 40 40 20'/%3E%3Cpolygon points='40 10 40 0 50 0'/%3E%3Cpolygon points='40 20 40 10 50 10'/%3E%3Cpolygon points='40 40 40 30 50 30'/%3E%3Cpolygon points='30 40 30 30 40 30'/%3E%3Cpolygon points='40 60 40 50 50 50'/%3E%3Cpolygon points='50 30 50 20 60 20'/%3E%3Cpolygon points='40 60 40 80 60 60'/%3E%3Cpolygon points='50 40 50 60 70 40'/%3E%3Cpolygon points='60 0 60 20 80 0'/%3E%3Cpolygon points='70 30 70 20 80 20'/%3E%3Cpolygon points='70 40 70 30 80 30'/%3E%3Cpolygon points='60 60 60 80 80 60'/%3E%3Cpolygon points='80 10 80 0 90 0'/%3E%3Cpolygon points='70 40 70 60 90 40'/%3E%3Cpolygon points='80 60 80 50 90 50'/%3E%3Cpolygon points='60 30 60 20 70 20'/%3E%3Cpolygon points='80 70 80 80 90 80 100 70'/%3E%3Cpolygon points='80 10 80 40 110 10'/%3E%3Cpolygon points='110 40 110 30 120 30'/%3E%3Cpolygon points='90 40 90 70 120 40'/%3E%3Cpolygon points='10 50 10 80 40 50'/%3E%3Cpolygon points='110 60 110 50 120 50'/%3E%3Cpolygon points='100 60 100 80 120 60'/%3E%3Cpolygon points='110 0 110 20 130 0'/%3E%3Cpolygon points='120 30 120 20 130 20'/%3E%3Cpolygon points='130 10 130 0 140 0'/%3E%3Cpolygon points='130 30 130 20 140 20'/%3E%3Cpolygon points='120 40 120 30 130 30'/%3E%3Cpolygon points='130 50 130 40 140 40'/%3E%3Cpolygon points='120 50 120 70 140 50'/%3E%3Cpolygon points='110 70 110 80 130 80 140 70'/%3E%3Cpolygon points='140 10 140 0 150 0'/%3E%3Cpolygon points='140 20 140 10 150 10'/%3E%3Cpolygon points='140 40 140 30 150 30'/%3E%3Cpolygon points='140 50 140 40 150 40'/%3E%3Cpolygon points='140 70 140 60 150 60'/%3E%3Cpolygon points='150 20 150 40 160 30 160 20'/%3E%3Cpolygon points='150 60 150 50 160 50'/%3E%3Cpolygon points='140 70 140 80 150 80 160 70'/%3E%3C/g%3E%3C/svg%3E"),
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 1600 800'%3E%3Cg %3E%3Cpolygon fill='%23740074' points='1600 160 0 460 0 350 1600 50'/%3E%3Cpolygon fill='%235f005f' points='1600 260 0 560 0 450 1600 150'/%3E%3Cpolygon fill='%234b004b' points='1600 360 0 660 0 550 1600 250'/%3E%3Cpolygon fill='%23360036' points='1600 460 0 760 0 650 1600 350'/%3E%3Cpolygon fill='%23220022' points='1600 800 0 800 0 750 1600 450'/%3E%3C/g%3E%3C/svg%3E");
background-size: cover;
}
</style>
</body>
</html>

View File

@ -20,7 +20,6 @@
</div>
</nav>
<li>
{% include 'posts.html' %}

43
templates/i-posts.html Normal file
View File

@ -0,0 +1,43 @@
{% if postos | length > 0 %}
{% for posto in postos %}
<div class="row">
{% if posto.root_post %}
<div class="card s4 deep-orange accent-4 darken-1">
{% else %}
<div class="card s4 blue-grey darken-1">
{% endif %}
<div class="row" id="post-{{ posto._key }}">
<div class="col s4">
<div class="card-image">
<div class="hex-main">
<div class="hex-container">
<a href="https://loremflickr.com/g/320/240/paris" target="_blank" ">
<img src="https://loremflickr.com/g/320/240/paris">
</a>
</div>
</div>
</div>
</div>
<div class="col s8">
<div class="card-content white-text">
<span class="card-title">#{{ posto._key }}
<span class="new badge blue" data-badge-caption="">Ответов: {{ posto.answers_num }}</span>
<span class="new badge red" data-badge-caption="">Длина треда: {{ posto.children_num }}</span>
</span>
{% if posto.parent_post %}
<a class="card-action" href="#post-{{ posto.parent_post }}"> >>{{ posto.parent_post }} </a>
{% endif %}
<p>{{ posto.texto }}</p>
</div>
</div>
<div class="col s12">
<div class="card-action right">
<a href="#" hx-post="/post_my_post/{{ posto._key }}" hx-target="#neu-posts" >Answer me!</a>
</div>
</div>
</div>
</div>
</div>
{% endfor %}
{% endif %}

View File

@ -0,0 +1,16 @@
{% extends "base.html" %}
{% block content %}
{% include 'navbar.html' %}
<div class="row" >
<div class="col s5" id="neu-posts">
{% include 'i-posts.html' %}
</div>
</div>
{% endblock content %}

View File

@ -2,41 +2,21 @@
{% block content %}
<div id="multi-bg">
<div class="host-id">Вас закинуло сюда: {{host_id}}</div>
<div class="content">
{% include 'navbar.html' %}
<div class="container">
<div class="row">
<div class="col s4 center">
<div class="card">
<div class="card-image">
<img class="img-responsive" src="https://static.vdk2ch.ru/test-public/sin.jpg" height="400px" width="320px">
</div>
<div class="card-content">
<p>
Dobro pozhalovat. AGAIN.
</p>
</div>
</div>
</div>
<nav>
<a routerLink = "/">Напоминание </a>
<br>
<a routerLink = "/about">О нас </a>
<br>
Доски:
<div class="boards">
<ul>
{% for board in boards %}
<li><a href="/boards/{{board}}">/{{board}}</a></li>
{% endfor %}
</ul>
</div>
</nav>
<img src="https://static.vdk2ch.ru/test-public/sin.jpg">
</div>
<style>
#multi-bg{
height: 300px;
display: block;
background-color: #808;
background-image:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cpolygon fill='%23cc3f47' points='957 450 539 900 1396 900'/%3E%3Cpolygon fill='%23b3373e' points='957 450 872.9 900 1396 900'/%3E%3Cpolygon fill='%23c8364e' points='-60 900 398 662 816 900'/%3E%3Cpolygon fill='%23b02f44' points='337 900 398 662 816 900'/%3E%3Cpolygon fill='%23c22f55' points='1203 546 1552 900 876 900'/%3E%3Cpolygon fill='%23ab294b' points='1203 546 1552 900 1162 900'/%3E%3Cpolygon fill='%23bb285c' points='641 695 886 900 367 900'/%3E%3Cpolygon fill='%23a52351' points='587 900 641 695 886 900'/%3E%3Cpolygon fill='%23b32362' points='1710 900 1401 632 1096 900'/%3E%3Cpolygon fill='%239f1f57' points='1710 900 1401 632 1365 900'/%3E%3Cpolygon fill='%23aa2068' points='1210 900 971 687 725 900'/%3E%3Cpolygon fill='%23971c5d' points='943 900 1210 900 971 687'/%3E%3C/svg%3E"),
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='200' viewBox='0 0 160 80'%3E%3Cg fill='%23FFF' fill-opacity='0.2'%3E%3Cpolygon points='0 10 0 0 10 0'/%3E%3Cpolygon points='0 40 0 30 10 30'/%3E%3Cpolygon points='0 30 0 20 10 20'/%3E%3Cpolygon points='0 70 0 60 10 60'/%3E%3Cpolygon points='0 80 0 70 10 70'/%3E%3Cpolygon points='50 80 50 70 60 70'/%3E%3Cpolygon points='10 20 10 10 20 10'/%3E%3Cpolygon points='10 40 10 30 20 30'/%3E%3Cpolygon points='20 10 20 0 30 0'/%3E%3Cpolygon points='10 10 10 0 20 0'/%3E%3Cpolygon points='30 20 30 10 40 10'/%3E%3Cpolygon points='20 20 20 40 40 20'/%3E%3Cpolygon points='40 10 40 0 50 0'/%3E%3Cpolygon points='40 20 40 10 50 10'/%3E%3Cpolygon points='40 40 40 30 50 30'/%3E%3Cpolygon points='30 40 30 30 40 30'/%3E%3Cpolygon points='40 60 40 50 50 50'/%3E%3Cpolygon points='50 30 50 20 60 20'/%3E%3Cpolygon points='40 60 40 80 60 60'/%3E%3Cpolygon points='50 40 50 60 70 40'/%3E%3Cpolygon points='60 0 60 20 80 0'/%3E%3Cpolygon points='70 30 70 20 80 20'/%3E%3Cpolygon points='70 40 70 30 80 30'/%3E%3Cpolygon points='60 60 60 80 80 60'/%3E%3Cpolygon points='80 10 80 0 90 0'/%3E%3Cpolygon points='70 40 70 60 90 40'/%3E%3Cpolygon points='80 60 80 50 90 50'/%3E%3Cpolygon points='60 30 60 20 70 20'/%3E%3Cpolygon points='80 70 80 80 90 80 100 70'/%3E%3Cpolygon points='80 10 80 40 110 10'/%3E%3Cpolygon points='110 40 110 30 120 30'/%3E%3Cpolygon points='90 40 90 70 120 40'/%3E%3Cpolygon points='10 50 10 80 40 50'/%3E%3Cpolygon points='110 60 110 50 120 50'/%3E%3Cpolygon points='100 60 100 80 120 60'/%3E%3Cpolygon points='110 0 110 20 130 0'/%3E%3Cpolygon points='120 30 120 20 130 20'/%3E%3Cpolygon points='130 10 130 0 140 0'/%3E%3Cpolygon points='130 30 130 20 140 20'/%3E%3Cpolygon points='120 40 120 30 130 30'/%3E%3Cpolygon points='130 50 130 40 140 40'/%3E%3Cpolygon points='120 50 120 70 140 50'/%3E%3Cpolygon points='110 70 110 80 130 80 140 70'/%3E%3Cpolygon points='140 10 140 0 150 0'/%3E%3Cpolygon points='140 20 140 10 150 10'/%3E%3Cpolygon points='140 40 140 30 150 30'/%3E%3Cpolygon points='140 50 140 40 150 40'/%3E%3Cpolygon points='140 70 140 60 150 60'/%3E%3Cpolygon points='150 20 150 40 160 30 160 20'/%3E%3Cpolygon points='150 60 150 50 160 50'/%3E%3Cpolygon points='140 70 140 80 150 80 160 70'/%3E%3C/g%3E%3C/svg%3E"),
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 1600 800'%3E%3Cg %3E%3Cpolygon fill='%23740074' points='1600 160 0 460 0 350 1600 50'/%3E%3Cpolygon fill='%235f005f' points='1600 260 0 560 0 450 1600 150'/%3E%3Cpolygon fill='%234b004b' points='1600 360 0 660 0 550 1600 250'/%3E%3Cpolygon fill='%23360036' points='1600 460 0 760 0 650 1600 350'/%3E%3Cpolygon fill='%23220022' points='1600 800 0 800 0 750 1600 450'/%3E%3C/g%3E%3C/svg%3E");
background-repeat: no-repeat;
background-size: cover;
background-position: bottom center, 50%, 50%;
}
</style>
{% endblock content %}

13
templates/navbar.html Normal file
View File

@ -0,0 +1,13 @@
<nav>
<div class="nav-wrapper purple darken-3">
<ul id="nav-mobile" class="left ">
<li> <a href="/">glavnaya</a> </li>
<li><a href="/db_posts"><span class="new badge red" data-badge-caption="">here we go</span></a> </li>
<li>
<a href="#">Вас закинуло сюда: <span class="new badge blue" data-badge-caption="">{{host_id}}</span></a>
</li>
</ul>
</div>
</nav>