Publicerad - Version 1.0
55
Brdtxt dbl.rtf
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
{\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf810
|
||||||
|
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||||
|
{\colortbl;\red255\green255\blue255;}
|
||||||
|
{\*\expandedcolortbl;;}
|
||||||
|
\paperw11900\paperh16840\margl1440\margr1440\vieww50620\viewh27080\viewkind0
|
||||||
|
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
|
||||||
|
|
||||||
|
\f0\fs24 \cf0 V\'e4lkommen till Design by Lov\'e9n! H\'e4r hittar du unika och sk\'f6na kl\'e4der f\'f6r barn upp till tv\'e5 \'e5r. Allt sys av mig, Anneli, i min atelj\'e9 i R\'f6deby. \
|
||||||
|
\
|
||||||
|
Visningsexemplar sys i samma storlek som en av mina flickor (fn st62 och st86). \'d6vriga storlekar tillverkas efter best\'e4llning f\'f6r att kunna h\'e5lla nere priserna. Nya modeller tillkommer l\'f6pande. \
|
||||||
|
\
|
||||||
|
Samtliga kl\'e4dtyger har tv\'e4ttats parfymfritt, utan sk\'f6ljmedel, innan s\'f6mnad. \
|
||||||
|
(Obs! G\'e4ller ej f\'f6rkl\'e4den.)\
|
||||||
|
\
|
||||||
|
Nystartserbjudande! K\'f6p v\'e5r fina Superman-body f\'f6r bara 200kr (ord pris 250kr) om du best\'e4ller innan p\'e5sk. Bodyn sys i st 62-80 med rosa, bl\'e5 eller beige bas.\
|
||||||
|
\
|
||||||
|
Vi finns \'e4ven p\'e5 FaceBook, gilla f\'f6r att f\'e5 uppdateringar i din telefon eller surfplatta!\
|
||||||
|
\
|
||||||
|
________\
|
||||||
|
Superman-body 250kr\
|
||||||
|
Visst \'e4r varje barn en liten superhj\'e4lte?! \
|
||||||
|
Denna kuvertbody sys i st62-80 med rosa, bl\'e5 eller beige bas. Samtliga varianter har vitt tryck och vita kantband. \'c4rmarna avslutas med sm\'e5 kontrasterande dekors\'f6mmar vid handleden. \
|
||||||
|
\
|
||||||
|
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
|
||||||
|
\cf0 ________\
|
||||||
|
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
|
||||||
|
\cf0 Kuvertbody med dekors\'f6mmar p\'e5 br\'f6stet 230kr\
|
||||||
|
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
|
||||||
|
\cf0 Denna body sys i st62-80 med rosa, bl\'e5, gr\'f6n eller beige bas. Samtliga varianter har vita kantband. Dekors\'f6mmarna bryter vackert av mot basf\'e4rgen. \'c4rmarna avslutas med matchande dekors\'f6m vid handleden. \
|
||||||
|
________\
|
||||||
|
F\'f6rkl\'e4de 150kr\
|
||||||
|
Finns det n\'e5t mer bed\'e5rande \'e4n barn som hj\'e4lper till i k\'f6ket?\
|
||||||
|
Dessa f\'f6rkl\'e4den passar barn i \'e5lder 1-3 \'e5r (ca 74-104cm) och sys av l\'e4ttsk\'f6tt och vattenavvisande CTC-duk, kantad med snedsl\'e5 i bomull. \
|
||||||
|
\
|
||||||
|
________\
|
||||||
|
Balaclava 200kr\
|
||||||
|
Perfekt under hj\'e4lmen, oavsett om ni ska \'e5ka pulka, skoter eller ut och cykla. Superbra \'e4ven f\'f6r de minsta innanf\'f6r overallens luva. Sys i enkelstorlekar f\'f6r huvudomf\'e5ng 38-50cm.\
|
||||||
|
\
|
||||||
|
________\
|
||||||
|
Set med m\'f6ssa, vantar och dregglis f\'f6r de minsta 300kr\
|
||||||
|
Matchat set i trik\'e5 som kan anv\'e4ndas l\'e4nge. \
|
||||||
|
\
|
||||||
|
M\'f6ssan sys med eller utan foder efter s\'e4song/\'f6nskem\'e5l. M\'f6ssans innerdiameter \'e4r ca 40cm (motsvarar ca st62 i kl\'e4der), stretchen i tyget g\'f6r att den passar bra upp till huvudstorlek 44-45cm (motsv ca st74). \
|
||||||
|
\
|
||||||
|
Vantarna \'e4r fodrade, handledsdiameter ca 10cm n\'e4r tyget \'e4r \'94i vila\'94.\
|
||||||
|
\
|
||||||
|
Dregglis i dubbel trik\'e5 med tv\'e5 l\'e4gen f\'f6r tryckknappen, s\'e5 den passar fr\'e5n nyf\'f6dd till ca st74.\
|
||||||
|
\
|
||||||
|
Setet kan \'e4ven sys f\'f6r st\'f6rre/mindre storlekar, efter \'f6nskem\'e5l vid best\'e4llning. \
|
||||||
|
Samtliga delar kan dessutom best\'e4llas separat.\
|
||||||
|
\
|
||||||
|
M\'e5ttbest\'e4llt set 350kr\
|
||||||
|
M\'f6ssa 150kr\
|
||||||
|
Vantar 100kr\
|
||||||
|
Dregglis 90kr}
|
@ -1,17 +1,105 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
from flask import Flask, render_template, url_for, send_from_directory
|
from flask import Flask, render_template, url_for, send_from_directory, abort, jsonify
|
||||||
|
from flask_bootstrap import Bootstrap
|
||||||
|
from flaskext.markdown import Markdown
|
||||||
|
from PIL import Image, ImageOps
|
||||||
|
|
||||||
|
import os
|
||||||
|
import random
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
Bootstrap(app)
|
||||||
|
Markdown(app)
|
||||||
|
|
||||||
|
pages = 'sidor/'
|
||||||
|
|
||||||
|
categories = []
|
||||||
|
photos = []
|
||||||
|
for x in os.walk(pages):
|
||||||
|
if not 'presentation.md' in x[2]:
|
||||||
|
continue
|
||||||
|
cat = x[0].split('/')[-1]
|
||||||
|
categories.append(cat)
|
||||||
|
num = len([x for x in x[2] if x.endswith(('.jpg','.JPG'))])
|
||||||
|
for i in range(num):
|
||||||
|
photos.append({'category': cat, 'num': i})
|
||||||
|
|
||||||
|
@app.route('/randimg')
|
||||||
|
def randimg():
|
||||||
|
img = random.choice(photos)
|
||||||
|
return jsonify(img)
|
||||||
|
|
||||||
|
def genimg(imgin, imgout, size):
|
||||||
|
img = Image.open(imgin)
|
||||||
|
img.thumbnail(size)
|
||||||
|
hpad = int((size[0]-img.size[0])/2)
|
||||||
|
vpad = int((size[1]-img.size[1])/2)
|
||||||
|
thumb = Image.new(mode='RGBA', size=size, color=(255,255,255,0))
|
||||||
|
thumb.paste(img, (hpad, vpad))
|
||||||
|
thumb.save(imgout)
|
||||||
|
|
||||||
|
@app.route('/thumbnails/<category>/')
|
||||||
|
@app.route('/thumbnails/<category>/<int:num>')
|
||||||
|
def thumbnails(category, num=0):
|
||||||
|
catdir = pages + '/' + category
|
||||||
|
thumbdir = catdir + '/thumbnails'
|
||||||
|
if not os.path.isfile('%s/%d.jpg' % (thumbdir, num)):
|
||||||
|
images = [x for x in next(os.walk(catdir))[2] if x.endswith('.jpg')]
|
||||||
|
if not os.path.exists(thumbdir):
|
||||||
|
os.makedirs(thumbdir)
|
||||||
|
imgin = '%s/%s' % (catdir, images[num])
|
||||||
|
imgout = '%s/%d.jpg' % (thumbdir, num)
|
||||||
|
genimg(imgin, imgout, (171,180))
|
||||||
|
|
||||||
|
return send_from_directory(thumbdir, filename="%d.jpg" % (num))
|
||||||
|
@app.route('/slides/<category>/<int:num>')
|
||||||
|
def slides(category, num=0):
|
||||||
|
catdir = pages + '/' + category
|
||||||
|
thumbdir = catdir + '/slides'
|
||||||
|
if not os.path.isfile('%s/%d.jpg' % (thumbdir, num)):
|
||||||
|
images = [x for x in next(os.walk(catdir))[2] if x.endswith('.jpg')]
|
||||||
|
imgin = '%s/%s' % (catdir, images[num])
|
||||||
|
imgout = '%s/%d.jpg' % (thumbdir, num)
|
||||||
|
if not os.path.exists(thumbdir):
|
||||||
|
os.makedirs(thumbdir)
|
||||||
|
genimg(imgin, imgout, (550,400))
|
||||||
|
|
||||||
|
return send_from_directory(thumbdir, filename="%d.jpg" % (num))
|
||||||
|
|
||||||
|
@app.route('/<category>/<int:num>.jpg')
|
||||||
|
def cat_photo(category, num):
|
||||||
|
directory = pages + '/' + category
|
||||||
|
images = [x for x in next(os.walk(directory))[2] if x.endswith('.jpg')]
|
||||||
|
try:
|
||||||
|
return send_from_directory(directory, images[num]);
|
||||||
|
except IndexError:
|
||||||
|
abort(404)
|
||||||
|
|
||||||
|
@app.route('/<category>/')
|
||||||
|
def category(category):
|
||||||
|
directory = pages + '/' + category
|
||||||
|
try:
|
||||||
|
with open(directory + '/presentation.md') as f:
|
||||||
|
presentation = ''.join(f.readlines())
|
||||||
|
except FileNotFoundError:
|
||||||
|
presentation = ''
|
||||||
|
images = len([x for x in next(os.walk(directory))[2] if x.endswith('.jpg')])
|
||||||
|
|
||||||
|
|
||||||
|
return render_template('category.html', presentation=presentation, categories=categories, category=category, images=images)
|
||||||
|
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def hello_world():
|
def index():
|
||||||
return render_template('splash.html')
|
with open(pages + 'startsida.md') as f:
|
||||||
|
presentation = ''.join(f.readlines())
|
||||||
|
return render_template('index.html', presentation=presentation, categories=categories, img1=random.choice(photos), img2=random.choice(photos))
|
||||||
|
|
||||||
@app.route('/favicon.ico')
|
@app.route('/favicon.ico')
|
||||||
def favicon():
|
def favicon():
|
||||||
return send_from_directory('static', 'favicon.ico')
|
return send_from_directory('static', filename='favicon.ico')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(debug=True)
|
app.run(host='0.0.0.0', debug=True)
|
||||||
|
|
||||||
|
@ -1,6 +1,17 @@
|
|||||||
|
appdirs==1.4.3
|
||||||
click==6.7
|
click==6.7
|
||||||
|
dominate==2.3.1
|
||||||
Flask==0.12
|
Flask==0.12
|
||||||
|
Flask-Bootstrap==3.3.7.1
|
||||||
|
Flask-Markdown==0.3
|
||||||
itsdangerous==0.24
|
itsdangerous==0.24
|
||||||
Jinja2==2.9.4
|
Jinja2==2.9.4
|
||||||
|
Markdown==2.6.8
|
||||||
MarkupSafe==0.23
|
MarkupSafe==0.23
|
||||||
|
olefile==0.44
|
||||||
|
packaging==16.8
|
||||||
|
Pillow==4.0.0
|
||||||
|
pyparsing==2.2.0
|
||||||
|
six==1.10.0
|
||||||
|
visitor==0.1.3
|
||||||
Werkzeug==0.11.15
|
Werkzeug==0.11.15
|
||||||
|
BIN
sidor/Balaclava/Grey melange.jpg
Normal file
After Width: | Height: | Size: 1009 KiB |
BIN
sidor/Balaclava/chockrosa.jpg
Normal file
After Width: | Height: | Size: 723 KiB |
BIN
sidor/Balaclava/dark grey.jpg
Normal file
After Width: | Height: | Size: 683 KiB |
BIN
sidor/Balaclava/feathers1.jpg
Normal file
After Width: | Height: | Size: 702 KiB |
BIN
sidor/Balaclava/feathers2.jpg
Normal file
After Width: | Height: | Size: 722 KiB |
7
sidor/Balaclava/presentation.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
##Balaclava
|
||||||
|
|
||||||
|
Perfekt under hjälmen, oavsett om ni ska åka pulka, skoter eller ut och cykla. Superbra även för de minsta innanför overallens luva. Sys i enkelstorlekar för huvudomfång 38-50cm.
|
||||||
|
|
||||||
|
Samtliga visningsexemplar har storlek 48.
|
||||||
|
|
||||||
|
##200 kr
|
After Width: | Height: | Size: 114 KiB |
7
sidor/Förkläde/presentation.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
##Förkläde
|
||||||
|
|
||||||
|
Visst är det trevligt att få hjälp i köket?
|
||||||
|
|
||||||
|
Dessa förkläden passar barn i ålder 1-3 år (ca 74-104 cm) och sys av lättskött vattenavvisande CTC-duk, kantad med snedslå i bomull.
|
||||||
|
|
||||||
|
###150kr
|
BIN
sidor/Förkläde/thumbnail.jpg
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
sidor/Kuvertbody/2striped body.jpg
Normal file
After Width: | Height: | Size: 1.3 MiB |
5
sidor/Kuvertbody/presentation.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
##Kuvertbody
|
||||||
|
|
||||||
|
Denna kuvertbody sys i st62-80 med rosa, blå, grön eller beige bas. Samtliga varianter har vita kantband. Ärmarna avslutas med kontrasterande dekorsömmar vid handleden.
|
||||||
|
|
||||||
|
###230kr
|
21
sidor/Nyfödd-kit/presentation.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
##Mössa, vantar och dregglis
|
||||||
|
|
||||||
|
Set i trikå som kan användas länge, från nyfödd till ungefär st74.
|
||||||
|
|
||||||
|
Mössan sys med eller utan foder efter säsong/önskemål. Mössans innerdiameter är 40 cm (motsvarar st62 i kläder), stretchen i tyget gör att den passar bra upp till huvudstorlek 44-45 cm (motsv st74).
|
||||||
|
|
||||||
|
Vantarna är fodrade, handledsdiameter ca 10 cm när tyget är "i vila".
|
||||||
|
|
||||||
|
Dregglis i dubbel trikå med två lägen för tryckknappen.
|
||||||
|
|
||||||
|
###300kr
|
||||||
|
|
||||||
|
|
||||||
|
Setet kan även sys för större/mindre storlekar, efter önskemål vid beställning.
|
||||||
|
Samtliga delar kan beställas separat.
|
||||||
|
|
||||||
|
- Måttbeställt set **320kr**
|
||||||
|
- Mössa **150kr**
|
||||||
|
- Vantar **100kr**
|
||||||
|
- Dregglis **90kr**
|
BIN
sidor/Nyfödd-kit/thumbnail.jpg
Normal file
After Width: | Height: | Size: 117 KiB |
BIN
sidor/Supermanbody/1Superman.jpg
Normal file
After Width: | Height: | Size: 34 KiB |
7
sidor/Supermanbody/presentation.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
##Supermanbody
|
||||||
|
|
||||||
|
Visst är varje barn en liten superhjälte?
|
||||||
|
|
||||||
|
Denna kuvertbody sys i st62-80 med rosa, blå eller beige bas. Samtliga varianter har vitt tryck och vita kantband. Ärmarna avslutas med kontrasterande dekorsömmar vid handleden.
|
||||||
|
|
||||||
|
###250kr
|
7
sidor/startaom.sh.command
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
rm -r /Users/thomas/code/designbyloven/sidor/**/slides
|
||||||
|
rm -r /Users/thomas/code/designbyloven/sidor/**/thumbnails
|
||||||
|
touch /Users/thomas/code/designbyloven/designbyloven.py
|
||||||
|
|
||||||
|
exit 0
|
12
sidor/startsida.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
###Välkommen till Design by Lovén!
|
||||||
|
|
||||||
|
Här hittar du unika kläder för aktiva barn. Allt sys av mig, Anneli, i min ateljé i Rödeby.
|
||||||
|
|
||||||
|
Visningsexemplar sys i samma storlek som en av mina flickor (fn st62 och st86). Övriga storlekar tillverkas efter beställning för att kunna hålla nere priserna. Nya modeller tillkommer löpande.
|
||||||
|
|
||||||
|
Samtliga tyger har tvättats parfymfritt, utan sköljmedel, innan sömnad.
|
||||||
|
(Obs! Gäller ej förkläden.)
|
||||||
|
|
||||||
|
**Nystartserbjudande!** Köp vår fina [Supermanbody](/Supermanbody/) för bara 200 kr (ord pris 250kr) om du beställer innan påsk. Bodyn sys i st 62-80 med rosa, blå eller beige bas.
|
||||||
|
|
||||||
|
Vi finns även på FaceBook, gilla för att få uppdateringar i din telefon eller surfplatta!
|
BIN
static/.DS_Store
vendored
30
templates/base.html
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{% extends "bootstrap/base.html" %}
|
||||||
|
{% block title %} -- Design by Lovén -- {% endblock %}
|
||||||
|
{% block styles %}
|
||||||
|
{{super()}}
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block navbar %}
|
||||||
|
<nav class="navbar navbar-default">
|
||||||
|
<div class="container">
|
||||||
|
<div class="navbar-header col-xs-11">
|
||||||
|
<a class="navbar-brand" href="/">
|
||||||
|
<div>
|
||||||
|
<img src="{{url_for('static', filename='favicon.ico')}}">
|
||||||
|
Design by Lovén
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-header col-xs-1">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li><a href="mailto:kontakt@designbyloven.se"><span class="glyphicon glyphicon-envelope"></span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
{% endblock %}
|
108
templates/category.html
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block styles %}
|
||||||
|
{{super()}}
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.selected img {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 hidden-xs hidden-sm">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-body">
|
||||||
|
|
||||||
|
<div id="myCarousel" class="carousel slide" data-ride="carousel">
|
||||||
|
<div class="carousel-inner" role="listbox">
|
||||||
|
{% for i in range(images) %}
|
||||||
|
<div class="item {% if i==0 %}active{% endif %}" data-slide-number="{{i}}">
|
||||||
|
<a href="{{url_for('cat_photo', category=category, num=i) }}">
|
||||||
|
<img src=" {{ url_for('slides', category=category, num=i) }}" class="img-responsive">
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="panel-footer" id="slider-thumbs">
|
||||||
|
<ul class="list-inline">
|
||||||
|
{% for i in range(images) %}
|
||||||
|
<li>
|
||||||
|
<a id="carousel-selector-{{i}}" class="thumbnail {% if i==0 %}selected{% endif %}" style="width: 100px; height=100px;">
|
||||||
|
<img src="{{ url_for('thumbnails', category=category, num=i) }}" width=100 height=100>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<!-- <div class="panel-heading"> -->
|
||||||
|
<!-- <div class="panel-title"> <h2>{{ category }}</h2> </div> -->
|
||||||
|
<!-- </div> -->
|
||||||
|
<div class="panel-body">
|
||||||
|
{{ presentation | markdown }}
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer">
|
||||||
|
<a href="mailto:order@designbyloven.se" class="btn btn-default"><span class="glyphicon glyphicon-envelope"></span> Beställ</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 visible-xs visible-sm">
|
||||||
|
<div class="well">
|
||||||
|
<ul class="list-inline">
|
||||||
|
{% for i in range(images) %}
|
||||||
|
<li>
|
||||||
|
<a class="thumbnail" style="width:100px; height=100px;" href="{{ url_for('cat_photo', category=category, num=i) }}">
|
||||||
|
<img src="{{ url_for('thumbnails', category=category, num=i) }}" width=100 height=100>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block scripts %}
|
||||||
|
{{super()}}
|
||||||
|
<script>
|
||||||
|
$('#myCarousel').carousel({
|
||||||
|
interval: 5000
|
||||||
|
});
|
||||||
|
|
||||||
|
$('[id^=carousel-selector-]').click(function() {
|
||||||
|
var id_selector = $(this).attr("id");
|
||||||
|
var id = id_selector.substr(id_selector.length -1);
|
||||||
|
id = parseInt(id);
|
||||||
|
$('#myCarousel').carousel(id);
|
||||||
|
$('[id^=carousel-selector-]').removeClass('selected');
|
||||||
|
$(this).addClass('selected');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#myCarousel').on('slid.bs.carousel', function (e) {
|
||||||
|
var id = $('.item.active').data('slide-number');
|
||||||
|
id = parseInt(id);
|
||||||
|
$('[id^=carousel-selector-]').removeClass('selected');
|
||||||
|
$('[id=carousel-selector-'+id+']').addClass('selected');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
60
templates/index.html
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<img class="pull-left" style="margin: 20px;" src="{{url_for('static', filename='symbol.png')}}">
|
||||||
|
{{presentation|markdown}}
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 hidden-xs hidden-sm">
|
||||||
|
<div id="myCarousel" class="carousel slide" data-ride="carousel">
|
||||||
|
<div class="carousel-inner thumbnail" role="listbox" style="width:100%; height:430px !important;">
|
||||||
|
<div class="item active" data-slide-number="0">
|
||||||
|
<a id="link-0" href="{{ url_for('category', category=img1['category']) }}"><img id="image-0" src="{{ url_for('slides', **img1) }}">
|
||||||
|
</div>
|
||||||
|
<div class="item" data-slide-number="1">
|
||||||
|
<a id="link-1" href="{{ url_for('category', category=img2['category']) }}"><img id="image-1" src="{{ url_for('slides', **img2) }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
{% for cat in categories %}
|
||||||
|
<div class="col-xs-6 col-md-3">
|
||||||
|
<div class="thumbnail">
|
||||||
|
<div class="caption">
|
||||||
|
<a href="{{ url_for('category', category=cat) }}"><h3>{{cat}}</h3></a>
|
||||||
|
</div>
|
||||||
|
<a href="{{ url_for('category', category=cat) }}"><img src="{{ url_for('thumbnails', category=cat) }}" class="img-responsive"></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block scripts %}
|
||||||
|
{{super()}}
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$('#myCarousel').on('slid.bs.carousel', function (e) {
|
||||||
|
var id = $('.item.active').data('slide-number');
|
||||||
|
id = 1-parseInt(id);
|
||||||
|
$.get("/randimg", function(data) {
|
||||||
|
$('[id=link-'+id+']').attr('href', '/'+data.category+'/');
|
||||||
|
$('[id=image-'+id+']').attr('src', '/slides/'+data.category+'/'+data.num);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% endblock %}
|