From fc593405bb3ab7960275c12b593943ee868b86c7 Mon Sep 17 00:00:00 2001 From: thematdev Date: Fri, 31 Dec 2021 18:50:07 +0300 Subject: [PATCH] Happy New Year! Signed-off-by: thematdev --- app/__init__.py | 4 +++- app/snowfall.py | 16 ++++++++++++++++ app/static/css/snowfall.css | 1 + app/static/images/blank.png | Bin 948 -> 0 bytes app/static/images/chatmanager.png | Bin 3426 -> 0 bytes app/static/images/grave.jpg | Bin 8126 -> 0 bytes app/static/images/snowflake.png | Bin 0 -> 2819 bytes app/static/images/soon.jpg | Bin 4821 -> 0 bytes app/static/images/thissite.png | Bin 778 -> 0 bytes app/templates/index.html | 28 ++++++++++------------------ 10 files changed, 30 insertions(+), 19 deletions(-) create mode 100644 app/snowfall.py create mode 100644 app/static/css/snowfall.css delete mode 100644 app/static/images/blank.png delete mode 100644 app/static/images/chatmanager.png delete mode 100644 app/static/images/grave.jpg create mode 100644 app/static/images/snowflake.png delete mode 100644 app/static/images/soon.jpg delete mode 100644 app/static/images/thissite.png diff --git a/app/__init__.py b/app/__init__.py index 952a087..44baf60 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -3,6 +3,7 @@ from flask import Flask, url_for, render_template import os import json import numpy.random as gaussian_rnd +from app.snowfall import generate_snowfall load_dotenv() @@ -67,4 +68,5 @@ def index(): data = json.loads(file.read()) cols = data['cols'] projects = data['projects'] - return render_template('index.html', random_number=generate_iq(), projects=projects) + snowflake_image_url = dated_url_for('static', filename='images/snowflake.png') + return render_template('index.html', random_number=generate_iq(), projects=projects, snowfall=generate_snowfall(snowflake_image_url)) diff --git a/app/snowfall.py b/app/snowfall.py new file mode 100644 index 0000000..c079bc6 --- /dev/null +++ b/app/snowfall.py @@ -0,0 +1,16 @@ +''' +Source files of snowfall, including CSS you can find at https://github.com/Artimon/pure-css-snowfall +''' + + +SNOWFLAKE_CHARACTERS = ['\U0001f342', '\U0001f49d', '\U0001f31f', '\U0001f381'] +SNOWFLAKE_IMAGE_COUNT = 15 + +def generate_snowfall(snowflake_image_url): + snowfall = [] + for char in SNOWFLAKE_CHARACTERS: + snowfall.append(f'{char}') + snowfall += [f''] * SNOWFLAKE_IMAGE_COUNT + return snowfall + + diff --git a/app/static/css/snowfall.css b/app/static/css/snowfall.css new file mode 100644 index 0000000..09fe025 --- /dev/null +++ b/app/static/css/snowfall.css @@ -0,0 +1 @@ +snowfall{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50000000;display:block;font-size:40px;overflow:hidden;pointer-events:none}snowfall snowflake{position:absolute;top:0;left:0;display:flex;justify-content:center;width:100px;height:100px}snowfall snowflake span{align-self:center}snowfall snowflake img{align-self:center;width:20px}snowfall snowflake:nth-child(50){animation:animation-snowflake-50 linear infinite;animation-duration:13.1s;animation-delay:-1.1s}@keyframes animation-snowflake-50{0%{left:85%;top:calc(0% - 100px);transform:scale(1.058) rotate3d(.36,.38,.25,0deg)}100%{left:114.1%;top:calc(100% + 100px);transform:scale(1.058) rotate3d(.35,.84,.72,997deg)}}snowfall snowflake:nth-child(49){animation:animation-snowflake-49 linear infinite;animation-duration:12s;animation-delay:-14.8s}@keyframes animation-snowflake-49{0%{left:26%;top:calc(0% - 100px);transform:scale(.637) rotate3d(.22,.52,.15,0deg)}100%{left:16%;top:calc(100% + 100px);transform:scale(.637) rotate3d(.12,.67,.79,-1212deg)}}snowfall snowflake:nth-child(48){animation:animation-snowflake-48 linear infinite;animation-duration:11.8s;animation-delay:-10.4s}@keyframes animation-snowflake-48{0%{left:3%;top:calc(0% - 100px);transform:scale(1.235) rotate3d(.92,.78,.97,0deg)}100%{left:26.8%;top:calc(100% + 100px);transform:scale(1.235) rotate3d(.75,.86,.08,-1042deg)}}snowfall snowflake:nth-child(47){animation:animation-snowflake-47 linear infinite;animation-duration:9.2s;animation-delay:-1s}@keyframes animation-snowflake-47{0%{left:50%;top:calc(0% - 100px);transform:scale(1.046) rotate3d(.88,.19,.75,0deg)}100%{left:75.1%;top:calc(100% + 100px);transform:scale(1.046) rotate3d(.22,.68,.67,-1287deg)}}snowfall snowflake:nth-child(46){animation:animation-snowflake-46 linear infinite;animation-duration:15.8s;animation-delay:-15.1s}@keyframes animation-snowflake-46{0%{left:78%;top:calc(0% - 100px);transform:scale(1.146) rotate3d(.95,.06,.46,0deg)}100%{left:67%;top:calc(100% + 100px);transform:scale(1.146) rotate3d(.79,.01,.63,1235deg)}}snowfall snowflake:nth-child(45){animation:animation-snowflake-45 linear infinite;animation-duration:13.4s;animation-delay:-15.5s}@keyframes animation-snowflake-45{0%{left:22%;top:calc(0% - 100px);transform:scale(.705) rotate3d(.2,1,.33,0deg)}100%{left:22.5%;top:calc(100% + 100px);transform:scale(.705) rotate3d(.99,.94,.9,1293deg)}}snowfall snowflake:nth-child(44){animation:animation-snowflake-44 linear infinite;animation-duration:11.3s;animation-delay:-15.7s}@keyframes animation-snowflake-44{0%{left:74%;top:calc(0% - 100px);transform:scale(.87) rotate3d(.89,.22,.95,0deg)}100%{left:58.7%;top:calc(100% + 100px);transform:scale(.87) rotate3d(.77,.8,.04,1038deg)}}snowfall snowflake:nth-child(43){animation:animation-snowflake-43 linear infinite;animation-duration:14.8s;animation-delay:-14s}@keyframes animation-snowflake-43{0%{left:57%;top:calc(0% - 100px);transform:scale(1.103) rotate3d(.11,.59,.53,0deg)}100%{left:55.6%;top:calc(100% + 100px);transform:scale(1.103) rotate3d(.84,.39,.31,955deg)}}snowfall snowflake:nth-child(42){animation:animation-snowflake-42 linear infinite;animation-duration:8.1s;animation-delay:-7.8s}@keyframes animation-snowflake-42{0%{left:91%;top:calc(0% - 100px);transform:scale(1.249) rotate3d(.56,.42,.15,0deg)}100%{left:81.8%;top:calc(100% + 100px);transform:scale(1.249) rotate3d(.16,.03,.8,1214deg)}}snowfall snowflake:nth-child(41){animation:animation-snowflake-41 linear infinite;animation-duration:15.9s;animation-delay:-11.1s}@keyframes animation-snowflake-41{0%{left:66%;top:calc(0% - 100px);transform:scale(1.389) rotate3d(.91,.12,.21,0deg)}100%{left:105.3%;top:calc(100% + 100px);transform:scale(1.389) rotate3d(.31,.97,.5,-885deg)}}snowfall snowflake:nth-child(40){animation:animation-snowflake-40 linear infinite;animation-duration:14.4s;animation-delay:-4.2s}@keyframes animation-snowflake-40{0%{left:3%;top:calc(0% - 100px);transform:scale(1.247) rotate3d(.38,.39,.66,0deg)}100%{left:23.7%;top:calc(100% + 100px);transform:scale(1.247) rotate3d(.98,.66,.46,999deg)}}snowfall snowflake:nth-child(39){animation:animation-snowflake-39 linear infinite;animation-duration:15.4s;animation-delay:-7.2s}@keyframes animation-snowflake-39{0%{left:11%;top:calc(0% - 100px);transform:scale(1.091) rotate3d(.92,.21,.47,0deg)}100%{left:26.9%;top:calc(100% + 100px);transform:scale(1.091) rotate3d(.29,.72,.17,1290deg)}}snowfall snowflake:nth-child(38){animation:animation-snowflake-38 linear infinite;animation-duration:12.9s;animation-delay:-15.6s}@keyframes animation-snowflake-38{0%{left:98%;top:calc(0% - 100px);transform:scale(1.319) rotate3d(.44,.68,.72,0deg)}100%{left:108%;top:calc(100% + 100px);transform:scale(1.319) rotate3d(1,.46,.76,-986deg)}}snowfall snowflake:nth-child(37){animation:animation-snowflake-37 linear infinite;animation-duration:14.9s;animation-delay:-1.6s}@keyframes animation-snowflake-37{0%{left:53%;top:calc(0% - 100px);transform:scale(1.076) rotate3d(.98,.27,.82,0deg)}100%{left:34.5%;top:calc(100% + 100px);transform:scale(1.076) rotate3d(.18,.66,.97,-1163deg)}}snowfall snowflake:nth-child(36){animation:animation-snowflake-36 linear infinite;animation-duration:8.1s;animation-delay:-9.8s}@keyframes animation-snowflake-36{0%{left:37%;top:calc(0% - 100px);transform:scale(1.243) rotate3d(.89,.81,.03,0deg)}100%{left:26.3%;top:calc(100% + 100px);transform:scale(1.243) rotate3d(.72,.02,.43,1191deg)}}snowfall snowflake:nth-child(35){animation:animation-snowflake-35 linear infinite;animation-duration:10.2s;animation-delay:-6.4s}@keyframes animation-snowflake-35{0%{left:94%;top:calc(0% - 100px);transform:scale(1.325) rotate3d(.08,1,.49,0deg)}100%{left:75.6%;top:calc(100% + 100px);transform:scale(1.325) rotate3d(.59,.71,.97,-1205deg)}}snowfall snowflake:nth-child(34){animation:animation-snowflake-34 linear infinite;animation-duration:10.4s;animation-delay:-12.2s}@keyframes animation-snowflake-34{0%{left:62%;top:calc(0% - 100px);transform:scale(1.279) rotate3d(.2,.59,.26,0deg)}100%{left:80.4%;top:calc(100% + 100px);transform:scale(1.279) rotate3d(.38,.84,.22,-1054deg)}}snowfall snowflake:nth-child(33){animation:animation-snowflake-33 linear infinite;animation-duration:13.2s;animation-delay:-13.1s}@keyframes animation-snowflake-33{0%{left:21%;top:calc(0% - 100px);transform:scale(1.061) rotate3d(.17,.36,.93,0deg)}100%{left:55.6%;top:calc(100% + 100px);transform:scale(1.061) rotate3d(.43,.77,.22,1349deg)}}snowfall snowflake:nth-child(32){animation:animation-snowflake-32 linear infinite;animation-duration:15.2s;animation-delay:-9.1s}@keyframes animation-snowflake-32{0%{left:76%;top:calc(0% - 100px);transform:scale(.678) rotate3d(.13,.84,.29,0deg)}100%{left:85.9%;top:calc(100% + 100px);transform:scale(.678) rotate3d(.24,.97,.55,-928deg)}}snowfall snowflake:nth-child(31){animation:animation-snowflake-31 linear infinite;animation-duration:12.2s;animation-delay:-14.5s}@keyframes animation-snowflake-31{0%{left:66%;top:calc(0% - 100px);transform:scale(.976) rotate3d(.84,.11,.1,0deg)}100%{left:97.2%;top:calc(100% + 100px);transform:scale(.976) rotate3d(.19,.18,.09,-1195deg)}}snowfall snowflake:nth-child(30){animation:animation-snowflake-30 linear infinite;animation-duration:10.1s;animation-delay:-13.5s}@keyframes animation-snowflake-30{0%{left:22%;top:calc(0% - 100px);transform:scale(1.134) rotate3d(.7,.26,.81,0deg)}100%{left:41.8%;top:calc(100% + 100px);transform:scale(1.134) rotate3d(.96,.05,.37,-1222deg)}}snowfall snowflake:nth-child(29){animation:animation-snowflake-29 linear infinite;animation-duration:13.5s;animation-delay:-8.1s}@keyframes animation-snowflake-29{0%{left:31%;top:calc(0% - 100px);transform:scale(.791) rotate3d(.09,.54,.58,0deg)}100%{left:25.5%;top:calc(100% + 100px);transform:scale(.791) rotate3d(.72,.86,.33,-1293deg)}}snowfall snowflake:nth-child(28){animation:animation-snowflake-28 linear infinite;animation-duration:13.8s;animation-delay:-9.2s}@keyframes animation-snowflake-28{0%{left:69%;top:calc(0% - 100px);transform:scale(1.265) rotate3d(.41,.08,.53,0deg)}100%{left:75.6%;top:calc(100% + 100px);transform:scale(1.265) rotate3d(.59,.52,.07,-981deg)}}snowfall snowflake:nth-child(27){animation:animation-snowflake-27 linear infinite;animation-duration:8.2s;animation-delay:-11.8s}@keyframes animation-snowflake-27{0%{left:54%;top:calc(0% - 100px);transform:scale(1.083) rotate3d(.32,.88,.84,0deg)}100%{left:72.1%;top:calc(100% + 100px);transform:scale(1.083) rotate3d(.44,.8,.4,-1244deg)}}snowfall snowflake:nth-child(26){animation:animation-snowflake-26 linear infinite;animation-duration:15.5s;animation-delay:-8.2s}@keyframes animation-snowflake-26{0%{left:20%;top:calc(0% - 100px);transform:scale(1.265) rotate3d(.92,.26,.4,0deg)}100%{left:46.4%;top:calc(100% + 100px);transform:scale(1.265) rotate3d(.6,.22,.73,1384deg)}}snowfall snowflake:nth-child(25){animation:animation-snowflake-25 linear infinite;animation-duration:9.1s;animation-delay:-6.6s}@keyframes animation-snowflake-25{0%{left:55%;top:calc(0% - 100px);transform:scale(1.109) rotate3d(.99,.76,.88,0deg)}100%{left:83.1%;top:calc(100% + 100px);transform:scale(1.109) rotate3d(.39,.41,.09,-1253deg)}}snowfall snowflake:nth-child(24){animation:animation-snowflake-24 linear infinite;animation-duration:12.8s;animation-delay:-2.7s}@keyframes animation-snowflake-24{0%{left:48%;top:calc(0% - 100px);transform:scale(.679) rotate3d(.07,.53,.37,0deg)}100%{left:34.6%;top:calc(100% + 100px);transform:scale(.679) rotate3d(.64,.2,.67,1156deg)}}snowfall snowflake:nth-child(23){animation:animation-snowflake-23 linear infinite;animation-duration:9.9s;animation-delay:-12.9s}@keyframes animation-snowflake-23{0%{left:51%;top:calc(0% - 100px);transform:scale(1.306) rotate3d(.12,.01,.04,0deg)}100%{left:84.7%;top:calc(100% + 100px);transform:scale(1.306) rotate3d(.43,.98,.24,847deg)}}snowfall snowflake:nth-child(22){animation:animation-snowflake-22 linear infinite;animation-duration:11.3s;animation-delay:-8.7s}@keyframes animation-snowflake-22{0%{left:97%;top:calc(0% - 100px);transform:scale(.964) rotate3d(.23,.31,.39,0deg)}100%{left:81.2%;top:calc(100% + 100px);transform:scale(.964) rotate3d(.49,.82,.23,-1168deg)}}snowfall snowflake:nth-child(21){animation:animation-snowflake-21 linear infinite;animation-duration:8.2s;animation-delay:-13s}@keyframes animation-snowflake-21{0%{left:41%;top:calc(0% - 100px);transform:scale(.727) rotate3d(.43,.68,.27,0deg)}100%{left:34.9%;top:calc(100% + 100px);transform:scale(.727) rotate3d(.51,.21,.74,-1207deg)}}snowfall snowflake:nth-child(20){animation:animation-snowflake-20 linear infinite;animation-duration:10.9s;animation-delay:-12.1s}@keyframes animation-snowflake-20{0%{left:89%;top:calc(0% - 100px);transform:scale(1.054) rotate3d(.12,.28,.78,0deg)}100%{left:112.6%;top:calc(100% + 100px);transform:scale(1.054) rotate3d(.79,.98,.03,-935deg)}}snowfall snowflake:nth-child(19){animation:animation-snowflake-19 linear infinite;animation-duration:9.6s;animation-delay:-8.1s}@keyframes animation-snowflake-19{0%{left:8%;top:calc(0% - 100px);transform:scale(1.099) rotate3d(.5,.55,.33,0deg)}100%{left:33.4%;top:calc(100% + 100px);transform:scale(1.099) rotate3d(.03,.94,.22,-1355deg)}}snowfall snowflake:nth-child(18){animation:animation-snowflake-18 linear infinite;animation-duration:8.2s;animation-delay:-1.9s}@keyframes animation-snowflake-18{0%{left:76%;top:calc(0% - 100px);transform:scale(1.176) rotate3d(.85,.88,.1,0deg)}100%{left:115%;top:calc(100% + 100px);transform:scale(1.176) rotate3d(.28,1,.43,-1280deg)}}snowfall snowflake:nth-child(17){animation:animation-snowflake-17 linear infinite;animation-duration:12.7s;animation-delay:-11.8s}@keyframes animation-snowflake-17{0%{left:61%;top:calc(0% - 100px);transform:scale(1.167) rotate3d(.63,.55,.91,0deg)}100%{left:57%;top:calc(100% + 100px);transform:scale(1.167) rotate3d(.88,.94,.56,-730deg)}}snowfall snowflake:nth-child(16){animation:animation-snowflake-16 linear infinite;animation-duration:10.1s;animation-delay:-15.6s}@keyframes animation-snowflake-16{0%{left:81%;top:calc(0% - 100px);transform:scale(.679) rotate3d(.38,.57,.03,0deg)}100%{left:89.5%;top:calc(100% + 100px);transform:scale(.679) rotate3d(.88,.72,.54,-823deg)}}snowfall snowflake:nth-child(15){animation:animation-snowflake-15 linear infinite;animation-duration:13.5s;animation-delay:-7.8s}@keyframes animation-snowflake-15{0%{left:21%;top:calc(0% - 100px);transform:scale(1.258) rotate3d(.91,.74,.08,0deg)}100%{left:50.3%;top:calc(100% + 100px);transform:scale(1.258) rotate3d(.17,.45,.92,-1414deg)}}snowfall snowflake:nth-child(14){animation:animation-snowflake-14 linear infinite;animation-duration:15.8s;animation-delay:-1.1s}@keyframes animation-snowflake-14{0%{left:91%;top:calc(0% - 100px);transform:scale(1.206) rotate3d(.99,.51,.09,0deg)}100%{left:112.7%;top:calc(100% + 100px);transform:scale(1.206) rotate3d(1,.79,.88,-1104deg)}}snowfall snowflake:nth-child(13){animation:animation-snowflake-13 linear infinite;animation-duration:9.6s;animation-delay:-3.7s}@keyframes animation-snowflake-13{0%{left:35%;top:calc(0% - 100px);transform:scale(.83) rotate3d(.71,.4,.55,0deg)}100%{left:33.7%;top:calc(100% + 100px);transform:scale(.83) rotate3d(.32,.98,.05,-751deg)}}snowfall snowflake:nth-child(12){animation:animation-snowflake-12 linear infinite;animation-duration:14.9s;animation-delay:-12.7s}@keyframes animation-snowflake-12{0%{left:100%;top:calc(0% - 100px);transform:scale(.842) rotate3d(.24,.64,.95,0deg)}100%{left:102.6%;top:calc(100% + 100px);transform:scale(.842) rotate3d(.35,.75,.27,-1036deg)}}snowfall snowflake:nth-child(11){animation:animation-snowflake-11 linear infinite;animation-duration:9.6s;animation-delay:-10.1s}@keyframes animation-snowflake-11{0%{left:38%;top:calc(0% - 100px);transform:scale(.657) rotate3d(.96,.89,.08,0deg)}100%{left:26.2%;top:calc(100% + 100px);transform:scale(.657) rotate3d(.38,.17,.49,966deg)}}snowfall snowflake:nth-child(10){animation:animation-snowflake-10 linear infinite;animation-duration:11.6s;animation-delay:0s}@keyframes animation-snowflake-10{0%{left:7%;top:calc(0% - 100px);transform:scale(.853) rotate3d(.55,.12,.29,0deg)}100%{left:1.1%;top:calc(100% + 100px);transform:scale(.853) rotate3d(.89,.15,.88,-1051deg)}}snowfall snowflake:nth-child(9){animation:animation-snowflake-9 linear infinite;animation-duration:10.1s;animation-delay:-1.1s}@keyframes animation-snowflake-9{0%{left:27%;top:calc(0% - 100px);transform:scale(1.089) rotate3d(.53,.28,.7,0deg)}100%{left:35.9%;top:calc(100% + 100px);transform:scale(1.089) rotate3d(.2,.34,.61,839deg)}}snowfall snowflake:nth-child(8){animation:animation-snowflake-8 linear infinite;animation-duration:12.2s;animation-delay:-13.1s}@keyframes animation-snowflake-8{0%{left:100%;top:calc(0% - 100px);transform:scale(1.267) rotate3d(.12,.05,.67,0deg)}100%{left:80.2%;top:calc(100% + 100px);transform:scale(1.267) rotate3d(.83,.53,.26,1210deg)}}snowfall snowflake:nth-child(7){animation:animation-snowflake-7 linear infinite;animation-duration:14.4s;animation-delay:-8.3s}@keyframes animation-snowflake-7{0%{left:88%;top:calc(0% - 100px);transform:scale(.735) rotate3d(.19,.67,.92,0deg)}100%{left:99.9%;top:calc(100% + 100px);transform:scale(.735) rotate3d(.61,.2,.61,732deg)}}snowfall snowflake:nth-child(6){animation:animation-snowflake-6 linear infinite;animation-duration:10.1s;animation-delay:-1.6s}@keyframes animation-snowflake-6{0%{left:97%;top:calc(0% - 100px);transform:scale(.843) rotate3d(.91,.22,.24,0deg)}100%{left:77.6%;top:calc(100% + 100px);transform:scale(.843) rotate3d(.28,.42,.7,-1136deg)}}snowfall snowflake:nth-child(5){animation:animation-snowflake-5 linear infinite;animation-duration:15s;animation-delay:-15.8s}@keyframes animation-snowflake-5{0%{left:75%;top:calc(0% - 100px);transform:scale(1.273) rotate3d(.43,.12,.5,0deg)}100%{left:78.4%;top:calc(100% + 100px);transform:scale(1.273) rotate3d(.85,.92,.24,756deg)}}snowfall snowflake:nth-child(4){animation:animation-snowflake-4 linear infinite;animation-duration:8.9s;animation-delay:-8.3s}@keyframes animation-snowflake-4{0%{left:62%;top:calc(0% - 100px);transform:scale(.733) rotate3d(.59,.92,.35,0deg)}100%{left:99.9%;top:calc(100% + 100px);transform:scale(.733) rotate3d(.1,.92,.88,-1240deg)}}snowfall snowflake:nth-child(3){animation:animation-snowflake-3 linear infinite;animation-duration:11s;animation-delay:-14.6s}@keyframes animation-snowflake-3{0%{left:22%;top:calc(0% - 100px);transform:scale(.985) rotate3d(.07,.47,.03,0deg)}100%{left:5.5%;top:calc(100% + 100px);transform:scale(.985) rotate3d(.71,.56,.29,-1298deg)}}snowfall snowflake:nth-child(2){animation:animation-snowflake-2 linear infinite;animation-duration:14.3s;animation-delay:-7.3s}@keyframes animation-snowflake-2{0%{left:4%;top:calc(0% - 100px);transform:scale(.756) rotate3d(.09,.66,.96,0deg)}100%{left:40%;top:calc(100% + 100px);transform:scale(.756) rotate3d(.9,.7,.22,-1393deg)}}snowfall snowflake:nth-child(1){animation:animation-snowflake-1 linear infinite;animation-duration:12.4s;animation-delay:-14.9s}@keyframes animation-snowflake-1{0%{left:30%;top:calc(0% - 100px);transform:scale(.656) rotate3d(.08,.14,.22,0deg)}100%{left:53.2%;top:calc(100% + 100px);transform:scale(.656) rotate3d(.58,.99,.13,729deg)}} diff --git a/app/static/images/blank.png b/app/static/images/blank.png deleted file mode 100644 index ba1848fbf7932e6d0afdd17c9c8ff753cb693cd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 948 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 diff --git a/app/static/images/grave.jpg b/app/static/images/grave.jpg deleted file mode 100644 index 685f4351b073fea5e52150616111a4d7d2e31fd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8126 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 diff --git a/app/static/images/snowflake.png b/app/static/images/snowflake.png new file mode 100644 index 0000000000000000000000000000000000000000..3dcae34abcd0ce6d2b223ad34ad94b94511bab20 GIT binary patch literal 2819 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 ZU%x)b_v5tX$qWn(44$rjF6*2UngB2W8&&`S literal 0 HcmV?d00001 diff --git a/app/static/images/soon.jpg b/app/static/images/soon.jpg deleted file mode 100644 index e664921e1a382b68dbd4f8825a5ec56428facc4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4821 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 Bg?#`3 diff --git a/app/templates/index.html b/app/templates/index.html index bea99e0..353f756 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -4,14 +4,19 @@ + thematdev + + {% for snowflake in snowfall %} + {{snowflake|safe}} + {% endfor %} +
+

С Новым Годом!

thematdev

-

Тут можно подпись какую-то сделать

-

Ваш IQ: {{ random_number }}

-
-
-

Мои проекты Кладбище

-
- {% for project in projects %} -
-

{{ project.title }}

- -

{{project.description|safe}}

-
- {% endfor %} -
-
-
- - Идея про Гауссово распределение вместо обычного рандома: Prentor и pavel_the_best