Compare commits

...

1 commit

Author SHA1 Message Date
479e874d88 initial experimentations 2019-12-31 00:50:37 +05:00
10 changed files with 302 additions and 1 deletions

View file

@ -1,4 +1,4 @@
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/
all: publish all: publish

View file

@ -3,3 +3,8 @@ name = ungleich Blog
source_path = /u/blog source_path = /u/blog
filename = feed.xml filename = feed.xml
item_model = blog-post item_model = blog-post
[product]
name = ungleich products
source_path = /u/products
item_model = product

View file

@ -0,0 +1,3 @@
_model: products
---
title: Ungleich's product page

View file

@ -0,0 +1,7 @@
name: IPv6 Only Hosting
---
buy_link: https://google.com
---
description: Hi there this is descriptino
---
teaser: We provide best IPv6 only hosting

View file

@ -0,0 +1,9 @@
name: IPv6 VPN
---
_discoverable: yes
---
buy_link: http://ungleich.ch
---
description: This is description
---
teaser: This is teaser

25
models/product.ini Normal file
View file

@ -0,0 +1,25 @@
[model]
name = Product
label = {{ this.title }}
hidden = yes
[fields.name]
label = Product Name
type = string
size = large
[fields.teaser]
label = Teaser
type = string
width = 1/2
[fields.description]
label = Description
type = string
width = 1/4
addon_label = @
[fields.buy_link]
label = Buy Link
type = url
width = 1/4

11
models/products.ini Normal file
View file

@ -0,0 +1,11 @@
[model]
name = Products
label = Products
hidden = yes
[fields.title]
label = Title
type = string
[children]
model = product

View file

@ -0,0 +1,29 @@
{% macro render_product(product, from_index=false) %}
{% if from_index %}
<div class="post-preview">
<div class="row">
<div class="col-md-4">
{% set image = product.attachments.images.first() %}
<h2><a href="{{ product|url }}">{% if image %}<img src="{{ image.thumbnail(240)|url }}" alt=""/>{% else %}<div class="blog-post-placeholder"></div>{% endif %}</a></h2>
</div>
<div class="col-md-8">
{% if from_index %}<a href="{{ product|url }}"><h2 class="post-title">{{ post.title }}</h2></a>
{% else %}
<h2 class="post-title">{{ product.title }}</h2>
{% endif %}
<p class="post-meta" style="font-size:0.9em;">
Posted on {{ product.pub_date }} by {% if product.twitter_handle %}<a href="https://twitter.com/{{ post.twitter_handle }}">{{ post.author or post.twitter_handle }}</a>{% else %}{{ post.author }} {% endif %}
</p>
<p class="post-subtitle">
<p>
{{ product.abstract }}
</p>
</p>
</div>
</div>
<hr>
</div>
{% else %}
{{ product.body }}
{% endif %}
{% endmacro %}

105
templates/product.html Normal file
View file

@ -0,0 +1,105 @@
<!-- <!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 %}
{% block title %}{{ this.title }}{% 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 %}

107
templates/products.html Normal file
View file

@ -0,0 +1,107 @@
<!-- <!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 %}
{% block title %}{{ this.title }}{% 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">
{% 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>
{% endfor %}
</div>
</div>
</div>
{% endblock %}