add a testproduct
This commit is contained in:
parent
c4ca3a22df
commit
ef8e147a9c
8 changed files with 243 additions and 90 deletions
|
@ -1,11 +1,13 @@
|
|||
name: IPv6 Only Hosting
|
||||
---
|
||||
buy_link: https://google.com
|
||||
---
|
||||
description: Hi there this is descriptino
|
||||
link: https://ipv6onlyhosting.com
|
||||
---
|
||||
_discoverable: yes
|
||||
---
|
||||
_hidden: no
|
||||
---
|
||||
teaser: We provide best IPv6 only hosting
|
||||
abstract: We provide best IPv6 only hosting
|
||||
---
|
||||
description:
|
||||
|
||||
Hi there this is descriptino
|
||||
|
|
15
content/u/testproduct/contents.lr
Normal file
15
content/u/testproduct/contents.lr
Normal file
|
@ -0,0 +1,15 @@
|
|||
_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
|
||||
---
|
||||
description: This is description
|
||||
---
|
||||
teaser: This is teaser
|
|
@ -8,8 +8,8 @@ label = Product Name
|
|||
type = string
|
||||
size = large
|
||||
|
||||
[fields.teaser]
|
||||
label = Teaser
|
||||
[fields.abstract]
|
||||
label = Abstract
|
||||
type = string
|
||||
width = 1/2
|
||||
|
||||
|
@ -17,9 +17,8 @@ width = 1/2
|
|||
label = Description
|
||||
type = string
|
||||
width = 1/4
|
||||
addon_label = @
|
||||
|
||||
[fields.buy_link]
|
||||
label = Buy Link
|
||||
[fields.link]
|
||||
label = Link
|
||||
type = url
|
||||
width = 1/4
|
||||
|
|
18
models/testproduct.ini
Normal file
18
models/testproduct.ini
Normal file
|
@ -0,0 +1,18 @@
|
|||
[model]
|
||||
name = Product
|
||||
label = {{ this.title }}
|
||||
hidden = yes
|
||||
|
||||
[fields.title]
|
||||
label = Product Name
|
||||
type = string
|
||||
size = large
|
||||
|
||||
[fields.subtitle]
|
||||
label = subtitle
|
||||
type = string
|
||||
|
||||
[fields.link]
|
||||
label = Link
|
||||
type = url
|
||||
width = 1/4
|
156
templates/layout-2020.html
Normal file
156
templates/layout-2020.html
Normal file
|
@ -0,0 +1,156 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<!-- Bootstrap CSS -->
|
||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
|
||||
|
||||
<title>{% block title %}Welcome to {% endblock %} | ungleich.ch</title>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<a class="navbar-brand" href="https://ungleich.ch">ungleich</a>
|
||||
<button class="navbar-toggler" type="button"
|
||||
data-toggle="collapse"
|
||||
data-target="#navbarSupportedContent"
|
||||
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Link</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
Dropdown
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<a class="dropdown-item" href="#">Action</a>
|
||||
<a class="dropdown-item" href="#">Another action</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="#">Something else here</a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline my-2 my-lg-0"
|
||||
action="https://search.ungleich.ch/yacysearch.html" method="get">
|
||||
<input class="form-control mr-sm-2" type="search"
|
||||
placeholder="Search" name="query" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="position-relative overflow-hidden p-3 p-md-5 m-md-3 text-center bg-light">
|
||||
<div class="col-md-5 p-lg-5 mx-auto my-5">
|
||||
<h1 class="display-4 font-weight-normal">{{ self.title() }}</h1>
|
||||
<p class="lead font-weight-normal">
|
||||
{% block subtitle %}{% endblock %}
|
||||
</p>
|
||||
</div>
|
||||
<div class="product-device shadow-sm d-none d-md-block"></div>
|
||||
<div class="product-device product-device-2 shadow-sm d-none d-md-block"></div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="row mb-5">
|
||||
<div class="col-md-4">
|
||||
<h3 class="font-weight-normal">Feature1</h3>
|
||||
<p class="font-weight-normal">And an even wittier subheading
|
||||
to boot. Jumpstart your marketing efforts with this example based
|
||||
on Apple’s marketing pages.</p>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h3 class="font-weight-normal">feature2</h3>
|
||||
<p class="font-weight-normal">And an even wittier subheading
|
||||
to boot. Jumpstart your marketing efforts with this example based
|
||||
on Apple’s marketing pages.</p>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h3 class="font-weight-normal">feature3</h3>
|
||||
<p class="font-weight-normal">And an even wittier subheading
|
||||
to boot. Jumpstart your marketing efforts with this example based
|
||||
on Apple’s marketing pages.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-7">
|
||||
UPPER-CONTENT non caps!
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<img src="https://hack4glarus.ch/static/ungleich_page/img/logo_black.svg" class="img-fluid">
|
||||
</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">
|
||||
LOWER-CONTENT
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<img src="https://hack4glarus.ch/static/ungleich_page/img/logo_black.svg" class="img-fluid">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer mt-auto py-3">
|
||||
<div class="container">
|
||||
<span class="text-muted">Copyright
|
||||
<a class=footer-link href="https://ungleich.ch">ungleich</a>.</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1,74 +1,3 @@
|
|||
<!-- <!doctype html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>the new ungleich blog | ungleich.ch</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="Affordable VM hosting in Glarus, Switzerland, operated by 100% hydropower. Devuan, debian, freebsd, ubuntu, centos. Our tech stack is fully open source.">
|
||||
<meta name="author" content="ungleich glarus ag">
|
||||
<link href="https://ungleich.ch/u/static/css/bootstrap-3.3.4/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="https://ungleich.ch/u/static/css/font-awesome-4.1.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="https://ungleich.ch/u/static/css/clean-blog.css" rel="stylesheet" type="text/css">
|
||||
<link href="//fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" rel="stylesheet" type="text/css">
|
||||
<link href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css">
|
||||
<link rel="shortcut icon" href="https://ungleich.ch/u/static/images/favicon.ico"/>
|
||||
<script type="text/javascript" src="https://ungleich.ch/u/static/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="https://ungleich.ch/u/static/js/bootstrap.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="jumbotron">
|
||||
<h1>Welcome to ungleich's store.</h1>
|
||||
<p>Here you can find all the good things. </p>
|
||||
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">IPv6 VPN</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
The ungleich IPv6 VPN enables you to have IPv6 anywhere in the world. There are active VPNs in Germany, Croatia, South Korea, China, Spain, ... you name it! Coming with a /48 network, you have plenty of IPv6 space that even allows you to create more than 65'000 standard (/64) networks for yourself. One for the office, one for the coworkers, one for the servers, one for the dog and so on and on.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">IPv6 Backuo</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
IPv6 is quickly replacing IPv4 now world wide and more and more servers are only reachable by IPv6. So a backup without IPv6 is not future ready.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">IPv6 Only Hosting</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Our VMs have pure IPv6 connectivity. However using DNS64 and NAT64, they still can reach the old IPv4 Internet.
|
||||
Secure, easy, and simple. It will be running in few seconds.
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Product 4</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Panel content
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body> -->
|
||||
{% extends "layout.html" %}
|
||||
{% from "macros/blog.html" import render_blog_post %}
|
||||
{% from "macros/pagination.html" import render_pagination %}
|
||||
|
|
|
@ -17,21 +17,22 @@
|
|||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="row">
|
||||
{% for product in this.children %}
|
||||
<div class="col-md-3">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h2 class="panel-title">{{product.name}}</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{{product.teaser}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h2 class="panel-title">{{ product.name}}</h2>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{{product.teaser}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
33
templates/testproduct.html
Normal file
33
templates/testproduct.html
Normal file
|
@ -0,0 +1,33 @@
|
|||
{% extends "layout-2020.html" %}
|
||||
{% block title %}{{ this.title }}{% endblock %}
|
||||
{% block subtitle %}{{ this.subtitle }}{% endblock %}
|
||||
{% block body %}
|
||||
<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>ungleich store</h1>
|
||||
<hr class="small">
|
||||
<span class="subheading"></span>
|
||||
</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>
|
||||
{% endblock %}
|
Loading…
Reference in a new issue