Bootstrap products
This commit is contained in:
parent
16fb2bb919
commit
5f0f8f66db
19 changed files with 359 additions and 327 deletions
6
Makefile
6
Makefile
|
@ -1,5 +1,5 @@
|
||||||
BUILDDIR=../ungleich-staticcms-build
|
BUILDDIR=../ungleich-staticcms-build
|
||||||
DESTINATION=ungleichstatic@staticweb.ungleich.ch:/home/services/www/ungleichstatic/staticcms.ungleich.ch/www/
|
DESTINATION=ungleichstatic@staticweb.ungleich.ch:/home/services/www/ungleichstatic/staticcms.ungleich.ch/www/u/
|
||||||
|
|
||||||
all: publish
|
all: publish
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ pull:
|
||||||
git pull
|
git pull
|
||||||
|
|
||||||
publish: pull build permissions
|
publish: pull build permissions
|
||||||
rsync -av --exclude .lektor/ $(BUILDDIR)/ $(DESTINATION)
|
rsync -av --delete --exclude .lektor/ $(BUILDDIR)/u/ $(DESTINATION)
|
||||||
|
|
||||||
permissions: build
|
permissions: build
|
||||||
find $(BUILDDIR) -type f -exec chmod 0644 {} \;
|
find $(BUILDDIR) -type f -exec chmod 0644 {} \;
|
||||||
|
@ -17,4 +17,4 @@ build:
|
||||||
lektor build -O $(BUILDDIR)
|
lektor build -O $(BUILDDIR)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(BUILDDIR)
|
rm -rf $(BUILDDIR)
|
||||||
|
|
8
content/u/products/cloud-backup/contents.lr
Normal file
8
content/u/products/cloud-backup/contents.lr
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
_discoverable: yes
|
||||||
|
---
|
||||||
|
_hidden: no
|
||||||
|
---
|
||||||
|
title: Cloud Backup
|
||||||
|
---
|
||||||
|
subtitle: Your insurance in Switzerland
|
||||||
|
---
|
|
@ -1,3 +1,5 @@
|
||||||
_model: products
|
_model: products
|
||||||
---
|
---
|
||||||
title: ungleich products
|
title: Products
|
||||||
|
---
|
||||||
|
subtitle: Our offer to make your life easier.
|
||||||
|
|
8
content/u/products/ipv4-to-ipv6-proxy/contents.lr
Normal file
8
content/u/products/ipv4-to-ipv6-proxy/contents.lr
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
_discoverable: yes
|
||||||
|
---
|
||||||
|
_hidden: no
|
||||||
|
---
|
||||||
|
title: IPv6 to IPv6 Proxy
|
||||||
|
---
|
||||||
|
subtitle: Make your IPv6 resources reachable from the IPv4 world
|
||||||
|
---
|
|
@ -1,4 +1,4 @@
|
||||||
name: IPv6 Only Hosting
|
title: IPv6 Only Hosting
|
||||||
---
|
---
|
||||||
link: https://ipv6onlyhosting.com
|
link: https://ipv6onlyhosting.com
|
||||||
---
|
---
|
||||||
|
@ -6,8 +6,4 @@ _discoverable: yes
|
||||||
---
|
---
|
||||||
_hidden: no
|
_hidden: no
|
||||||
---
|
---
|
||||||
abstract: We provide best IPv6 only hosting
|
subtitle: We provide best IPv6 only hosting
|
||||||
---
|
|
||||||
description:
|
|
||||||
|
|
||||||
Hi there this is descriptino
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name: IPv6 VPN
|
title: IPv6 VPN
|
||||||
---
|
---
|
||||||
_discoverable: yes
|
_discoverable: yes
|
||||||
---
|
---
|
||||||
|
@ -6,6 +6,5 @@ _hidden: no
|
||||||
---
|
---
|
||||||
buy_link: http://ungleich.ch
|
buy_link: http://ungleich.ch
|
||||||
---
|
---
|
||||||
description: This is description
|
subtitle: We enable you with IPv6 everywhere
|
||||||
---
|
---
|
||||||
teaser: This is teaser
|
|
||||||
|
|
55
content/u/products/privacy-chat/contents.lr
Normal file
55
content/u/products/privacy-chat/contents.lr
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
_discoverable: yes
|
||||||
|
---
|
||||||
|
_hidden: no
|
||||||
|
---
|
||||||
|
title: Privacy enhanced Chat
|
||||||
|
---
|
||||||
|
subtitle: Your personal chat server
|
||||||
|
---
|
||||||
|
link: http://ungleich.ch
|
||||||
|
---
|
||||||
|
feature1_title: Location: Switzerland
|
||||||
|
---
|
||||||
|
feature1_text: The chat server is located in the neutral country
|
||||||
|
Switzerland with strong privacy laws.
|
||||||
|
---
|
||||||
|
feature2_title: Scalable
|
||||||
|
---
|
||||||
|
feature2_text:
|
||||||
|
|
||||||
|
Are you running a small team? Or are you a bigger
|
||||||
|
organisation? There is an instance that works for each of your
|
||||||
|
cases.
|
||||||
|
---
|
||||||
|
feature3_title: Open Source
|
||||||
|
---
|
||||||
|
feature3_text:
|
||||||
|
|
||||||
|
The chat server only consists of Open Source
|
||||||
|
Software. The software can easily be audited by third parties and its
|
||||||
|
security verified. It also does not lock you in with us. If you are
|
||||||
|
ever not happy with our service, you can take the data and host the
|
||||||
|
chat server somewhere else.
|
||||||
|
---
|
||||||
|
offer1_title: Regular
|
||||||
|
---
|
||||||
|
offer1_text: text of offer
|
||||||
|
---
|
||||||
|
offer1_link: text of offer
|
||||||
|
---
|
||||||
|
offer2_title: Pro
|
||||||
|
---
|
||||||
|
offer2_text: text of offer
|
||||||
|
---
|
||||||
|
offer2_link: link of offer
|
||||||
|
---
|
||||||
|
offer3_title: Starter
|
||||||
|
---
|
||||||
|
offer3_text: text of offer
|
||||||
|
---
|
||||||
|
offer3_link: link of offer
|
||||||
|
---
|
||||||
|
content1_text: Text of the first content block
|
||||||
|
---
|
||||||
|
content1_image: https://hack4glarus.ch/static/ungleich_page/img/logo_black.svg
|
||||||
|
---
|
55
content/u/products/private-search-engine/contents.lr
Normal file
55
content/u/products/private-search-engine/contents.lr
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
_discoverable: yes
|
||||||
|
---
|
||||||
|
_hidden: no
|
||||||
|
---
|
||||||
|
title: Private Search Engine
|
||||||
|
---
|
||||||
|
subtitle: Your own alternative to google
|
||||||
|
---
|
||||||
|
link: http://ungleich.ch
|
||||||
|
---
|
||||||
|
feature1_title: Have your own
|
||||||
|
---
|
||||||
|
You can provide search results from your own web sites without having
|
||||||
|
to rely on google.
|
||||||
|
---
|
||||||
|
feature2_title: Scalable
|
||||||
|
---
|
||||||
|
feature2_text:
|
||||||
|
|
||||||
|
Are you running a small team? Or are you a bigger
|
||||||
|
organisation? There is an instance that works for each of your
|
||||||
|
cases.
|
||||||
|
---
|
||||||
|
feature3_title: Open Source
|
||||||
|
---
|
||||||
|
feature3_text:
|
||||||
|
|
||||||
|
The chat server only consists of Open Source
|
||||||
|
Software. The software can easily be audited by third parties and its
|
||||||
|
security verified. It also does not lock you in with us. If you are
|
||||||
|
ever not happy with our service, you can take the data and host the
|
||||||
|
chat server somewhere else.
|
||||||
|
---
|
||||||
|
offer1_title: Regular
|
||||||
|
---
|
||||||
|
offer1_text: text of offer
|
||||||
|
---
|
||||||
|
offer1_link: text of offer
|
||||||
|
---
|
||||||
|
offer2_title: Pro
|
||||||
|
---
|
||||||
|
offer2_text: text of offer
|
||||||
|
---
|
||||||
|
offer2_link: link of offer
|
||||||
|
---
|
||||||
|
offer3_title: Starter
|
||||||
|
---
|
||||||
|
offer3_text: text of offer
|
||||||
|
---
|
||||||
|
offer3_link: link of offer
|
||||||
|
---
|
||||||
|
content1_text: Text of the first content block
|
||||||
|
---
|
||||||
|
content1_image: https://hack4glarus.ch/static/ungleich_page/img/logo_black.svg
|
||||||
|
---
|
8
content/u/products/storage-glarnercloud/contents.lr
Normal file
8
content/u/products/storage-glarnercloud/contents.lr
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
_discoverable: yes
|
||||||
|
---
|
||||||
|
_hidden: no
|
||||||
|
---
|
||||||
|
title: Cloud Storage
|
||||||
|
---
|
||||||
|
subtitle: Stored safely in Switzerland
|
||||||
|
---
|
|
@ -1,66 +0,0 @@
|
||||||
_discoverable: yes
|
|
||||||
---
|
|
||||||
_hidden: no
|
|
||||||
---
|
|
||||||
_model: testproduct
|
|
||||||
---
|
|
||||||
title: IPv6 VPN
|
|
||||||
---
|
|
||||||
subtitle: The IPv6 VPN allows you to reach the IPv6 Internet from everywhere!
|
|
||||||
---
|
|
||||||
link: http://ungleich.ch
|
|
||||||
---
|
|
||||||
feature1_title: title of feature
|
|
||||||
---
|
|
||||||
feature1_text: text of feature
|
|
||||||
---
|
|
||||||
feature3_title: title of feature
|
|
||||||
---
|
|
||||||
feature3_text: text of feature
|
|
||||||
---
|
|
||||||
offer1_title: title of offer
|
|
||||||
---
|
|
||||||
offer1_text: text of offer
|
|
||||||
---
|
|
||||||
offer1_link: text of offer
|
|
||||||
---
|
|
||||||
offer2_title: title of offer
|
|
||||||
---
|
|
||||||
offer2_text: text of offer
|
|
||||||
---
|
|
||||||
offer2_link: link of offer
|
|
||||||
---
|
|
||||||
offer3_title: title of offer
|
|
||||||
---
|
|
||||||
offer3_text: text of offer
|
|
||||||
---
|
|
||||||
offer3_link: link of offer
|
|
||||||
---
|
|
||||||
upper_content: upper content
|
|
||||||
---
|
|
||||||
lower_content: lower content
|
|
||||||
---
|
|
||||||
content1_text: Text of the first content block
|
|
||||||
---
|
|
||||||
content1_image: https://hack4glarus.ch/static/ungleich_page/img/logo_black.svg
|
|
||||||
---
|
|
||||||
---
|
|
||||||
---
|
|
||||||
|
|
||||||
description:
|
|
||||||
|
|
||||||
Something about the product
|
|
||||||
|
|
||||||
## Feature 1
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
## Feature 2
|
|
||||||
|
|
||||||
Something else
|
|
||||||
|
|
||||||
## Feature 3
|
|
||||||
|
|
||||||
and so on
|
|
||||||
|
|
||||||
so on
|
|
|
@ -1,46 +0,0 @@
|
||||||
_discoverable: yes
|
|
||||||
---
|
|
||||||
_hidden: no
|
|
||||||
---
|
|
||||||
_model: testproduct
|
|
||||||
---
|
|
||||||
title: IPv6 VPN
|
|
||||||
---
|
|
||||||
subtitle: The IPv6 VPN allows you to reach the IPv6 Internet from everywhere!
|
|
||||||
---
|
|
||||||
link: http://ungleich.ch
|
|
||||||
---
|
|
||||||
feature1_title: title of feature
|
|
||||||
---
|
|
||||||
feature1_text: text of feature
|
|
||||||
---
|
|
||||||
feature2_title: title of feature
|
|
||||||
---
|
|
||||||
feature2_text: text of feature
|
|
||||||
---
|
|
||||||
feature3_title: title of feature
|
|
||||||
---
|
|
||||||
feature3_text: text of feature
|
|
||||||
---
|
|
||||||
offer1_title: title of offer
|
|
||||||
---
|
|
||||||
offer1_text: text of offer
|
|
||||||
---
|
|
||||||
offer1_link: text of offer
|
|
||||||
---
|
|
||||||
offer2_title: title of offer
|
|
||||||
---
|
|
||||||
offer2_text: text of offer
|
|
||||||
---
|
|
||||||
offer2_link: link of offer
|
|
||||||
---
|
|
||||||
offer3_title: title of offer
|
|
||||||
---
|
|
||||||
offer3_text: text of offer
|
|
||||||
---
|
|
||||||
offer3_link: link of offer
|
|
||||||
---
|
|
||||||
upper_content: upper content
|
|
||||||
---
|
|
||||||
lower_content: lower content
|
|
||||||
---
|
|
8
content/u/products/virtual-machine-hosting/contents.lr
Normal file
8
content/u/products/virtual-machine-hosting/contents.lr
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
_discoverable: yes
|
||||||
|
---
|
||||||
|
_hidden: no
|
||||||
|
---
|
||||||
|
title: Virtual Machine Hosting
|
||||||
|
---
|
||||||
|
subtitle: Sustainable, green and safe
|
||||||
|
---
|
|
@ -3,22 +3,96 @@ name = Product
|
||||||
label = {{ this.title }}
|
label = {{ this.title }}
|
||||||
hidden = yes
|
hidden = yes
|
||||||
|
|
||||||
[fields.name]
|
[fields.title]
|
||||||
label = Product Name
|
label = Title of the product
|
||||||
type = string
|
type = string
|
||||||
size = large
|
size = large
|
||||||
|
|
||||||
[fields.abstract]
|
[fields.subtitle]
|
||||||
label = Abstract
|
label = Subtitle
|
||||||
type = string
|
type = string
|
||||||
width = 1/2
|
|
||||||
|
|
||||||
[fields.description]
|
[fields.description]
|
||||||
label = Description
|
label = Description
|
||||||
type = string
|
type = markdown
|
||||||
width = 1/4
|
|
||||||
|
|
||||||
[fields.link]
|
[fields.link]
|
||||||
label = Link
|
label = Link
|
||||||
type = url
|
type = url
|
||||||
width = 1/4
|
width = 1/4
|
||||||
|
|
||||||
|
[fields.feature1_title]
|
||||||
|
label = Feature1 Title
|
||||||
|
type = string
|
||||||
|
|
||||||
|
[fields.feature2_title]
|
||||||
|
label = Feature2 Title
|
||||||
|
type = string
|
||||||
|
|
||||||
|
[fields.feature3_title]
|
||||||
|
label = Feature3 Title
|
||||||
|
type = string
|
||||||
|
|
||||||
|
[fields.feature1_text]
|
||||||
|
label = Feature1 Text
|
||||||
|
type = text
|
||||||
|
|
||||||
|
[fields.feature2_text]
|
||||||
|
label = Feature2 Text
|
||||||
|
type = text
|
||||||
|
|
||||||
|
[fields.feature3_text]
|
||||||
|
label = Feature3 Text
|
||||||
|
type = text
|
||||||
|
|
||||||
|
[fields.content1_text]
|
||||||
|
label = Content1 Text
|
||||||
|
type = text
|
||||||
|
|
||||||
|
[fields.content1_image]
|
||||||
|
label = Content 1 Image
|
||||||
|
type = url
|
||||||
|
|
||||||
|
[fields.content2_text]
|
||||||
|
label = Content 2 Text
|
||||||
|
type = text
|
||||||
|
|
||||||
|
[fields.content2_image]
|
||||||
|
label = Content 2 Image
|
||||||
|
type = url
|
||||||
|
|
||||||
|
[fields.offer1_title]
|
||||||
|
label = Offer 1 Title
|
||||||
|
type = string
|
||||||
|
|
||||||
|
[fields.offer1_text]
|
||||||
|
label = Offer 1 Text
|
||||||
|
type = text
|
||||||
|
|
||||||
|
[fields.offer1_link]
|
||||||
|
label = Offer 1 Link
|
||||||
|
type = url
|
||||||
|
|
||||||
|
[fields.offer2_title]
|
||||||
|
label = Offer 2 Title
|
||||||
|
type = string
|
||||||
|
|
||||||
|
[fields.offer2_text]
|
||||||
|
label = Offer 2 Text
|
||||||
|
type = text
|
||||||
|
|
||||||
|
[fields.offer2_link]
|
||||||
|
label = Offer 2 Link
|
||||||
|
type = url
|
||||||
|
|
||||||
|
[fields.offer3_title]
|
||||||
|
label = Offer 3 Title
|
||||||
|
type = string
|
||||||
|
|
||||||
|
[fields.offer3_text]
|
||||||
|
label = Offer 3 Text
|
||||||
|
type = text
|
||||||
|
|
||||||
|
[fields.offer3_link]
|
||||||
|
label = Offer 3 Link
|
||||||
|
type = url
|
||||||
|
|
|
@ -6,3 +6,6 @@ hidden = yes
|
||||||
[fields.title]
|
[fields.title]
|
||||||
label = Title
|
label = Title
|
||||||
type = string
|
type = string
|
||||||
|
|
||||||
|
[children]
|
||||||
|
model = product
|
|
@ -1,54 +0,0 @@
|
||||||
[model]
|
|
||||||
name = Product
|
|
||||||
label = {{ this.title }}
|
|
||||||
hidden = yes
|
|
||||||
|
|
||||||
[fields.title]
|
|
||||||
label = Title of the product
|
|
||||||
type = string
|
|
||||||
size = large
|
|
||||||
|
|
||||||
[fields.subtitle]
|
|
||||||
label = Subtitle
|
|
||||||
type = string
|
|
||||||
|
|
||||||
[fields.description]
|
|
||||||
label = Description
|
|
||||||
type = markdown
|
|
||||||
|
|
||||||
[fields.link]
|
|
||||||
label = Link
|
|
||||||
type = url
|
|
||||||
width = 1/4
|
|
||||||
|
|
||||||
[fields.feature1_title]
|
|
||||||
label = Feature1 Title
|
|
||||||
type = string
|
|
||||||
|
|
||||||
[fields.feature2_title]
|
|
||||||
label = Feature2 Title
|
|
||||||
type = string
|
|
||||||
|
|
||||||
[fields.feature3_title]
|
|
||||||
label = Feature3 Title
|
|
||||||
type = string
|
|
||||||
|
|
||||||
[fields.feature1_text]
|
|
||||||
label = Feature1 Text
|
|
||||||
type = string
|
|
||||||
|
|
||||||
[fields.feature2_text]
|
|
||||||
label = Feature2 Text
|
|
||||||
type = string
|
|
||||||
|
|
||||||
[fields.feature3_text]
|
|
||||||
label = Feature3 Text
|
|
||||||
type = string
|
|
||||||
|
|
||||||
[fields.content1_text]
|
|
||||||
label = Content1 Text
|
|
||||||
type = string
|
|
||||||
|
|
||||||
[fields.content1_image]
|
|
||||||
label = Content1 Image
|
|
||||||
type = url
|
|
|
@ -5,8 +5,11 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
<!-- Bootstrap CSS -->
|
<!-- Bootstrap + helpers2 -->
|
||||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
|
<link rel="stylesheet"
|
||||||
|
href="/u/static/bootstrap-4.4.1-dist/css/bootstrap.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<title>{% block title %}Welcome to {% endblock %} | ungleich.ch</title>
|
<title>{% block title %}Welcome to {% endblock %} | ungleich.ch</title>
|
||||||
</head>
|
</head>
|
||||||
|
@ -23,10 +26,16 @@
|
||||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
<ul class="navbar-nav mr-auto">
|
<ul class="navbar-nav mr-auto">
|
||||||
<li class="nav-item active">
|
<li class="nav-item active">
|
||||||
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
|
<a class="nav-link" href="/blog/">Old Blog<a/>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item active">
|
||||||
|
<a class="nav-link" href="/u/blog/">New Blog<a/>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item active">
|
||||||
|
<a class="nav-link" href="https://chat.ungleich.ch/">Chat<a/>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="#">Link</a>
|
<a class="nav-link" href="/u/products/">Products</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<form class="form-inline my-2 my-lg-0"
|
<form class="form-inline my-2 my-lg-0"
|
||||||
|
@ -57,5 +66,13 @@
|
||||||
<a class=footer-link href="https://ungleich.ch">ungleich</a>.</span>
|
<a class=footer-link href="https://ungleich.ch">ungleich</a>.</span>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
<!-- slow javascript at the end -->
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/u/static/js/jquery-3.4.1.min.js"></script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/u/static/popper.js-1.16.0/dist/esm/popper.min.js"></script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/u/static/bootstrap-4.4.1-dist/js/bootstrap.min.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,34 +1,87 @@
|
||||||
{% extends "layout.html" %}
|
{% extends "layout-2020.html" %}
|
||||||
{% from "macros/blog.html" import render_blog_post %}
|
|
||||||
{% from "macros/pagination.html" import render_pagination %}
|
|
||||||
{% block title %}{{ this.title }}{% endblock %}
|
{% block title %}{{ this.title }}{% endblock %}
|
||||||
{% block body %}
|
{% block subtitle %}{{ this.subtitle }}{% endblock %}
|
||||||
<header class="intro-header" style="background-image: url('/u/static/images/home-bg.jpg');">
|
|
||||||
<div class="container">
|
{% block content %}
|
||||||
<div class="row">
|
<div class="container">
|
||||||
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
|
<div class="row mb-5">
|
||||||
<div class="site-heading">
|
<div class="col-md-4">
|
||||||
<h1>ungleich store</h1>
|
<h3 class="font-weight-normal">{{ this.feature1_title }}</h3>
|
||||||
<hr class="small">
|
<p class="font-weight-normal">{{ this.feature1_text }}</p>
|
||||||
<span class="subheading"></span>
|
</div>
|
||||||
</div>
|
<div class="col-md-4">
|
||||||
</div>
|
<h3 class="font-weight-normal">{{ this.feature2_title }}</h3>
|
||||||
|
<p class="font-weight-normal">{{ this.feature2_text }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h3 class="font-weight-normal">{{ this.feature3_title }}</h3>
|
||||||
|
<p class="font-weight-normal">{{ this.feature3_text }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-3">
|
|
||||||
<div class="panel panel-primary">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h3 class="panel-title">{{this.name}}</h3>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{{this.description}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row mb-3">
|
||||||
|
<div class="col-md-7">
|
||||||
|
{{ this.content1_text }}
|
||||||
|
</div>
|
||||||
|
<div class="col-md-5">
|
||||||
|
{% if this.content1_image %}
|
||||||
|
<img src="{{ this.content1_image }}" class="img-fluid">
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row mb-3">
|
||||||
|
<div class="col-md-4">
|
||||||
|
{% if this.offer1_title and this.offer1_text and this.offer1_link %}
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">{{ this.offer1_title }}</h5>
|
||||||
|
<p class="card-text">{{ this.offer1_text }}</p>
|
||||||
|
<a href="{{ this.offer1_link }}" class="btn btn-primary">Order</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
{% if this.offer2_title and this.offer2_text and this.offer2_link %}
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">{{ this.offer2_title }}</h5>
|
||||||
|
<p class="card-text">{{ this.offer2_text }}</p>
|
||||||
|
<a href="{{ this.offer2_link }}" class="btn btn-primary">Order</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
{% if this.offer3_title and this.offer3_text and this.offer3_link %}
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">{{ this.offer3_title }}</h5>
|
||||||
|
<p class="card-text">{{ this.offer3_text }}</p>
|
||||||
|
<a href="{{ this.offer3_link }}" class="btn btn-primary">Order</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row mb-3">
|
||||||
|
<div class="col-md-7">
|
||||||
|
{{ this.content2_text }}
|
||||||
|
</div>
|
||||||
|
<div class="col-md-5">
|
||||||
|
{% if this.content2_image %}
|
||||||
|
<img src="{{ this.content2_image }}" class="img-fluid">
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -1,37 +1,31 @@
|
||||||
{% extends "layout.html" %}
|
{% extends "layout-2020.html" %}
|
||||||
{% from "macros/blog.html" import render_blog_post %}
|
|
||||||
{% from "macros/pagination.html" import render_pagination %}
|
|
||||||
{% block title %}{{ this.title }}{% endblock %}
|
{% block title %}{{ this.title }}{% endblock %}
|
||||||
{% block body %}
|
{% block content %}
|
||||||
|
|
||||||
<header class="intro-header" style="background-image: url('/u/static/images/home-bg.jpg');">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
|
|
||||||
<div class="site-heading">
|
|
||||||
<h1>Products</h1>
|
|
||||||
<hr class="small">
|
|
||||||
<span class="subheading"></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
{% for product in this.children %}
|
||||||
{% for product in this.children %}
|
{% if loop.first %}
|
||||||
<div class="col-md-3">
|
<div class="row mb-3">
|
||||||
<div class="panel panel-primary">
|
{% endif %}
|
||||||
<div class="panel-heading">
|
<div class="col-md-4">
|
||||||
<h2 class="panel-title">{{ product.name}}</h2>
|
<div class="card">
|
||||||
</div>
|
<div class="card-body">
|
||||||
<div class="panel-body">
|
<h5 class="card-title">{{ product.title }}</h5>
|
||||||
{{product.teaser}}
|
<p class="card-text">{{ product.subtitle }}</p>
|
||||||
|
<a class="btn btn-primary" href="{{ product|url }}">Check it out</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% if loop.index is divisibleby 3 %}
|
||||||
|
</div>
|
||||||
|
<hr/>
|
||||||
|
<div class="row">
|
||||||
|
{% endif %}
|
||||||
|
{% if loop.last %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,82 +0,0 @@
|
||||||
{% extends "layout-2020.html" %}
|
|
||||||
{% block title %}{{ this.title }}{% endblock %}
|
|
||||||
{% block subtitle %}{{ this.subtitle }}{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<div class="container">
|
|
||||||
<div class="row mb-5">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h3 class="font-weight-normal">{{ this.feature1_title }}</h3>
|
|
||||||
<p class="font-weight-normal">{{ this.feature1_text }}</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h3 class="font-weight-normal">{{ this.feature2_title }}</h3>
|
|
||||||
<p class="font-weight-normal">{{ this.feature2_text }}</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h3 class="font-weight-normal">{{ this.feature3_title }}</h3>
|
|
||||||
<p class="font-weight-normal">{{ this.feature3_text }}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
<div class="row mb-3">
|
|
||||||
<div class="col-md-7">
|
|
||||||
{{ this.content1_text }}
|
|
||||||
</div>
|
|
||||||
<div class="col-md-5">
|
|
||||||
{% if this.content1_image %}
|
|
||||||
<img src="{{ this.content1_image }}" class="img-fluid">
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
<div class="row mb-3">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-body">
|
|
||||||
<h5 class="card-title">Offer 1</h5>
|
|
||||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
|
||||||
<a href="#" class="btn btn-primary">Go somewhere</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-body">
|
|
||||||
<h5 class="card-title">Offer 2</h5>
|
|
||||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
|
||||||
<a href="#" class="btn btn-primary">Go somewhere</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-body">
|
|
||||||
<h5 class="card-title">Offer 3</h5>
|
|
||||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
|
||||||
<a href="#" class="btn btn-primary">Go somewhere</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr/>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
<div class="row mb-3">
|
|
||||||
<div class="col-md-7">
|
|
||||||
{{ this.content2_text }}
|
|
||||||
</div>
|
|
||||||
<div class="col-md-5">
|
|
||||||
{% if this.content2_image %}
|
|
||||||
<img src="{{ this.content2_image }}" class="img-fluid">
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
Loading…
Reference in a new issue