New startpage and some minor improovements (#10)

- Fixes #1
- Fixes #9

Reviewed-on: #10
This commit is contained in:
Dorian Zedler 2023-03-26 15:29:47 +02:00
parent d5daf2ab02
commit 88ed49cf89
149 changed files with 946 additions and 2423 deletions

View File

@ -1,5 +1,6 @@
---
kind: pipeline
name: default
name: production
steps:
- name: build
@ -12,4 +13,30 @@ steps:
settings:
folder: public
ssh_key:
from_secret: gitea-ssh-key
from_secret: gitea-ssh-key
trigger:
branch:
- main
---
kind: pipeline
name: dev
steps:
- name: build
image: klakegg/hugo:ext-alpine-ci
commands:
- hugo --config config.dev.yaml --minify
- rm public/.domains
- name: publish
image: itsblue.dev/plugins/codeberg-pages-deploy
settings:
folder: public
git_branch: pages-dev
ssh_key:
from_secret: gitea-ssh-key
trigger:
branch:
- dev

View File

@ -1,5 +1,6 @@
{
"recommendations": [
"valentjn.vscode-ltex"
"valentjn.vscode-ltex",
"budparr.language-hugo-vscode"
]
}

View File

@ -8,3 +8,4 @@ Murnau
MakerLab
blueROCK
digitalrock
assable

11
.vscode/settings.json vendored
View File

@ -1,5 +1,14 @@
{
"ltex.language": "en-US",
"ltex.enabled": ["markdown", "yaml"],
"ltex.markdown.nodes": {"CodeBlock": "default", "FencedCodeBlock": "default", "AutoLink": "dummy", "Code": "dummy", "YamlFrontMatterBlock": "default"}
"ltex.markdown.nodes": {
"CodeBlock": "default",
"FencedCodeBlock": "default",
"AutoLink": "dummy",
"Code": "dummy",
"YamlFrontMatterBlock": "default"
},
"editor.detectIndentation": false,
"editor.tabSize": 2,
"editor.insertSpaces": true,
}

27
config.dev.yaml Normal file
View File

@ -0,0 +1,27 @@
baseURL: "https://itsblue-development.itsblue.online/itsblue-website/@pages-dev"
defaultContentLanguage: "en"
title: "Itsblue"
theme: "quark-hugo"
params:
gridSize: "grid-lg"
languages:
de:
title: "Itsblue"
en:
title: "Itsblue"
markup:
goldmark:
renderer:
unsafe: true
outputFormats:
privacypolicy:
baseName: "privacypolicy"
isPlainText: false
isHTML: true
permalinkable: true
suffix: "html"
mediaType: "text/html"

View File

@ -1,14 +0,0 @@
baseURL = "https://itsblue.de/"
defaultContentLanguage = "en"
title = "Itsblue"
theme = "quark-hugo"
[params]
gridSize = "grid-lg"
[languages]
[languages.de]
[languages.en]
[markup.goldmark.renderer]
unsafe= true

27
config.yaml Normal file
View File

@ -0,0 +1,27 @@
baseURL: "https://itsblue.de/"
defaultContentLanguage: "en"
title: "Itsblue"
theme: "quark-hugo"
params:
gridSize: "grid-lg"
languages:
de:
title: "Itsblue"
en:
title: "Itsblue"
markup:
goldmark:
renderer:
unsafe: true
outputFormats:
privacypolicy:
baseName: "privacypolicy"
isPlainText: false
isHTML: true
permalinkable: true
suffix: "html"
mediaType: "text/html"

View File

@ -3,12 +3,16 @@ title: blueROCK
layout: appitem
title: blueROCK
heroClasses: 'overlay-dark text-light hero-tiny'
image: images/apps/bluerock.png
imagesDir: images/apps/bluerock
links:
googleplay: 'https://play.google.com/store/apps/details?id=com.itsblue.blueROCK'
appstore: 'https://apps.apple.com/de/app/bluerock/id1503699996?app=itunes&ign-mpt=uo%3D4'
opensource: 'https://itsblue.dev/dorian/blueROCK'
privacyPolicy: "While you're using blueROCK Itsblue Development does not collect any of your personal data.<br>\r\n<br>\r\nHowever, digitalROCK (provider of rankings and resultservice) may collect personal data. <br>\r\nFurther information can be found in their privacy policy:<br>\r\n<a href=\"https://www.digitalrock.de/?load=kontakt.php%3Fprivacy-policy\" target=\"blank\">https://www.digitalrock.de/?load=kontakt.php%3Fprivacy-policy</a>"
privacyPolicy: |
While you're using blueROCK Itsblue Development does not collect any of your personal data.
outputs:
- html
- privacypolicy
menu:
main:
@ -16,8 +20,10 @@ menu:
name: blueROCK
weight: 1
parent: Apps
aliases: ["/index.php/apps/bluerock"]
---
blueROCK is an app to view climbing results from [digitalrock](https://digitalrock.de) comfortable on the go.
<!--more-->
<!--more-->

View File

@ -1,16 +1,20 @@
---
title: Fannyapp
layout: appitem
title: Fannyapp
heroClasses: 'overlay-dark text-light hero-tiny'
heroImageParallax: true
heroAlign: center
image: images/apps/fannyapp.png
imagesDir: images/apps/fannyapp
links:
googleplay: 'https://play.google.com/store/apps/details?id=com.itsblue.flgvertretung'
appstore: 'https://apps.apple.com/de/app/fannyapp/id1495583845'
opensource: 'https://itsblue.dev/dorian/fanny-app'
privacyPolicy: "While you're using the fannyapp, Itsblue Development does not collect any of your personal data.<br>\r\n<br>\r\nHowever, Treffpunkt Fanny e.V. (provider of foodplan data) may collect personal data. <br>\r\nFurther information can be found in their privacy policy:<br>\r\n<a href=\"http://treffpunkt-fanny.de/datenschutzerklaerung.html\" target=\"blank\">http://treffpunkt-fanny.de/datenschutzerklaerung.html</a>"
googleplay: "https://play.google.com/store/apps/details?id=com.itsblue.flgvertretung"
appstore: "https://apps.apple.com/de/app/fannyapp/id1495583845"
opensource: "https://itsblue.dev/dorian/fanny-app"
privacyPolicy: |
While you're using the Fannyapp Itsblue Development does not collect any of your personal data.<br>
<br>
However, Treffpunkt Fanny e.V. (provider of foodplan data) may collect personal data.<br>
Further information can be found in their privacy policy:<br>
<a href=\"http://www.treffpunkt-fanny.de/index.php/datenschutzerklaerung\" target=\"blank\">http://www.treffpunkt-fanny.de/index.php/datenschutzerklaerung</a>
outputs:
- html
- privacypolicy
menu:
main:
@ -20,9 +24,23 @@ menu:
parent: Apps
---
The Fannyapp is an app designed for a school in Stuttgart (Germany).
The Fannyapp was our first public app and the reason we decided to start publishing apps for Apple devices.
<!--more-->
Find out more over here:
[http://www.fanny-leicht.de/j34/index.php/aktuelles/fanny-app](http://www.fanny-leicht.de/j34/index.php/aktuelles/fanny-app)
##### What it is now
It is a simple app for the mensa of my former highschool, [Treffpunkt Fanny](https://treffpunkt-fanny.de), which shows the meals being served in the next ten days.
To accomplish this, we also wrote a php script which parses the [excel table](http://www.treffpunkt-fanny.de/images/stories/dokumente/Essensplaene/current.xlsx), which Treffpunkt Fanny uses to keep track which meals will be served, and turns it into a [REST-API](http://www.treffpunkt-fanny.de/images/stories/dokumente/Essensplaene/api/TFfoodplanAPI.php). The source code of that php script can be found on [GitHub](https://github.com/Fanny-Leicht-Gymnasium/TFfoodplan).
##### What it used to be
Back when I still went to the Fanny-Leicht-Gymnasium, the Fannyapp used to be more than just a meal-plan. It showed events like "The maths class today at 7:30am is cancelled", or "The biology class today at 3:30pm is moved to a diffrent room". The last three screenshots are from back when it could still do that.
I'd like to give a little background on that:
At that time, this so-called "substitution plan" was only available as an ugly pdf at the schools website. It was very annoying to read on a phone, as it was small text and always contained all events for all grades. The app was able to filter the eventy by grade and group (see last screenshot), which made it much more convenient to read.
Also, users had to login to the website every time, since it used plain old http basic authentication. The app could just remember the username and password.
At that time, I was also maintaining the schools main website. Since I found the http basic system very annoying and outdated, the authentication was fully migrated to Joomla (the CMS we were using) on my initiative.
That opened up more possibilities, since I was now able to use Joomlas plugin system to write a [plugin](https://github.com/Fanny-Leicht-Gymnasium/JoomlaFannySubstitutionPlan) which converted the pdf to an easy to parse REST-API.
As you can see, I spent lots of time to develop all of this, and it was my first public project that was actually useful.
So what happened? It's pretty simple actually: The school decided to purchase the commercially available app "Untis mobile" and therefore, my app was no longer needed and truned into a meal-plan.

View File

@ -1,12 +1,14 @@
---
title: 'Led Display Controller'
layout: appitem
heroClasses: 'overlay-dark text-light hero-tiny'
image: images/apps/ledDisplayController.png
imagesDir: images/apps/leddisplaycontroller
links:
googleplay: 'https://play.google.com/store/apps/details?id=de.itsblue.LedDisplayController'
opensource: 'https://itsblue.dev/itsblue-development/LedDisplay'
privacyPolicy: 'While you are using the Led Display Controller app, Itsblue Development does not collect any of your personal data.'
outputs:
- html
- privacypolicy
menu:
main:

View File

@ -2,19 +2,24 @@
title: 'Speed Climbing Reaction Trainer'
layout: appitem
heroClasses: 'overlay-dark text-light hero-tiny'
image: images/apps/scstwrt.png
imagesDir: images/apps/scrt
links:
googleplay: 'https://play.google.com/store/apps/details?id=com.itsblue.SpeedClimbingReactionTrainer'
appstore: 'https://apps.apple.com/de/app/speed-climbing-reactiontrainer/id1527603031'
opensource: 'https://itsblue.dev/ScStw/reaction-trainer'
privacyPolicy: 'While you are using the Speed Climbing Reaction Trainer app, Itsblue Development does not collect any of your personal data.'
outputs:
- html
- privacypolicy
menu:
main:
title: Speed Climbing Reaction Trainer
name: Speed Climbing Reaction Trainer
weight: 3
parent: Apps
aliases: ["/index.php/apps/speed-climbing-stopwatch-reaction-trainer"]
---
The Speed Climbing Reaction Trainer is an app to train your reaction time to the IFSC speed climbing start signal.

View File

@ -1,20 +1,25 @@
---
title: 'Speed Climbing Stopwatch App'
title: 'Speed Climbing Stopwatch'
layout: appitem
heroClasses: 'overlay-dark text-light hero-tiny'
image: images/apps/scstw.png
imagesDir: images/apps/scstw
links:
googleplay: 'https://play.google.com/store/apps/details?id=com.itsblue.speedclimbing_stopwatch'
appstore: 'https://apps.apple.com/de/app/speed-climbing-stopwatch/id1527590772'
opensource: 'https://itsblue.dev/scstw/app'
privacyPolicy: 'While you are using the Speed Climbing Stopwatch app, Itsblue Development does not collect any of your personal data.'
outputs:
- html
- privacypolicy
menu:
main:
title: Speed Climbing Stopwatch App
name: Speed Climbing Stopwatch App
weight: 2
parent: Apps
aliases: ["/index.php/apps/speed-climbing-stopwatch-app"]
---
The speed climbing stopwatch app is a simple and lightweight stopwatch app that plays the official IFSC start signal before beginning to stop the time.

View File

@ -1,5 +0,0 @@
---
layout: redirect
redirectUrl: "/apps/bluerock"
redirectDelay: "0"
---

View File

@ -1,5 +0,0 @@
---
layout: redirect
redirectUrl: "/apps/scstw"
redirectDelay: "0"
---

View File

@ -1,5 +0,0 @@
---
layout: redirect
redirectUrl: "/apps/scrt"
redirectDelay: "0"
---

View File

@ -1,5 +0,0 @@
---
layout: redirect
redirectUrl: "/scstw?ref=ScStwApp"
redirectDelay: "0"
---

View File

@ -0,0 +1,12 @@
---
title: Projects
layout: blog
redirectUrl: "reader-clock"
bodyClasses: 'title-h1h2 header-animated sticky-footer'
menu:
main:
title: Projects
name: Projects
weight: 2
---

View File

@ -0,0 +1,19 @@
---
title: 'LED-Display'
layout: "modular"
bodyClasses: 'title-h1h2 header-fixed header-animated header-dark header-transparent sticky-footer'
modularDataDir: "led-display"
image: images/led-display/front-on.jpg
summary: "The Itsblue LED-Display provides an easy way to show off messages."
menu:
main:
title: LED-Display
name: LED-Display
weight: 2
parent: Projects
---
# LED-Display
{{% contactForm %}}

View File

@ -0,0 +1,20 @@
---
title: 'Reader Clock'
layout: "modular"
bodyClasses: 'title-h1h2 header-fixed header-animated header-dark header-transparent sticky-footer'
modularDataDir: "reader-clock"
image: images/reader-clock/front.jpg
summary: "The Reader-Clock is a digital clock which tells the time by showing a quote from an actual book."
menu:
main:
title: Reader Clock
name: Reader Clock
weight: 2
parent: Projects
---
# Want to get your own?
\
\
<a href="https://www.etsy.com/de/listing/1153472132/readerclock-die-uhrzeit-mal-ganz-anders" class="btn btn-primary btn-lg">Check out our Etsy store</a>

View File

@ -2,14 +2,18 @@
title: 'Speed Climbing Stopwatch'
layout: "modular"
bodyClasses: 'title-h1h2 header-fixed header-animated header-dark header-transparent sticky-footer'
menu: "main"
modularDataDir: "scstw"
image: "images/scstw/BaseStation.jpg"
summary: "The Speed Climbing Stopwatch (aka ScStw) is a modern speed climbing timing system that just works. "
menu:
main:
title: Speed Climbing Stopwatch
name: Speed Climbing Stopwatch
weight: 2
parent: Projects
aliases: ["/scstw", "/index.php/speed-climbing"]
---
## What next?

View File

@ -1,37 +1,77 @@
00-carousel:
enabled: true
modularLayout: carousel
classes: "text-light overlay-dark"
items:
- image: "images/scstw/hero.jpeg"
positionY: 80
content: |
## The Speed Climbing Stopwatch
Modern speed climbing timing right at your fingertips
links:
- text: "Learn more"
href: "projects/scstw"
classes: "btn btn-primary"
- image: "images/reader-clock/cnc.jpg"
positionY: 80
content: |
## Introducing: The Reader-Clock
A beautiful, handcrafted clock, which shows the time in form of quotes from actual books
links:
- text: "Check it out"
href: "projects/reader-clock"
classes: "btn btn-primary"
- image: "images/led-display/front-on.jpg"
positionY: 50
content: |
## The Itsblue LED-Display
A simple display to show off your messages - wherever you are
links:
- text: "More details"
href: "projects/led-display"
classes: "btn btn-primary"
01-hero:
enabled: false
modularLayout: hero
classes: 'text-light overlay-dark'
classes: "text-light overlay-dark"
image: "images/reader-clock/cnc.jpg"
positionY: 80
image: "images/home/Hero.jpg"
imageParallax: true
content: "# Welcome \n ## Itsblue Development"
content: |
## Introducing: The Reader-Clock
A beautiful, handcrafted clock, which shows the time in form of quotes from actual books
links:
- text: "Check it out"
href: "projects/reader-clock"
classes: "btn btn-primary"
02-highlights:
modularLayout: features
classes: offset-box
smallColumns: false
features:
-
icon: 'fas fa-code'
- icon: "fas fa-code"
header: Coding
-
icon: 'fas fa-cubes'
header: '3D printing'
-
icon: 'fas fa-microchip'
- icon: "fas fa-cubes"
header: "3D printing"
- icon: "fas fa-microchip"
header: Microcontrollers
-
icon: 'fas fa-bahai'
header: 'Laser cutting'
-
icon: 'far fa-file'
- icon: "fas fa-bahai"
header: "Laser cutting"
- icon: "far fa-file"
header: Foiling
-
icon: 'fas fa-server'
header: 'Server management'
- icon: "fas fa-server"
header: "Server management"
content: |
# What's our field of activity?
# Our field of activity
## **everything around electronics**
03-headlineCurrentProjects:
@ -48,7 +88,7 @@
Professional time measuring often is a hassle. The Speed Climbing Stopwatch (aka ScStw) aims to change that. It is a modern speed climbing timing system that just works.
<br />
<a href="/scstw" class="btn btn-primary btn-lg">Find out more</a>
<a href="scstw" class="btn btn-primary btn-lg">Find out more</a>
05-apps:
modularLayout: text
@ -59,32 +99,31 @@
We have developed some apps that might come in handy if you are interested in climbing.
<br />
<a href="/apps" class="btn btn-primary btn-lg">Find out more</a>
<a href="apps" class="btn btn-primary btn-lg">Find out more</a>
06-links:
modularLayout: features
small: true
features:
-
icon: 'fab fa-gitlab'
header: 'Our GitLab'
text: 'We use GitLab for most of our projects, you can explore them here.'
url: 'https://itsblue.dev/explore'
-
icon: 'fab fa-google-play'
header: 'Google Play'
text: 'This is our developer account on Google Play where you can find all of our apps for android.'
url: 'https://play.google.com/store/apps/developer?id=Itsblue+Development'
-
icon: 'fab fa-app-store-ios'
header: 'App Store'
text: 'This is our developer account on the App Store where you can find all of our apps for IOS.'
url: 'https://apps.apple.com/de/developer/dorian-zedler/id1666039119'
-
icon: 'fas fa-pencil-ruler'
header: 'MakerLab Murnau'
text: 'This is where our hardware development and production takes place.'
url: 'https://makerlab-murnau.de/'
- icon: "fab fa-git-alt"
header: "blue.code"
text: "This is where our open source projects live, you can explore them here."
url: "https://itsblue.dev/explore"
- icon: "fab fa-google-play"
header: "Google Play"
text: "This is our developer account on Google Play where you can find all of our apps for android."
url: "https://play.google.com/store/apps/developer?id=Itsblue+Development"
- icon: "fab fa-app-store-ios"
header: "App Store"
text: "This is our developer account on the App Store where you can find all of our apps for IOS."
url: "https://apps.apple.com/de/developer/dorian-zedler/id1666039119"
- icon: "fas fa-pencil-ruler"
header: "MakerLab Murnau"
text: "This is where our hardware development and production takes place."
url: "https://makerlab-murnau.de/"
content: |
# Links
## **Some things you might find interesting...**
## **Some things you might find interesting...**

42
data/en/led-display.yml Normal file
View File

@ -0,0 +1,42 @@
01-hero:
modularLayout: hero
classes: 'text-light overlay-dark-gradient'
positionY: 80
image: "images/led-display/front-on.jpg"
imageParallax: true
content: |
# The LED-Display
The Itsblue LED-Display provides an easy way to show off messages.
02-display:
modularLayout: text
imageAlign: right
image: images/led-display/close-up.jpg
content: |
## Powered by RGB
The display consists of 384 individually adressable RGB LEDs. together, they form a powerful matrix that can be used to display anything you can imagine.
04-bus:
modularLayout: text
align: "left"
image: images/led-display/omobi-bus.jpg
content: |
## Used every day
Our displays are in active use by Omobi busses in southern Bavaria.
<br />
<a href="https://www.omobi.de" target="_blank" class="">More about omobi <i class="fa fa-angle-right"></i></a>
05-app:
modularLayout: text
align: "right"
image: images/apps/leddisplaycontroller/banner.png
content: |
## Easy to configure
Intuitive configuration a feature of itsblue products. The LED display can be easily configured through the led display controller app.
The password protection feature also makes sure, that no unauthorized access can occur.
<br />
<a href="../../apps/leddisplaycontroller/" class="">Get the app <i class="fa fa-angle-right"></i></a>

107
data/en/reader-clock.yaml Normal file
View File

@ -0,0 +1,107 @@
01-hero:
modularLayout: hero
classes: "text-light overlay-dark-gradient"
positionY: 80
image: "images/reader-clock/cnc.jpg"
imageParallax: true
content: |
# The Reader-Clock
## A new way to view the time
The Reader-Clock is a digital clock which tells the time by showing a quote from an actual book.
02-highlights:
disabled: true
modularLayout: features
classes: offset-box
smallColumns: false
features:
- icon: "fas fa-tachometer-alt"
header: "Super simple"
text: "Simplicity and ease of use is one of the major features of the ScStw."
- icon: "fa fa-suitcase"
header: "Super portable"
text: "The ScStw literally fits in your suitcase!"
- icon: "fas fa-clock"
header: "Easy to deploy"
text: "The ScStw can be fully deployed within 15 minutes."
- icon: "fas fa-wifi"
header: "Fully wireless"
text: "Stop fighting with cables and start climbing!"
- icon: "fa fa-money-bill-alt"
header: Affordable
text: "You don't need to spend an arm or a leg for precise timing."
- icon: "fas fa-medal"
header: "High quality"
text: "All ScStw devices are handmade in Germany!"
content: |
# Why ScStw?
## **keep it simple**
Professional time measuring often is a hassle. The ScStw aims to change that.
03-display:
modularLayout: text
imageAlign: right
image: images/reader-clock/front.jpg
content: |
## E-Ink Display
The Reader-Clock uses an E-Ink display which is easy on the eye and looks like actual paper.
04-case:
modularLayout: text
align: "left"
image: images/reader-clock/cnc.jpg
content: |
## Handcrafted in Bavaria
The case of the Reader-Clock is a handcrafted piece of art, made in Bavaria. Every piece is unique...
05-diy-kit:
modularLayout: text
imageAlign: right
image: images/reader-clock/diy-kit.jpg
content: |
## Do it yourself!
The Reader-Clock comes a DIY-Kit. It's easy to assemble and only requires some soldering skills.
07-pricing:
disabled: true
modularLayout: pricing
containerType: panel
products:
- name: Base
subtitle: All parts you need to build your Reader-Clock
image: images/reader-clock/diy-kit.jpg
price: 120
- name: Engraving on the front
subtitle: A custom engraving on front
image: images/reader-clock/diy-kit.jpg
price: 10
- name: Engraving on the back
subtitle: A custom engraving on the back
image: images/reader-clock/diy-kit.jpg
price: 30
- name: Custom wood
subtitle: Send us your wood, and we turn it into a case
image: images/reader-clock/diy-kit.jpg
price: free
content: |
# Pricing
08-contact:
disabled: false
modularLayout: text
content: "@@PageContent@@"

View File

@ -1,6 +1,6 @@
01-hero:
modularLayout: hero
classes: 'text-light overlay-dark-gradient'
classes: "text-light overlay-dark-gradient"
positionY: 80
image: "images/scstw/hero.jpeg"
imageParallax: true
@ -15,30 +15,29 @@
classes: offset-box
smallColumns: false
features:
-
icon: 'fas fa-tachometer-alt'
header: 'Super simple'
text: 'Simplicity and ease of use is one of the major features of the ScStw.'
-
icon: 'fa fa-suitcase'
header: 'Super portable'
text: 'The ScStw literally fits in your suitcase!'
-
icon: 'fas fa-clock'
header: 'Easy to deploy'
text: 'The ScStw can be fully deployed within 15 minutes.'
-
icon: 'fas fa-wifi'
header: 'Fully wireless'
text: 'Stop fighting with cables and start climbing!'
-
icon: 'fa fa-money-bill-alt'
- icon: "fas fa-tachometer-alt"
header: "Super simple"
text: "Simplicity and ease of use is one of the major features of the ScStw."
- icon: "fa fa-suitcase"
header: "Super portable"
text: "The ScStw literally fits in your suitcase!"
- icon: "fas fa-clock"
header: "Easy to deploy"
text: "The ScStw can be fully deployed within 15 minutes."
- icon: "fas fa-wifi"
header: "Fully wireless"
text: "Stop fighting with cables and start climbing!"
- icon: "fa fa-money-bill-alt"
header: Affordable
text: 'You don''t need to spend an arm or a leg for precise timing.'
-
icon: 'fas fa-medal'
header: 'High quality'
text: 'All ScStw devices are handmade in Germany!'
text: "You don't need to spend an arm or a leg for precise timing."
- icon: "fas fa-medal"
header: "High quality"
text: "All ScStw devices are handmade in Germany!"
content: |
# Why ScStw?
@ -90,26 +89,22 @@
modularLayout: pricing
containerType: panel
products:
-
name: Basestation
- name: Basestation
subtitle: Required once
image: images/scstw/BaseStation.jpg
price: 700
-
name: Toppad
- name: Toppad
subtitle: Required once per lane
image: images/scstw/Toppad1.jpg
price: 325
-
name: Startpad
- name: Startpad
subtitle: Required once per lane
image: images/scstw/Startpad1.jpg
price: 325
-
name: Storage box
- name: Storage box
subtitle: Optional
image: images/scstw/Box.jpg
price: 350
@ -119,4 +114,4 @@
08-contact:
modularLayout: text
content: "@@PageContent@@"
content: "@@PageContent@@"

View File

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

View File

@ -1,21 +0,0 @@
The MIT License (MIT)
Copyright (c) 2018 Trilby Media
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1 +0,0 @@
sass --watch --style compressed --sourcemap=none scss:css-compiled

View File

@ -1,174 +0,0 @@
name: Itsblue
version: 2.0.2
description: New Grav Default Theme
icon: microchip
author:
name: Team Grav
email: devs@getgrav.org
url: http://getgrav.org
homepage: https://github.com/getgrav/grav-theme-itsblue
demo: https://demo.getgrav.org/onepage-skeleton
keywords: itsblue, spectre, theme, core, modern, fast, responsive, html5, css3
bugs: https://github.com/getgrav/grav-theme-itsblue/issues
license: MIT
dependencies:
- { name: grav, version: '>=1.6.0' }
form:
validation: loose
fields:
production-mode:
type: toggle
label: Production mode
help: When enabled, Itsblue will render with minified CSS
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
grid-size:
type: select
label: Grid size
help: The maximum width of the theme
size: small
options:
'': None (full width)
grid-xl: Extra Large
grid-lg: Large
grid-md: Medium
header_section:
type: section
title: Header Defaults
underline: true
custom_logo:
type: file
label: Custom Logo
size: large
destination: 'theme://images/logo'
multiple: false
markdown: true
description: Will be used instead of default logo `theme://images/grav-logo.svg`
accept:
- image/*
custom_logo_mobile:
type: file
label: Mobile Custom Logo
size: large
destination: 'theme://images/logo'
multiple: false
accept:
- image/*
header-fixed:
type: toggle
label: Fixed header
help: When enabled, the header will be fixed at the top of the browser
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header-animated:
type: toggle
label: Animated
help: When enabled, the header will animate to a smaller header when scrolling
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header-dark:
type: toggle
label: Dark Style
help: When enabled, a dark-friendly style will be used
highlight: 0
default: 0
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header-transparent:
type: toggle
label: Transparent
help: When enabled, a transparent style will be used
highlight: 0
default: 0
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
footer_section:
type: section
title: Footer Defaults
underline: true
sticky-footer:
type: toggle
label: Sticky footer
help: When enabled, the footer will be sticky at the bottom of the browser
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
blog_section:
type: section
title: Blog Defaults
underline: true
blog-page:
type: text
label: Blog Page
help: The route to the blog page when working with blog sidebar
size: medium
default: '/blog'
spectre_section:
type: section
title: Spectre.css Options
underline: true
spectre.exp:
type: toggle
label: Experimentals CSS
help: When enabled, the `spectre-exp.css` file will be included
highlight: 0
default: 0
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
spectre.icons:
type: toggle
label: Icons CSS
help: When enabled, the `spectre-icons.css` file will be included
highlight: 0
default: 0
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool

View File

@ -1,156 +0,0 @@
extends@: default
form:
fields:
tabs:
fields:
blog:
type: tab
title: Blog Appitem
fields:
links:
type: section
title: Links
underline: true
header.links.googleplay:
type: text
toggleable: true
label: URL for GooglePlay
size: x-large
header.links.appstore:
type: text
toggleable: true
label: URL for AppStore
size: x-large
header.links.opensource:
type: text
toggleable: true
label: URL for project repository
size: x-large
privacy-policy:
type: section
title: Privacy policy
underline: true
header.privacyPolicy:
type: editor
autofocus: true
codemirror:
mode: 'md'
indentUnit: 4
autofocus: true
indentWithTabs: false
lineNumbers: true
styleActiveLine: true
gutters: ['CodeMirror-lint-markers']
lint: true
header_options:
type: section
title: Header Options
underline: true
header.continue_link:
type: toggle
toggleable: true
label: DF Style Link
help: Daring Fireball style title link
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header.header_image:
type: toggle
toggleable: true
label: Display Header Image
help: Enabled displaying of a header image
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
header.header_image_file:
type: text
toggleable: true
label: Image File
help: image filename that exists in the page folder. If not provided, will use the first image found.
placeholder: "For example: myimage.jpg"
header.header_image_width:
type: text
toggleable: true
label: Image Width
size: small
help: Header width in px
placeholder: Default is 900
validate:
type: int
min: 0
max: 5000
header.header_image_height:
type: text
toggleable: true
label: Image Height
size: small
help: Header height in px
placeholder: Default is 300
validate:
type: int
min: 0
max: 5000
summary:
type: section
title: Summary
underline: true
header.summary.enabled:
type: toggle
toggleable: true
label: Summary
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
header.summary.format:
type: select
toggleable: true
label: Format
classes: fancy
options:
'short': 'Use the first occurence of delimiter or size'
'long': 'Summary delimiter will be ignored'
header.summary.size:
type: text
toggleable: true
label: Size
classes: large
placeholder: 300
validate:
type: int
min: 1
header.summary.delimiter:
type: text
toggleable: true
label: Summary delimiter
classes: large
placeholder: ===
import@:
type: partials/blog-bits

View File

@ -1,92 +0,0 @@
extends@: default
child_type: item
rules:
slug:
pattern: "[a-z][a-z0-9_-]+"
min: 2
max: 80
form:
fields:
tabs:
type: tabs
active: 1
fields:
advanced:
fields:
overrides:
fields:
header.child_type:
default: item
blog:
type: tab
title: Blog Config
fields:
content_title:
type: spacer
title: Content Definition
header.content.items:
type: textarea
yaml: true
label: Items
default: '@self.children'
validate:
type: yaml
header.content.limit:
type: text
label: Max Item Count
default: 5
validate:
required: true
type: int
min: 1
header.content.order.by:
type: select
label: Order By
default: date
options:
folder: Folder
title: Title
date: Date
default: Default
header.content.order.dir:
type: select
label: Order
default: desc
options:
asc: Ascending
desc: Descending
header.content.pagination:
type: toggle
label: Pagination
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header.content.url_taxonomy_filters:
type: toggle
label: URL Taxonomy Filters
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
import@:
type: partials/blog-bits
context: blueprints://pages

View File

@ -1,15 +0,0 @@
extends@: default
form:
fields:
tabs:
fields:
advanced:
fields:
columns:
fields:
column1:
fields:
header.body_classes:
markdown: true
description: 'Available classes in Quark Theme (space separated):<br />`header-fixed`, `header-animated`, `header-dark`, `header-transparent`, `sticky-footer`'

View File

@ -1,113 +0,0 @@
extends@: default
form:
fields:
tabs:
fields:
blog:
type: tab
title: Blog Item
fields:
header_options:
type: section
title: Header Options
underline: true
header.continue_link:
type: toggle
toggleable: true
label: DF Style Link
help: Daring Fireball style title link
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header.header_image:
type: toggle
toggleable: true
label: Display Header Image
help: Enabled displaying of a header image
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
header.header_image_file:
type: text
toggleable: true
label: Image File
help: image filename that exists in the page folder. If not provided, will use the first image found.
placeholder: "For example: myimage.jpg"
header.header_image_width:
type: text
toggleable: true
label: Image Width
size: small
help: Header width in px
placeholder: Default is 900
validate:
type: int
min: 0
max: 5000
header.header_image_height:
type: text
toggleable: true
label: Image Height
size: small
help: Header height in px
placeholder: Default is 300
validate:
type: int
min: 0
max: 5000
summary:
type: section
title: Summary
underline: true
header.summary.enabled:
type: toggle
toggleable: true
label: Summary
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
header.summary.format:
type: select
toggleable: true
label: Format
classes: fancy
options:
'short': 'Use the first occurence of delimiter or size'
'long': 'Summary delimiter will be ignored'
header.summary.size:
type: text
toggleable: true
label: Size
classes: large
placeholder: 300
validate:
type: int
min: 1
header.summary.delimiter:
type: text
toggleable: true
label: Summary delimiter
classes: large
placeholder: ===
import@:
type: partials/blog-bits

View File

@ -1,91 +0,0 @@
extends@: default
rules:
slug:
pattern: "[a-z][a-z0-9_-]+"
min: 2
max: 80
form:
fields:
tabs:
type: tabs
active: 1
fields:
advanced:
fields:
overrides:
fields:
header.child_type:
default: item
blog:
type: tab
title: Blog Config
fields:
content_title:
type: spacer
title: Content Definition
header.content.items:
type: textarea
yaml: true
label: Items
default: '@self.children'
validate:
type: yaml
header.content.limit:
type: text
label: Max Item Count
default: 5
validate:
required: true
type: int
min: 1
header.content.order.by:
type: select
label: Order By
default: date
options:
folder: Folder
title: Title
date: Date
default: Default
header.content.order.dir:
type: select
label: Order
default: desc
options:
asc: Ascending
desc: Descending
header.content.pagination:
type: toggle
label: Pagination
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header.content.url_taxonomy_filters:
type: toggle
label: URL Taxonomy Filters
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
import@:
type: partials/blog-bits
context: blueprints://pages

View File

@ -1,44 +0,0 @@
title: Features
'@extends': default
form:
fields:
tabs:
fields:
features:
type: tab
title: Features
fields:
header.class:
type: text
label: Layout
default: small
markdown: true
description: 'There are several Hero class options that can be listed here (space separated):<br />`small`, `standard`, `offset-box`, `bg-grav`'
size: medium
options:
small: Small = 4 / 3 / 2 columns
standard: Standard = 3 / 2 / 1 columns
offset-box: Offset Box
header.features:
name: features
type: list
label: Features
fields:
.iconFa:
type: iconpicker
label: Icon (Fontawesome)
.iconBase64:
type: text
label: Icon (base64)
.header:
type: text
label: Header
.text:
type: text
label: Text
.url:
type: text
label: Link

View File

@ -1,32 +0,0 @@
title: Hero
'@extends': default
form:
fields:
tabs:
fields:
buttons:
type: tab
title: Hero
fields:
header.hero_classes:
type: text
label: Hero Classes
markdown: true
description: 'There are several Hero class options that can be listed here (space separated):<br />`text-light`, `text-dark`, `title-h1h2`, `parallax`, `overlay-dark-gradient`, `overlay-light-gradient`, `overlay-dark`, `overlay-light`, `hero-fullscreen`, `hero-large`, `hero-medium`, `hero-small`, `hero-tiny`<br />Please consult the [Quark documentation](https://github.com/getgrav/grav-theme-quark#hero-options) for more details.'
header.hero_image:
type: filepicker
label: Hero Image
preview_images: true
description: 'If not specified, this defaults to the first image found in the page''s folder'
header.hero_positionY:
type: text
label: Image Y Position
description: 'The initial y Position of the hero image (in percent)'
default: 100
validate:
type: int
min: 0
max: 100

View File

@ -1,19 +0,0 @@
title: Text
'@extends': default
form:
fields:
tabs:
fields:
content:
fields:
header.media_order:
label: Page Media (first one will be displayed next to your content)
header.image_align:
type: select
label: Image position
classes: fancy
default: left
options:
'left': 'Left'
'right': 'Right'

View File

@ -1,64 +0,0 @@
form:
fields:
hero_title:
type: spacer
title: Hero Section
header.hero_classes:
type: text
label: Hero Classes
markdown: true
description: 'There are several Hero class options that can be listed here (space separated):<br />`text-light`, `text-dark`, `title-h1h2`, `parallax`, `overlay-dark-gradient`, `overlay-light-gradient`, `overlay-dark`, `overlay-light`, `hero-fullscreen`, `hero-large`, `hero-medium`, `hero-small`, `hero-tiny`<br />Please consult the [Quark documentation](https://github.com/getgrav/grav-theme-quark#hero-options) for more details.'
header.hero_image:
type: filepicker
label: Hero Image
preview_images: true
description: 'If not specified, this defaults to the first image found in the page''s folder'
toggles_title:
type: spacer
title: Configuration
header.blog_url:
type: text
toggleable: true
label: Blog Route
help: The route to the main blog page that contains the "Show ..." configuration
default: '/blog'
placeholder: '/blog'
size: medium
header.show_sidebar:
type: toggle
toggleable: true
label: Show Sidebar
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header.show_breadcrumbs:
type: toggle
toggleable: true
label: Show Breadcrumbs
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header.show_pagination:
type: toggle
toggleable: true
label: Show Pagination
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool

File diff suppressed because one or more lines are too long

View File

@ -1,49 +0,0 @@
.bricklayer {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: start;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.bricklayer-column-sizer {
width: 100%;
display: none;
}
@media screen and (min-width: 640px) {
.bricklayer-column-sizer {
width: 100%;
}
}
@media screen and (min-width: 980px) {
.bricklayer-column-sizer {
width: 50%;
}
}
/*@media screen and (min-width: 1200px) {*/
/*.bricklayer-column-sizer {*/
/*width: 33.33333%;*/
/*}*/
/*}*/
.bricklayer-column {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
padding-left: 5px;
padding-right: 5px;
}

View File

@ -1,3 +0,0 @@
ScStw {
background-color: red;
}

View File

@ -1,56 +0,0 @@
<?php
namespace Grav\Theme;
use Grav\Common\Grav;
use Grav\Common\Theme;
class Itsblue extends Theme
{
public static function getSubscribedEvents()
{
return [
'onThemeInitialized' => ['onThemeInitialized', 0],
'onTwigLoader' => ['onTwigLoader', 0],
'onTwigInitialized' => ['onTwigInitialized', 0],
];
}
public function onThemeInitialized()
{
}
// Add images to twig template paths to allow inclusion of SVG files
public function onTwigLoader()
{
$theme_paths = Grav::instance()['locator']->findResources('theme://images');
foreach($theme_paths as $images_path) {
$this->grav['twig']->addPath($images_path, 'images');
}
}
public function onTwigInitialized()
{
$twig = $this->grav['twig'];
$form_class_variables = [
// 'form_outer_classes' => 'form-horizontal',
'form_button_outer_classes' => 'button-wrapper',
'form_button_classes' => 'btn',
'form_errors_classes' => '',
'form_field_outer_classes' => 'form-group',
'form_field_outer_label_classes' => 'form-label-wrapper',
'form_field_label_classes' => 'form-label',
// 'form_field_outer_data_classes' => 'col-9',
'form_field_input_classes' => 'form-input',
'form_field_textarea_classes' => 'form-input',
'form_field_select_classes' => 'form-select',
'form_field_radio_classes' => 'form-radio',
'form_field_checkbox_classes' => 'form-checkbox',
];
$twig->twig_vars = array_merge($twig->twig_vars, $form_class_variables);
}
}

View File

@ -1,12 +0,0 @@
enabled: true
production-mode: true
grid-size: grid-lg
header-fixed: true
header-animated: true
header-dark: false
header-transparent: false
sticky-footer: true
blog-page: '/blog'
spectre:
exp: false
icons: false

View File

@ -1,288 +0,0 @@
en:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: Continue reading...
NEXT_POST: Next Post
PREV_POST: Previous Post
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Search
RELATED_POSTS:
HEADLINE: Related Posts
RANDOM_ARTICLE:
HEADLINE: Random Article
FEELING_LUCKY: I'm Feeling Lucky!
SOME_TEXT_WIDGET:
HEADLINE: Some Text Widget
POPULAR_TAGS:
HEADLINE: Popular Tags
ARCHIVES:
HEADLINE: Archives
SYNDICATE:
HEADLINE: Syndicate
de:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: Weiterlesen...
NEXT_POST: Nächster Beitrag
PREV_POST: Vorheriger Beitrag
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: SimpleSearch
RELATED_POSTS:
HEADLINE: Ähnliche Beiträge
RANDOM_ARTICLE:
HEADLINE: Zufälliger Artikel
FEELING_LUCKY: Auf gut Glück!
SOME_TEXT_WIDGET:
HEADLINE: Text Widget Beispiel
POPULAR_TAGS:
HEADLINE: Häufigste Tags
ARCHIVES:
HEADLINE: Archiv
SYNDICATE:
HEADLINE: Abonnements
es:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: Continuar leyendo...
NEXT_POST: Siguiente Entrada
PREV_POST: Entrada Anterior
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Buscar
RELATED_POSTS:
HEADLINE: Entradas Relacionadas
RANDOM_ARTICLE:
HEADLINE: Artículo Aleatorio
FEELING_LUCKY: Voy a tener suerte!
SOME_TEXT_WIDGET:
HEADLINE: Algunos Widget de Texto
POPULAR_TAGS:
HEADLINE: Etiquetas Populares
ARCHIVES:
HEADLINE: Archivos
SYNDICATE:
HEADLINE: Distribuir
fr:
THEME_QUARK:
TRANSLATION_TEST: Quark !
BLOG:
ITEM:
CONTINUE_READING: Continuer la lecture...
NEXT_POST: Article suivant
PREV_POST: Article précédent
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Recherche simple
RELATED_POSTS:
HEADLINE: Articles en relation
RANDOM_ARTICLE:
HEADLINE: Article aléatoire
FEELING_LUCKY: J'ai de la chance !
SOME_TEXT_WIDGET:
HEADLINE: Du texte gadget
POPULAR_TAGS:
HEADLINE: Tags populaires
ARCHIVES:
HEADLINE: Archives
SYNDICATE:
HEADLINE: Syndication
it:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: Continua a leggere...
NEXT_POST: Prossimo articolo
PREV_POST: Articolo precedente
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: SimpleSearch
RELATED_POSTS:
HEADLINE: Articoli correlati
RANDOM_ARTICLE:
HEADLINE: Articolo a caso
FEELING_LUCKY: Mi sento fortunato!
SOME_TEXT_WIDGET:
HEADLINE: Widget di testo
POPULAR_TAGS:
HEADLINE: Tag popolari
ARCHIVES:
HEADLINE: Archivio
SYNDICATE:
HEADLINE: Feed
ro:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: Mai multe...
NEXT_POST: Următorul articol
PREV_POST: Articolul anterior
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Căutare
RELATED_POSTS:
HEADLINE: Articole corelate
RANDOM_ARTICLE:
HEADLINE: Articol aleator
FEELING_LUCKY: Mă simt norocos
SOME_TEXT_WIDGET:
HEADLINE: Text modular
POPULAR_TAGS:
HEADLINE: Etichete populare
ARCHIVES:
HEADLINE: Arhive
SYNDICATE:
HEADLINE: Abonați-vă
ru:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: Читать далее...
NEXT_POST: Следующая запись
PREV_POST: Предыдущая запись
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Поиск
RELATED_POSTS:
HEADLINE: Также читайте
RANDOM_ARTICLE:
HEADLINE: Случайная запись
FEELING_LUCKY: Мне повезёт!
SOME_TEXT_WIDGET:
HEADLINE: Текстовой виджет
POPULAR_TAGS:
HEADLINE: Популярные теги
ARCHIVES:
HEADLINE: Архив
SYNDICATE:
HEADLINE: Синдикация
uk:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: Читати далі...
NEXT_POST: Наступний запис
PREV_POST: Попередній запис
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Пошук
RELATED_POSTS:
HEADLINE: Також читайте
RANDOM_ARTICLE:
HEADLINE: Випадковий запис
FEELING_LUCKY: Мені пощастить!
SOME_TEXT_WIDGET:
HEADLINE: Текстовий віджет
POPULAR_TAGS:
HEADLINE: Популярні теги
ARCHIVES:
HEADLINE: Архів
SYNDICATE:
HEADLINE: Синдикація
hr:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: Nastavi s čitanjem...
NEXT_POST: Slijedeća objava
PREV_POST: Prethodna objava
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Pretraživanje
RELATED_POSTS:
HEADLINE: Povezane objave
RANDOM_ARTICLE:
HEADLINE: Slučajni članak
FEELING_LUCKY: Osjećam se sretno!
SOME_TEXT_WIDGET:
HEADLINE: Neki tekst widget
POPULAR_TAGS:
HEADLINE: Popularni tagovi
ARCHIVES:
HEADLINE: Arhiva
SYNDICATE:
HEADLINE: Kanali
nl:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: Lees Meer...
NEXT_POST: Volgende Bericht
PREV_POST: Vorige Bericht
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Zoek
RELATED_POSTS:
HEADLINE: Gerelateerde Berichten
RANDOM_ARTICLE:
HEADLINE: Willekeurig Artikel
FEELING_LUCKY: Ik Voel Me Gelukkig!
SOME_TEXT_WIDGET:
HEADLINE: Een Tekst Widget
POPULAR_TAGS:
HEADLINE: Populaire Labels
ARCHIVES:
HEADLINE: Archieven
SYNDICATE:
HEADLINE: Syndicatie
cs:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: Pokračovat ve čtení...
NEXT_POST: Následující příspěvek
PREV_POST: Předchozí příspěvek
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Vyhledávání
RELATED_POSTS:
HEADLINE: Související příspěvky
RANDOM_ARTICLE:
HEADLINE: Náhodný článek
FEELING_LUCKY: Zkusím štěstí!
SOME_TEXT_WIDGET:
HEADLINE: Textový widget
POPULAR_TAGS:
HEADLINE: Oblíbené štítky
ARCHIVES:
HEADLINE: Archiv
SYNDICATE:
HEADLINE: Syndikace
zh:
THEME_QUARK:
BLOG:
ITEM:
CONTINUE_READING: 继续阅读...
NEXT_POST: 下一篇
PREV_POST: 上一篇
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: 搜索
RELATED_POSTS:
HEADLINE: 相关内容
RANDOM_ARTICLE:
HEADLINE: 随机一篇
FEELING_LUCKY: 手气不错!
SOME_TEXT_WIDGET:
HEADLINE: 一个文本小部件
POPULAR_TAGS:
HEADLINE: 热门标签
ARCHIVES:
HEADLINE: 归档
SYNDICATE:
HEADLINE: 订阅流

View File

@ -1 +0,0 @@
sass --update --force --style compressed --sourcemap=none scss:css-compiled

View File

@ -1,41 +0,0 @@
{% extends 'partials/base.html.twig' %}
{% set blog = page.find(header_var('blog_url')|defined(theme_var('blog-page'))) %}
{% set show_breadcrumbs = header_var('show_breadcrumbs', [page, blog])|defined(true) %}
{% set show_sidebar = header_var('show_sidebar', [page, blog])|defined(true) %}
{% set show_pagination = header_var('show_pagination', [page, blog])|defined(true) %}
{% set hero_image_name = page.header.hero_image %}
{% block hero %}
{% if hero_image_name %}
{% set hero_image = page.media[hero_image_name] %}
{% set content %}
<h1>{{ page.title }}</h1>
<h2>{{ page.header.subtitle }}</h2>
{% include 'partials/blog/date.html.twig' %}
{% include 'partials/blog/taxonomy.html.twig' %}
{% endset %}
{% include 'partials/hero.html.twig' with {id: 'blog-hero'} %}
{% endif %}
{% endblock %}
{% block body %}
<section id="body-wrapper" class="section blog-listing">
<section class="container {{ grid_size }}">
{% if show_breadcrumbs and config.plugins.breadcrumbs.enabled %}
{% include 'partials/breadcrumbs.html.twig' %}
{% endif %}
{% embed 'partials/layout.html.twig' %}
{% block item %}
{% include 'partials/blog-appitem.html.twig' %}
{% endblock %}
{% block sidebar %}
{% include 'partials/sidebar.html.twig' %}
{% endblock %}
{% endembed %}
</section>
</section>
{% endblock %}

View File

@ -1,3 +0,0 @@
{% block content_surround %}
{% block content %}{% endblock %}
{% endblock %}

View File

@ -1,63 +0,0 @@
{% extends 'partials/base.html.twig' %}
{% set blog_image = page.media.images[page.header.hero_image] ?: page.media.images|first %}
{% set collection = page.collection() %}
{% set blog = page.find(header_var('blog_url')|defined(theme_var('blog-page'))) %}
{% set show_breadcrumbs = header_var('show_breadcrumbs', [page, blog])|defined(true) %}
{% set show_sidebar = header_var('show_sidebar', [page, blog])|defined(true) %}
{% set show_pagination = header_var('show_pagination', [page, blog])|defined(true) %}
{% block stylesheets %}
{% do assets.addCss('theme://css/bricklayer.css') %}
{{ parent() }}
{% endblock %}
{% block javascripts %}
{{ parent() }}
{% do assets.add('theme://js/bricklayer.min.js') %}
{% do assets.add('theme://js/scopedQuerySelectorShim.min.js') %}
{% endblock %}
{% block hero %}
{% include 'partials/hero.html.twig' with {id: 'blog-hero', content: page.content, hero_image: blog_image} %}
{% endblock %}
{% block body %}
<section id="body-wrapper" class="section blog-listing">
<section class="container {{ grid_size }}">
{% if show_breadcrumbs and config.plugins.breadcrumbs.enabled %}
{% include 'partials/breadcrumbs.html.twig' %}
{% endif %}
{% embed 'partials/layout.html.twig' with {blog: page} %}
{% block item %}
<div class="bricklayer">
{% for child in collection %}
{% include 'partials/blog-list-item.html.twig' with {blog: page, page: child} %}
{% endfor %}
</div>
{% if show_pagination and config.plugins.pagination.enabled and collection.params.pagination %}
<div id="listing-footer">
{% include 'partials/pagination.html.twig' with {base_url: page.url, pagination: collection.params.pagination} %}
</div>
{% endif %}
{% endblock %}
{% block sidebar %}
{% include 'partials/sidebar.html.twig' %}
{% endblock %}
{% endembed %}
</section>
</section>
<script>
//Bricklayer
var bricklayer = new Bricklayer(document.querySelector('.bricklayer'))
</script>
{% endblock %}

View File

@ -1,5 +0,0 @@
{% extends 'partials/base.html.twig' %}
{% block content %}
{{ page.content|raw }}
{% endblock %}

View File

@ -1,12 +0,0 @@
{% extends 'partials/base.html.twig' %}
{% block content %}
<div id="error">
<div>
<h1>{{ 'PLUGIN_ERROR.ERROR'|t }} {{ page.header.http_response_code }}</h1>
<p>
{{ page.content|raw }}
</p>
</div>
</div>
{% endblock %}

View File

@ -1,32 +0,0 @@
{% extends "forms/field.html.twig" %}
{% block label %}
{% endblock %}
{% block input %}
{% set id = field.id|default(field.name) ~ '-' ~ key %}
<div class="{{ form_field_wrapper_classes ?: 'form-input-wrapper' }} {{ field.size }} {{ field.wrapper_classes }}">
<label class="{{ form_field_checkbox_classes }}" for="{{ id|e }}">
<input
{# required attribute structures #}
name="{{ (scope ~ field.name)|fieldName }}"
value="{{ value|join(', ') }}"
type="checkbox"
{% if value == true %} checked="checked" {% endif %}
{# input attribute structures #}
{% block input_attributes %}
id="{{ id|e }}"
{% if field.classes is defined %}class="{{ field.classes }}" {% endif %}
{% if field.style is defined %}style="{{ field.style|e }}" {% endif %}
{% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %}
{% if field.autofocus in ['on', 'true', 1] %}autofocus="autofocus"{% endif %}
{% if field.novalidate in ['on', 'true', 1] %}novalidate="novalidate"{% endif %}
{% if required %}required="required"{% endif %}
{% endblock %}
/>
<i class="form-icon"></i>
{{ field.label|t|e }} {{ field.validate.required in ['on', 'true', 1] ? '<span class="required">*</span>' }}
</label>
</div>
{% endblock %}

View File

@ -1,44 +0,0 @@
{% extends "forms/field.html.twig" %}
{% set originalValue = value %}
{% set value = (value is null ? field.default : value) %}
{% if field.use == 'keys' and field.default %}
{% set value = field.default|merge(value) %}
{% endif %}
{% block global_attributes %}
{{ parent() }}
data-grav-keys="{{ field.use == 'keys' ? 'true' : 'false' }}"
data-grav-field-name="{{ (scope ~ field.name)|fieldName }}"
{% endblock %}
{% block input %}
{% for key, text in field.options %}
{% set id = field.id|default(field.name) ~ '-' ~ key %}
{% set name = field.use == 'keys' ? key : id %}
{% set val = field.use == 'keys' ? '1' : key %}
{% set checked = (field.use == 'keys' ? value[key] : key in value) %}
{% set help = (key in field.help_options|keys ? field.help_options[key] : false) %}
<div class="checkboxes {{ form_field_wrapper_classes }} {{ field.wrapper_classes }}">
<label class="{{ form_field_checkbox_classes }}" for="{{ id|e }}">
<input type="checkbox"
id="{{ id|e }}"
value="{{ val|e }}"
name="{{ (scope ~ field.name)|fieldName ~ '[' ~ name ~ ']' }}"
{% if checked %}checked="checked"{% endif %}
{% if field.classes is defined %}class="{{ field.classes }}" {% endif %}
{% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %}
>
<i class="form-icon"></i>
{% if help %}
<span class="hint--bottom" data-hint="{{ help|t|e('html_attr') }}">{{ text|t|e }}</span>
{% else %}
{{ text|t|e }}
{% endif %}
</label>
</div>
{% endfor %}
{% endblock %}

View File

@ -1,26 +0,0 @@
{% extends "forms/field.html.twig" %}
{% set originalValue = value %}
{% set value = (value is null ? field.default : value) %}
{% block input %}
{% for key, text in field.options %}
{% set id = field.id|default(field.name) ~ '-' ~ key %}
<div class="radio {{ form_field_wrapper_classes }} {{ field.wrapper_classes }}">
<label class="{{ form_field_radio_classes }}" for="{{ id|e }}">
<input type="radio"
value="{{ key|e }}"
id="{{ id|e }}"
name="{{ (scope ~ field.name)|fieldName }}"
{% if field.classes is defined %}class="{{ field.classes }}" {% endif %}
{% if key == value %}checked="checked" {% endif %}
{% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %}
{% if required %}required="required"{% endif %}
/>
<i class="form-icon"></i>
{% if grav.twig.twig.filters['tu'] is defined %}{{ text|tu|raw }}{% else %}{{ text|t|raw }}{% endif %}
</label>
</div>
{% endfor %}
{% endblock %}

View File

@ -1,3 +0,0 @@
{% set form_field_checkbox_classes = 'form-switch' %}
{% extends "forms/fields/checkbox/checkbox.html.twig" %}

View File

@ -1,41 +0,0 @@
{% extends 'partials/base.html.twig' %}
{% set blog = page.find(header_var('blog_url')|defined(theme_var('blog-page'))) %}
{% set show_breadcrumbs = header_var('show_breadcrumbs', [page, blog])|defined(true) %}
{% set show_sidebar = header_var('show_sidebar', [page, blog])|defined(true) %}
{% set show_pagination = header_var('show_pagination', [page, blog])|defined(true) %}
{% set hero_image_name = page.header.hero_image %}
{% block hero %}
{% if hero_image_name %}
{% set hero_image = page.media[hero_image_name] %}
{% set content %}
<h1>{{ page.title }}</h1>
<h2>{{ page.header.subtitle }}</h2>
{% include 'partials/blog/date.html.twig' %}
{% include 'partials/blog/taxonomy.html.twig' %}
{% endset %}
{% include 'partials/hero.html.twig' with {id: 'blog-hero'} %}
{% endif %}
{% endblock %}
{% block body %}
<section id="body-wrapper" class="section blog-listing">
<section class="container {{ grid_size }}">
{% if show_breadcrumbs and config.plugins.breadcrumbs.enabled %}
{% include 'partials/breadcrumbs.html.twig' %}
{% endif %}
{% embed 'partials/layout.html.twig' %}
{% block item %}
{% include 'partials/blog-item.html.twig' %}
{% endblock %}
{% block sidebar %}
{% include 'partials/sidebar.html.twig' %}
{% endblock %}
{% endembed %}
</section>
</section>
{% endblock %}

View File

@ -1,22 +0,0 @@
{% macro nav_loop(page, level) %}
{% import _self as macros %}
{% for p in page.children.visible %}
{% set active_page = (p.active or p.activeChild) ? 'active' : '' %}
{% if level > 0 %}
<li class="submenu">
<a href="{{ p.url }}" class="{{ active_page }} submenu">
{% else %}
<li>
<a href="{{ p.url }}" class="{{ active_page }}">
{% endif %}
{{ p.menu }}
</a>
{% if p.children.visible.count > 0 %}
<ul class="submenu">
{{ macros.nav_loop(p, level + 1) }}
</ul>
{% endif %}
</li>
{% endfor %}
{% endmacro %}

Some files were not shown because too many files have changed in this diff Show More