web content
This commit is contained in:
parent
4bbf9ce509
commit
6f693007bd
114
web/components/intro/render.v
Normal file
114
web/components/intro/render.v
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
module intro
|
||||||
|
|
||||||
|
import freeflowuniverse.crystallib.core.playbook
|
||||||
|
|
||||||
|
pub struct Item {
|
||||||
|
pub mut:
|
||||||
|
title string
|
||||||
|
subtitle string
|
||||||
|
description string
|
||||||
|
background_image string
|
||||||
|
button_primary Button
|
||||||
|
button_secondary Button
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct Button {
|
||||||
|
pub mut:
|
||||||
|
text string
|
||||||
|
url string
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct Data {
|
||||||
|
pub mut:
|
||||||
|
items []Item
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const example_heroscript="
|
||||||
|
|
||||||
|
!!intro1.new name:'myintro'
|
||||||
|
|
||||||
|
!!intro1.myintro_add
|
||||||
|
title: 'Sepia'
|
||||||
|
description: '
|
||||||
|
Made for photographers, photo studios, design agencies.
|
||||||
|
Create your own unique and beautiful photography website!
|
||||||
|
'
|
||||||
|
subtitle: 'Photography Portfolio Theme'
|
||||||
|
background_image: 'assets/img/intro/intro-10.jpg'
|
||||||
|
button_primary_text: 'Buy It Now!'
|
||||||
|
button_primary_url: 'https://example.com/learn-more'
|
||||||
|
button_secondary_text: 'Discover More'
|
||||||
|
button_secondary_url: 'albums-grid-fluid-2.html'
|
||||||
|
|
||||||
|
!!intro1.myintro_add
|
||||||
|
title: 'Sepia 2'
|
||||||
|
description: 'Made for photographers 2, photo studios, design agencies.<br>Create your own unique and beautiful photography website!'
|
||||||
|
subtitle: 'Photography Portfolio Theme'
|
||||||
|
background_image: 'assets/img/intro/intro-10.jpg'
|
||||||
|
button_primary_text: 'Buy It Now!'
|
||||||
|
button_primary_url: 'https://example.com/learn-more'
|
||||||
|
button_secondary_text: 'Discover More'
|
||||||
|
button_secondary_url: 'albums-grid-fluid-2.html'
|
||||||
|
"
|
||||||
|
|
||||||
|
@[params]
|
||||||
|
pub struct RenderArgs{
|
||||||
|
pub mut:
|
||||||
|
text string
|
||||||
|
args map[string]string
|
||||||
|
defaults bool
|
||||||
|
}
|
||||||
|
|
||||||
|
//will have all the results, key is in this case intro1.${name}
|
||||||
|
//this allows us to feed e.g. markdown to all renderers and then we get the data filled in what is found on page
|
||||||
|
|
||||||
|
pub fn render(args_ RenderArgs) !map[string]string{
|
||||||
|
mut args:=args_
|
||||||
|
|
||||||
|
mut result:=map[string]string{}
|
||||||
|
|
||||||
|
if args.text =="" && args.defaults{
|
||||||
|
args.text = example_heroscript
|
||||||
|
}
|
||||||
|
|
||||||
|
mut plbook := playbook.new(text: args.text)!
|
||||||
|
mut data := Data{}
|
||||||
|
|
||||||
|
actions0 := plbook.find(filter: 'intro1.new')!
|
||||||
|
for action0 in actions0{
|
||||||
|
mut p0 := action0.params
|
||||||
|
name := p0.get_default('name','default')!
|
||||||
|
key:="intro1.${name}"
|
||||||
|
|
||||||
|
// Process add_item actions
|
||||||
|
actions := plbook.find(filter: 'intro1.${name}_add')!
|
||||||
|
for action in actions {
|
||||||
|
mut p := action.params
|
||||||
|
|
||||||
|
item := Item{
|
||||||
|
title: p.get('title')!
|
||||||
|
subtitle: p.get('subtitle')!
|
||||||
|
description: p.get('description')!.replace("\n","<br>")
|
||||||
|
background_image: p.get('background_image')!
|
||||||
|
button_primary: Button{
|
||||||
|
text: p.get('button_primary_text')!
|
||||||
|
url: p.get('button_primary_url')!
|
||||||
|
}
|
||||||
|
button_secondary: Button{
|
||||||
|
text: p.get('button_secondary_text')!
|
||||||
|
url: p.get('button_secondary_url')!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
data.items << item
|
||||||
|
}
|
||||||
|
|
||||||
|
result[key]=$tmpl("templates/main.html")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
}
|
85
web/components/intro/templates/main.html
Normal file
85
web/components/intro/templates/main.html
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<!-- Begin intro section -->
|
||||||
|
<section id="tt-intro" class="slideshow-intro">
|
||||||
|
<div class="tt-intro-inner"> <!-- add/remove class "tt-wrap" to enable/disable element boxed layout (class "tt-boxed" is required in <body> tag! ) -->
|
||||||
|
<div class="gl-carousel-wrap no-padding"> <!-- Optional: use class "no-padding" to disable paddings -->
|
||||||
|
|
||||||
|
<!-- Begin content carousel (https://owlcarousel2.github.io/OwlCarousel2/)
|
||||||
|
====================================================================
|
||||||
|
* Use class "nav-outside" for outside nav (requires boxed layout).
|
||||||
|
* Use class "nav-outside-top" for outside top nav (requires enough space at the top of the carousel).
|
||||||
|
* Use class "nav-bottom-right" for bottom right nav.
|
||||||
|
* Use class "nav-rounded" for rounded nav.
|
||||||
|
* Use class "nav-light" to enable nav light style.
|
||||||
|
* Use class "dots-outside" for outside dots (requires enough space at the bottom of the carousel).
|
||||||
|
* Use class "dots-left", "dots-right" or "dots-center-right" to align dots.
|
||||||
|
* Use class "dots-rounded" for rounded dots.
|
||||||
|
* Use class "owl-mousewheel" to enable mousewheel support.
|
||||||
|
* Use class "cursor-grab" to enable cursor grab icon (no effect on links!).
|
||||||
|
* Use class "cc-hover-light", "cc-hover-dark" or "cc-hover-zoom" to enable carousel items hover effect.
|
||||||
|
* Use class "cc-height-1", "cc-height-2", "cc-height-3", "cc-height-4", "cc-height-5", "cc-height-6" or "cc-height-full" to set carousel height (do not use with data-autoheight="true"!!!).
|
||||||
|
* Use class "cc-height-m" to set full height for small screens (do not use with data-autoheight="true"!!!).
|
||||||
|
================================================================
|
||||||
|
* Available carousel data attributes:
|
||||||
|
data-items="5".......................(items visible on desktop)
|
||||||
|
data-tablet-landscape="4"............(items visible on mobiles)
|
||||||
|
data-tablet-portrait="3".............(items visible on mobiles)
|
||||||
|
data-mobile-landscape="2"............(items visible on tablets)
|
||||||
|
data-mobile-portrait="1".............(items visible on tablets)
|
||||||
|
data-loop="true".....................(true/false)
|
||||||
|
data-margin="10".....................(space between items)
|
||||||
|
data-center="true"...................(true/false)
|
||||||
|
data-start-position="0"..............(item start position)
|
||||||
|
data-animate-in="fadeIn".............(fade-in animation)
|
||||||
|
data-animate-out="fadeOut"...........(fade-out animation)
|
||||||
|
data-mouse-drag="false"..............(true/false)
|
||||||
|
data-touch-drag="false"..............(true/false)
|
||||||
|
data-autoheight="true"...............(true/false)
|
||||||
|
data-autoplay="true".................(true/false)
|
||||||
|
data-autoplay-timeout="5000".........(milliseconds)
|
||||||
|
data-autoplay-hover-pause="true".....(true/false)
|
||||||
|
data-autoplay-speed="800"............(milliseconds)
|
||||||
|
data-drag-end-speed="800"............(milliseconds)
|
||||||
|
data-nav="true"......................(true/false)
|
||||||
|
data-nav-speed="800".................(milliseconds)
|
||||||
|
data-dots="false"....................(true/false)
|
||||||
|
data-dots-speed="800"................(milliseconds)
|
||||||
|
-->
|
||||||
|
<div class="owl-carousel cc-height-5 cursor-grab dots-right bg-dark" data-items="1" data-loop="true" data-nav="true" data-nav-speed="500" data-dots-speed="500" data-autoplay="true" data-autoplay-timeout="8000" data-autoplay-speed="500" data-autoplay-hover-pause="true">
|
||||||
|
@for item in data.items
|
||||||
|
<!-- Begin carousel item -->
|
||||||
|
<div class="cc-item">
|
||||||
|
<!-- Element cover -->
|
||||||
|
<span class="cover bg-transparent-3-dark"></span>
|
||||||
|
|
||||||
|
<!-- cc image -->
|
||||||
|
<div class="cc-image bg-image" style="background-image: url(@{item.background_image}); background-position: 50% 50%;"></div>
|
||||||
|
|
||||||
|
<!-- Begin intro caption
|
||||||
|
=========================
|
||||||
|
* Position classes: "top-left", "top-center", "top-right", "center-left", "center", "center-right", "bottom-left", "bottom-center", "bottom-right".
|
||||||
|
* Size classes: "intro-caption-xs", "intro-caption-sm", "intro-caption-lg", "intro-caption-xlg", "intro-caption-xxlg".
|
||||||
|
-->
|
||||||
|
<div class="intro-caption caption-animate intro-caption-xxlg center-left">
|
||||||
|
<h1 class="intro-title">@{item.title}</h1>
|
||||||
|
<h2 class="intro-subtitle">@{item.subtitle}</h2>
|
||||||
|
|
||||||
|
<p class="intro-description max-width-650">
|
||||||
|
@{item.description}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="margin-top-30">
|
||||||
|
<a href="@{item.button_primary.url}" class="btn btn-primary margin-top-5 margin-right-10" target="_blank">@{item.button_primary.text}</a>
|
||||||
|
<a href="@{item.button_secondary.url}" class="btn btn-white-bordered margin-top-5">@{item.button_secondary.text}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End intro caption -->
|
||||||
|
</div>
|
||||||
|
<!-- End carousel item -->
|
||||||
|
@end
|
||||||
|
</div>
|
||||||
|
<!-- End content carousel -->
|
||||||
|
|
||||||
|
</div> <!-- /.gl-carousel-wrap -->
|
||||||
|
</div> <!-- /.tt-intro-inner -->
|
||||||
|
</section>
|
||||||
|
<!-- End intro section -->
|
@ -1,226 +1,10 @@
|
|||||||
|
|
||||||
@include 'header'
|
@include 'partials/header'
|
||||||
|
|
||||||
<!-- *************************************
|
|
||||||
*********** Begin body content ***********
|
|
||||||
************************************** -->
|
|
||||||
<div id="body-content">
|
<div id="body-content">
|
||||||
|
|
||||||
|
|
||||||
<!-- ==========================
|
@{content["intro1.myintro"]}
|
||||||
///// Begin intro section /////
|
|
||||||
=========================== -->
|
|
||||||
<section id="tt-intro" class="slideshow-intro">
|
|
||||||
<div class="tt-intro-inner"> <!-- add/remove class "tt-wrap" to enable/disable element boxed layout (class "tt-boxed" is required in <body> tag! ) -->
|
|
||||||
<div class="gl-carousel-wrap no-padding"> <!-- Optional: use class "no-padding" to disable paddings -->
|
|
||||||
|
|
||||||
<!-- Begin content carousel (https://owlcarousel2.github.io/OwlCarousel2/)
|
|
||||||
====================================================================
|
|
||||||
* Use class "nav-outside" for outside nav (requires boxed layout).
|
|
||||||
* Use class "nav-outside-top" for outside top nav (requires enough space at the top of the carousel).
|
|
||||||
* Use class "nav-bottom-right" for bottom right nav.
|
|
||||||
* Use class "nav-rounded" for rounded nav.
|
|
||||||
* Use class "nav-light" to enable nav light style.
|
|
||||||
* Use class "dots-outside" for outside dots (requires enough space at the bottom of the carousel).
|
|
||||||
* Use class "dots-left", "dots-right" or "dots-center-right" to align dots.
|
|
||||||
* Use class "dots-rounded" for rounded dots.
|
|
||||||
* Use class "owl-mousewheel" to enable mousewheel support.
|
|
||||||
* Use class "cursor-grab" to enable cursor grab icon (no effect on links!).
|
|
||||||
* Use class "cc-hover-light", "cc-hover-dark" or "cc-hover-zoom" to enable carousel items hover effect.
|
|
||||||
* Use class "cc-height-1", "cc-height-2", "cc-height-3", "cc-height-4", "cc-height-5", "cc-height-6" or "cc-height-full" to set carousel height (do not use with data-autoheight="true"!!!).
|
|
||||||
* Use class "cc-height-m" to set full height for small screens (do not use with data-autoheight="true"!!!).
|
|
||||||
================================================================
|
|
||||||
* Available carousel data attributes:
|
|
||||||
data-items="5".......................(items visible on desktop)
|
|
||||||
data-tablet-landscape="4"............(items visible on mobiles)
|
|
||||||
data-tablet-portrait="3".............(items visible on mobiles)
|
|
||||||
data-mobile-landscape="2"............(items visible on tablets)
|
|
||||||
data-mobile-portrait="1".............(items visible on tablets)
|
|
||||||
data-loop="true".....................(true/false)
|
|
||||||
data-margin="10".....................(space between items)
|
|
||||||
data-center="true"...................(true/false)
|
|
||||||
data-start-position="0"..............(item start position)
|
|
||||||
data-animate-in="fadeIn".............(fade-in animation)
|
|
||||||
data-animate-out="fadeOut"...........(fade-out animation)
|
|
||||||
data-mouse-drag="false"..............(true/false)
|
|
||||||
data-touch-drag="false"..............(true/false)
|
|
||||||
data-autoheight="true"...............(true/false)
|
|
||||||
data-autoplay="true".................(true/false)
|
|
||||||
data-autoplay-timeout="5000".........(milliseconds)
|
|
||||||
data-autoplay-hover-pause="true".....(true/false)
|
|
||||||
data-autoplay-speed="800"............(milliseconds)
|
|
||||||
data-drag-end-speed="800"............(milliseconds)
|
|
||||||
data-nav="true"......................(true/false)
|
|
||||||
data-nav-speed="800".................(milliseconds)
|
|
||||||
data-dots="false"....................(true/false)
|
|
||||||
data-dots-speed="800"................(milliseconds)
|
|
||||||
-->
|
|
||||||
<div class="owl-carousel cc-height-5 cursor-grab dots-right bg-dark" data-items="1" data-loop="true" data-nav="true" data-nav-speed="500" data-dots-speed="500" data-autoplay="true" data-autoplay-timeout="8000" data-autoplay-speed="500" data-autoplay-hover-pause="true">
|
|
||||||
|
|
||||||
<!-- Begin carousel item
|
|
||||||
========================= -->
|
|
||||||
<div class="cc-item">
|
|
||||||
|
|
||||||
<!-- Element cover -->
|
|
||||||
<span class="cover bg-transparent-3-dark"></span>
|
|
||||||
|
|
||||||
<!-- cc image -->
|
|
||||||
<div class="cc-image bg-image" style="background-image: url(assets/img/intro/intro-10.jpg); background-position: 50% 50%;"></div>
|
|
||||||
|
|
||||||
<!-- Begin intro caption
|
|
||||||
=========================
|
|
||||||
* Position classes: "top-left", "top-center", "top-right", "center-left", "center", "center-right", "bottom-left", "bottom-center", "bottom-right".
|
|
||||||
* Size classes: "intro-caption-xs", "intro-caption-sm", "intro-caption-lg", "intro-caption-xlg", "intro-caption-xxlg".
|
|
||||||
-->
|
|
||||||
<div class="intro-caption caption-animate intro-caption-xxlg center-left">
|
|
||||||
<h1 class="intro-title">Sepia</h1>
|
|
||||||
<h2 class="intro-subtitle">Photography Portfolio Theme</h2>
|
|
||||||
|
|
||||||
<p class="intro-description max-width-650">
|
|
||||||
Made for photographers, photo studios, design agencies. <br>
|
|
||||||
Create your own unique and beautiful photography website!
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="margin-top-30">
|
|
||||||
<a href="https://themeforest.net/item/sepia-photography-portfolio-html-website-template/20195226?ref=Themetorium" class="btn btn-primary margin-top-5 margin-right-10" target="_blank">Buy It Now!</a>
|
|
||||||
<a href="albums-grid-fluid-2.html" class="btn btn-white-bordered margin-top-5">Discover More</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- End intro caption -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End carousel item -->
|
|
||||||
|
|
||||||
<!-- Begin carousel item
|
|
||||||
========================= -->
|
|
||||||
<div class="cc-item">
|
|
||||||
|
|
||||||
<!-- Element cover -->
|
|
||||||
<span class="cover bg-transparent-3-dark"></span>
|
|
||||||
|
|
||||||
<!-- cc image -->
|
|
||||||
<div class="cc-image bg-image" style="background-image: url(assets/img/intro/intro-11.jpg); background-position: 50% 50%;"></div>
|
|
||||||
|
|
||||||
<!-- Begin intro caption
|
|
||||||
=========================
|
|
||||||
* Position classes: "top-left", "top-center", "top-right", "center-left", "center", "center-right", "bottom-left", "bottom-center", "bottom-right".
|
|
||||||
* Size classes: "intro-caption-xs", "intro-caption-sm", "intro-caption-lg", "intro-caption-xlg", "intro-caption-xxlg".
|
|
||||||
-->
|
|
||||||
<div class="intro-caption caption-animate intro-caption-xxlg center-left">
|
|
||||||
<h1 class="intro-title">Creative</h1>
|
|
||||||
<h2 class="intro-subtitle">Photography Portfolio Theme</h2>
|
|
||||||
|
|
||||||
<p class="intro-description max-width-650">
|
|
||||||
Made for photographers, photo studios, design agencies. <br>
|
|
||||||
Create your own unique and beautiful photography website!
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="margin-top-30">
|
|
||||||
<a href="https://themeforest.net/item/sepia-photography-portfolio-html-website-template/20195226?ref=Themetorium" class="btn btn-primary margin-top-5 margin-right-10" target="_blank">Buy It Now!</a>
|
|
||||||
<a href="albums-grid-fluid-2.html" class="btn btn-white-bordered margin-top-5">Discover More</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- End intro caption -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End carousel item -->
|
|
||||||
|
|
||||||
<!-- Begin carousel item
|
|
||||||
========================= -->
|
|
||||||
<div class="cc-item">
|
|
||||||
|
|
||||||
<!-- Element cover -->
|
|
||||||
<span class="cover bg-transparent-3-dark"></span>
|
|
||||||
|
|
||||||
<!-- cc image -->
|
|
||||||
<div class="cc-image bg-image" style="background-image: url(assets/img/intro/intro-12.jpg); background-position: 50% 50%;"></div>
|
|
||||||
|
|
||||||
<!-- Begin intro caption
|
|
||||||
=========================
|
|
||||||
* Position classes: "top-left", "top-center", "top-right", "center-left", "center", "center-right", "bottom-left", "bottom-center", "bottom-right".
|
|
||||||
* Size classes: "intro-caption-xs", "intro-caption-sm", "intro-caption-lg", "intro-caption-xlg", "intro-caption-xxlg".
|
|
||||||
-->
|
|
||||||
<div class="intro-caption caption-animate intro-caption-xxlg center-left">
|
|
||||||
<h1 class="intro-title">Powerful</h1>
|
|
||||||
<h2 class="intro-subtitle">Photography Portfolio Theme</h2>
|
|
||||||
|
|
||||||
<p class="intro-description max-width-650">
|
|
||||||
Made for photographers, photo studios, design agencies. <br>
|
|
||||||
Create your own unique and beautiful photography website!
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="margin-top-30">
|
|
||||||
<a href="https://themeforest.net/item/sepia-photography-portfolio-html-website-template/20195226?ref=Themetorium" class="btn btn-primary margin-top-5 margin-right-10" target="_blank">Buy It Now!</a>
|
|
||||||
<a href="albums-grid-fluid-2.html" class="btn btn-white-bordered margin-top-5">Discover More</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- End intro caption -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End carousel item -->
|
|
||||||
|
|
||||||
<!-- Begin carousel item
|
|
||||||
========================= -->
|
|
||||||
<div class="cc-item">
|
|
||||||
|
|
||||||
<!-- Element cover -->
|
|
||||||
<span class="cover bg-transparent-3-dark"></span>
|
|
||||||
|
|
||||||
<!-- cc image -->
|
|
||||||
<div class="cc-image bg-image" style="background-image: url(assets/img/intro/intro-13.jpg); background-position: 50% 50%;"></div>
|
|
||||||
|
|
||||||
<!-- Begin intro caption
|
|
||||||
=========================
|
|
||||||
* Position classes: "top-left", "top-center", "top-right", "center-left", "center", "center-right", "bottom-left", "bottom-center", "bottom-right".
|
|
||||||
* Size classes: "intro-caption-xs", "intro-caption-sm", "intro-caption-lg", "intro-caption-xlg", "intro-caption-xxlg".
|
|
||||||
-->
|
|
||||||
<div class="intro-caption caption-animate intro-caption-xxlg center-left">
|
|
||||||
<h1 class="intro-title">Perfect</h1>
|
|
||||||
<h2 class="intro-subtitle">Photography Portfolio Theme</h2>
|
|
||||||
|
|
||||||
<p class="intro-description max-width-650">
|
|
||||||
Made for photographers, photo studios, design agencies. <br>
|
|
||||||
Create your own unique and beautiful photography website!
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="margin-top-30">
|
|
||||||
<a href="https://themeforest.net/item/sepia-photography-portfolio-html-website-template/20195226?ref=Themetorium" class="btn btn-primary margin-top-5 margin-right-10" target="_blank">Buy It Now!</a>
|
|
||||||
<a href="albums-grid-fluid-2.html" class="btn btn-white-bordered margin-top-5">Discover More</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- End intro caption -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End carousel item -->
|
|
||||||
|
|
||||||
<!-- Begin carousel item
|
|
||||||
========================= -->
|
|
||||||
<!-- <div class="cc-item">
|
|
||||||
<a class="owl-video" href="https://vimeo.com/7282791"></a>
|
|
||||||
|
|
||||||
<div class="intro-caption caption-animate intro-caption-xxlg center-left">
|
|
||||||
<h1 class="intro-title">Sepia</h1>
|
|
||||||
<h2 class="intro-subtitle">Photography Portfolio Theme</h2>
|
|
||||||
|
|
||||||
<p class="intro-description max-width-650">
|
|
||||||
Made for photographers, photo studios, design agencies. <br>
|
|
||||||
Create your own unique and beautiful photography website!
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="margin-top-30">
|
|
||||||
<a href="https://themeforest.net/item/sepia-photography-portfolio-html-website-template/20195226?ref=Themetorium" class="btn btn-primary margin-top-5 margin-right-10" target="_blank">Buy It Now!</a>
|
|
||||||
<a href="albums-grid-fluid-2.html" class="btn btn-white-bordered margin-top-5">Discover More</a>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
<!-- End carousel item -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End content carousel -->
|
|
||||||
|
|
||||||
</div> <!-- /.gl-carousel-wrap -->
|
|
||||||
</div> <!-- /.tt-intro-inner -->
|
|
||||||
</section>
|
|
||||||
<!-- End intro section -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- =============================
|
<!-- =============================
|
||||||
@ -1859,142 +1643,16 @@
|
|||||||
</section>
|
</section>
|
||||||
<!-- End call to action section -->
|
<!-- End call to action section -->
|
||||||
|
|
||||||
|
@include 'partials/footer'
|
||||||
<!-- ===========================
|
|
||||||
///// Begin footer section /////
|
|
||||||
================================
|
|
||||||
* Use class "footer-dark" to enable dark footer.
|
|
||||||
* Use class "no-margin-top" if needed.
|
|
||||||
-->
|
|
||||||
<section id="footer" class="footer-dark no-margin-top">
|
|
||||||
<div class="footer-inner">
|
|
||||||
<div class="footer-container tt-wrap">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-3">
|
|
||||||
|
|
||||||
<!-- Begin footer logo -->
|
|
||||||
<div id="footer-logo">
|
|
||||||
<a href="index.html" class="logo-dark"><img src="assets/img/logo-dark.png" alt="logo"></a>
|
|
||||||
<a href="index.html" class="logo-light"><img src="assets/img/logo-light.png" alt="logo"></a>
|
|
||||||
|
|
||||||
<!-- for small screens -->
|
|
||||||
<a href="index.html" class="logo-dark-m"><img src="assets/img/logo-dark-m.png" alt="logo"></a>
|
|
||||||
<a href="index.html" class="logo-light-m"><img src="assets/img/logo-light-m.png" alt="logo"></a>
|
|
||||||
</div>
|
|
||||||
<!-- End footer logo -->
|
|
||||||
|
|
||||||
</div> <!-- /.col -->
|
|
||||||
|
|
||||||
<div class="col-md-5">
|
|
||||||
|
|
||||||
<!-- Begin footer text -->
|
|
||||||
<div class="footer-text">
|
|
||||||
<h4>- Creative Photo Studio</h4>
|
|
||||||
Sed non auctor magna. Nunc eu ultrices orci. Donec commodo ligula in massa ultricies volutpat. Fusce vel cursus lectus. Cras commodo odio mi, eu cursus nibh iaculis ut.
|
|
||||||
</div>
|
|
||||||
<!-- End footer text -->
|
|
||||||
|
|
||||||
</div> <!-- /.col -->
|
|
||||||
|
|
||||||
<div class="col-md-4">
|
|
||||||
|
|
||||||
<!-- Begin social buttons -->
|
|
||||||
<div class="social-buttons">
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://www.facebook.com/themetorium" class="btn btn-social-min btn-default btn-rounded-full" title="Follow me on Facebook" target="_blank"><i class="fab fa-facebook-f"></i></a></li>
|
|
||||||
<li><a href="https://twitter.com/Themetorium" class="btn btn-social-min btn-default btn-rounded-full" title="Follow me on Twitter" target="_blank"><i class="fab fa-twitter"></i></a></li>
|
|
||||||
<li><a href="https://plus.google.com/+SiiliOnu" class="btn btn-social-min btn-default btn-rounded-full" title="Follow me on Google+" target="_blank"><i class="fab fa-google-plus-g"></i></a></li>
|
|
||||||
<li><a href="https://www.pinterest.com/themetorium" class="btn btn-social-min btn-default btn-rounded-full" title="Follow me on Pinterest" target="_blank"><i class="fab fa-pinterest-p"></i></a></li>
|
|
||||||
<li><a href="https://dribbble.com/Themetorium" class="btn btn-social-min btn-default btn-rounded-full" title="Follow me on Dribbble" target="_blank"><i class="fab fa-dribbble"></i></a></li>
|
|
||||||
<li><a href="contact.html" class="btn btn-social-min btn-default btn-rounded-full" title="Drop me a line" target="_blank"><i class="fas fa-envelope"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<!-- End social buttons -->
|
|
||||||
|
|
||||||
<!-- Begin footer subscribe form -->
|
|
||||||
<form id="footer-subscribe-form" class="form-btn-inside">
|
|
||||||
<div class="form-group">
|
|
||||||
<input type="email" class="form-control no-bg" id="footer-subscribe" name="subscribe" placeholder="Subscribe. Enter your email address..." required="">
|
|
||||||
<button type="submit"><i class="fas fa-paper-plane"></i></button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<!-- End footer subscribe form -->
|
|
||||||
|
|
||||||
</div> <!-- /.col -->
|
|
||||||
|
|
||||||
</div> <!-- /.row -->
|
|
||||||
</div> <!-- /.footer-container -->
|
|
||||||
|
|
||||||
<div class="footer-bottom">
|
|
||||||
<div class="footer-container tt-wrap">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-push-6">
|
|
||||||
|
|
||||||
<!-- Begin footer menu -->
|
|
||||||
<ul class="footer-menu">
|
|
||||||
<li><a href="index.html">Home</a></li>
|
|
||||||
<li><a href="about-me.html">About</a></li>
|
|
||||||
<li><a href="albums-grid-fluid-2.html">Portfolio</a></li>
|
|
||||||
<li><a href="blog-list-grid.html">Blog</a></li>
|
|
||||||
<li><a href="page-faq.html">FAQ</a></li>
|
|
||||||
<li><a href="contact.html">Contact</a></li>
|
|
||||||
</ul>
|
|
||||||
<!-- End footer menu -->
|
|
||||||
|
|
||||||
</div> <!-- /.col -->
|
|
||||||
|
|
||||||
<div class="col-md-6 col-md-pull-6">
|
|
||||||
|
|
||||||
<!-- Begin footer copyright -->
|
|
||||||
<div class="footer-copyright">
|
|
||||||
<p>© Sepia 2017 / All rights reserved</p>
|
|
||||||
<p>Design by: <a href="https://themeforest.net/item/sepia-photography-portfolio-html-website-template/20195226?ref=Themetorium" target="_blank">Themetorium</a></p>
|
|
||||||
</div>
|
|
||||||
<!-- End footer copyright -->
|
|
||||||
|
|
||||||
</div> <!-- /.col -->
|
|
||||||
|
|
||||||
</div> <!-- /.row -->
|
|
||||||
</div> <!-- /.footer-container -->
|
|
||||||
</div> <!-- /.footer-bottom -->
|
|
||||||
|
|
||||||
</div> <!-- /.footer-inner -->
|
|
||||||
|
|
||||||
<!-- Scroll to top button -->
|
|
||||||
<a href="#body" class="scrolltotop sm-scroll" title="Scroll to top"><i class="fas fa-chevron-up"></i></a>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
<!-- End footer section -->
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- End body content -->
|
<!-- End body content -->
|
||||||
|
|
||||||
|
|
||||||
|
@include 'partials/scripts'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ====================
|
|
||||||
///// Scripts below /////
|
|
||||||
===================== -->
|
|
||||||
|
|
||||||
<!-- Core JS -->
|
|
||||||
<script src="assets/vendor/jquery/jquery.min.js"></script> <!-- jquery JS (https://jquery.com) -->
|
|
||||||
<script src="assets/vendor/bootstrap/js/bootstrap.min.js"></script> <!-- bootstrap JS (http://getbootstrap.com) -->
|
|
||||||
|
|
||||||
<!-- Libs and Plugins JS -->
|
|
||||||
<script src="assets/vendor/animsition/js/animsition.min.js"></script> <!-- Animsition JS (http://git.blivesta.com/animsition/) -->
|
|
||||||
<script src="assets/vendor/jquery.easing.min.js"></script> <!-- Easing JS (http://gsgd.co.uk/sandbox/jquery/easing/) -->
|
|
||||||
<script src="assets/vendor/isotope.pkgd.min.js"></script> <!-- Isotope JS (http://isotope.metafizzy.co) -->
|
|
||||||
<script src="assets/vendor/imagesloaded.pkgd.min.js"></script> <!-- ImagesLoaded JS (https://github.com/desandro/imagesloaded) -->
|
|
||||||
<script src="assets/vendor/owl-carousel/js/owl.carousel.min.js"></script> <!-- Owl Carousel JS (https://owlcarousel2.github.io/OwlCarousel2/) -->
|
|
||||||
<script src="assets/vendor/jquery.mousewheel.min.js"></script> <!-- A jQuery plugin that adds cross browser mouse wheel support (https://github.com/jquery/jquery-mousewheel) -->
|
|
||||||
<script src="assets/vendor/ytplayer/js/jquery.mb.YTPlayer.min.js"></script> <!-- YTPlayer JS (more info: https://github.com/pupunzi/jquery.mb.YTPlayer) -->
|
|
||||||
|
|
||||||
<script src="assets/vendor/lightgallery/js/lightgallery-all.min.js"></script> <!-- lightGallery Plugins JS (http://sachinchoolur.github.io/lightGallery) -->
|
|
||||||
|
|
||||||
<!-- Theme master JS -->
|
|
||||||
<script src="assets/js/theme.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
106
web/templates/partials/footer.html
Normal file
106
web/templates/partials/footer.html
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
|
||||||
|
<!-- ===========================
|
||||||
|
///// Begin footer section /////
|
||||||
|
================================
|
||||||
|
* Use class "footer-dark" to enable dark footer.
|
||||||
|
* Use class "no-margin-top" if needed.
|
||||||
|
-->
|
||||||
|
<section id="footer" class="footer-dark no-margin-top">
|
||||||
|
<div class="footer-inner">
|
||||||
|
<div class="footer-container tt-wrap">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
|
||||||
|
<!-- Begin footer logo -->
|
||||||
|
<div id="footer-logo">
|
||||||
|
<a href="index.html" class="logo-dark"><img src="assets/img/logo-dark.png" alt="logo"></a>
|
||||||
|
<a href="index.html" class="logo-light"><img src="assets/img/logo-light.png" alt="logo"></a>
|
||||||
|
|
||||||
|
<!-- for small screens -->
|
||||||
|
<a href="index.html" class="logo-dark-m"><img src="assets/img/logo-dark-m.png" alt="logo"></a>
|
||||||
|
<a href="index.html" class="logo-light-m"><img src="assets/img/logo-light-m.png" alt="logo"></a>
|
||||||
|
</div>
|
||||||
|
<!-- End footer logo -->
|
||||||
|
|
||||||
|
</div> <!-- /.col -->
|
||||||
|
|
||||||
|
<div class="col-md-5">
|
||||||
|
|
||||||
|
<!-- Begin footer text -->
|
||||||
|
<div class="footer-text">
|
||||||
|
<h4>- Creative Photo Studio</h4>
|
||||||
|
Sed non auctor magna. Nunc eu ultrices orci. Donec commodo ligula in massa ultricies volutpat. Fusce vel cursus lectus. Cras commodo odio mi, eu cursus nibh iaculis ut.
|
||||||
|
</div>
|
||||||
|
<!-- End footer text -->
|
||||||
|
|
||||||
|
</div> <!-- /.col -->
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
|
||||||
|
<!-- Begin social buttons -->
|
||||||
|
<div class="social-buttons">
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://www.facebook.com/themetorium" class="btn btn-social-min btn-default btn-rounded-full" title="Follow me on Facebook" target="_blank"><i class="fab fa-facebook-f"></i></a></li>
|
||||||
|
<li><a href="https://twitter.com/Themetorium" class="btn btn-social-min btn-default btn-rounded-full" title="Follow me on Twitter" target="_blank"><i class="fab fa-twitter"></i></a></li>
|
||||||
|
<li><a href="https://plus.google.com/+SiiliOnu" class="btn btn-social-min btn-default btn-rounded-full" title="Follow me on Google+" target="_blank"><i class="fab fa-google-plus-g"></i></a></li>
|
||||||
|
<li><a href="https://www.pinterest.com/themetorium" class="btn btn-social-min btn-default btn-rounded-full" title="Follow me on Pinterest" target="_blank"><i class="fab fa-pinterest-p"></i></a></li>
|
||||||
|
<li><a href="https://dribbble.com/Themetorium" class="btn btn-social-min btn-default btn-rounded-full" title="Follow me on Dribbble" target="_blank"><i class="fab fa-dribbble"></i></a></li>
|
||||||
|
<li><a href="contact.html" class="btn btn-social-min btn-default btn-rounded-full" title="Drop me a line" target="_blank"><i class="fas fa-envelope"></i></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- End social buttons -->
|
||||||
|
|
||||||
|
<!-- Begin footer subscribe form -->
|
||||||
|
<form id="footer-subscribe-form" class="form-btn-inside">
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="email" class="form-control no-bg" id="footer-subscribe" name="subscribe" placeholder="Subscribe. Enter your email address..." required="">
|
||||||
|
<button type="submit"><i class="fas fa-paper-plane"></i></button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<!-- End footer subscribe form -->
|
||||||
|
|
||||||
|
</div> <!-- /.col -->
|
||||||
|
|
||||||
|
</div> <!-- /.row -->
|
||||||
|
</div> <!-- /.footer-container -->
|
||||||
|
|
||||||
|
<div class="footer-bottom">
|
||||||
|
<div class="footer-container tt-wrap">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 col-md-push-6">
|
||||||
|
|
||||||
|
<!-- Begin footer menu -->
|
||||||
|
<ul class="footer-menu">
|
||||||
|
<li><a href="index.html">Home</a></li>
|
||||||
|
<li><a href="about-me.html">About</a></li>
|
||||||
|
<li><a href="albums-grid-fluid-2.html">Portfolio</a></li>
|
||||||
|
<li><a href="blog-list-grid.html">Blog</a></li>
|
||||||
|
<li><a href="page-faq.html">FAQ</a></li>
|
||||||
|
<li><a href="contact.html">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
<!-- End footer menu -->
|
||||||
|
|
||||||
|
</div> <!-- /.col -->
|
||||||
|
|
||||||
|
<div class="col-md-6 col-md-pull-6">
|
||||||
|
|
||||||
|
<!-- Begin footer copyright -->
|
||||||
|
<div class="footer-copyright">
|
||||||
|
<p>© Sepia 2017 / All rights reserved</p>
|
||||||
|
<p>Design by: <a href="https://themeforest.net/item/sepia-photography-portfolio-html-website-template/20195226?ref=Themetorium" target="_blank">Themetorium</a></p>
|
||||||
|
</div>
|
||||||
|
<!-- End footer copyright -->
|
||||||
|
|
||||||
|
</div> <!-- /.col -->
|
||||||
|
|
||||||
|
</div> <!-- /.row -->
|
||||||
|
</div> <!-- /.footer-container -->
|
||||||
|
</div> <!-- /.footer-bottom -->
|
||||||
|
|
||||||
|
</div> <!-- /.footer-inner -->
|
||||||
|
|
||||||
|
<!-- Scroll to top button -->
|
||||||
|
<a href="#body" class="scrolltotop sm-scroll" title="Scroll to top"><i class="fas fa-chevron-up"></i></a>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
<!-- End footer section -->
|
22
web/templates/partials/scripts.html
Normal file
22
web/templates/partials/scripts.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
<!-- ====================
|
||||||
|
///// Scripts below /////
|
||||||
|
===================== -->
|
||||||
|
|
||||||
|
<!-- Core JS -->
|
||||||
|
<script src="assets/vendor/jquery/jquery.min.js"></script> <!-- jquery JS (https://jquery.com) -->
|
||||||
|
<script src="assets/vendor/bootstrap/js/bootstrap.min.js"></script> <!-- bootstrap JS (http://getbootstrap.com) -->
|
||||||
|
|
||||||
|
<!-- Libs and Plugins JS -->
|
||||||
|
<script src="assets/vendor/animsition/js/animsition.min.js"></script> <!-- Animsition JS (http://git.blivesta.com/animsition/) -->
|
||||||
|
<script src="assets/vendor/jquery.easing.min.js"></script> <!-- Easing JS (http://gsgd.co.uk/sandbox/jquery/easing/) -->
|
||||||
|
<script src="assets/vendor/isotope.pkgd.min.js"></script> <!-- Isotope JS (http://isotope.metafizzy.co) -->
|
||||||
|
<script src="assets/vendor/imagesloaded.pkgd.min.js"></script> <!-- ImagesLoaded JS (https://github.com/desandro/imagesloaded) -->
|
||||||
|
<script src="assets/vendor/owl-carousel/js/owl.carousel.min.js"></script> <!-- Owl Carousel JS (https://owlcarousel2.github.io/OwlCarousel2/) -->
|
||||||
|
<script src="assets/vendor/jquery.mousewheel.min.js"></script> <!-- A jQuery plugin that adds cross browser mouse wheel support (https://github.com/jquery/jquery-mousewheel) -->
|
||||||
|
<script src="assets/vendor/ytplayer/js/jquery.mb.YTPlayer.min.js"></script> <!-- YTPlayer JS (more info: https://github.com/pupunzi/jquery.mb.YTPlayer) -->
|
||||||
|
|
||||||
|
<script src="assets/vendor/lightgallery/js/lightgallery-all.min.js"></script> <!-- lightGallery Plugins JS (http://sachinchoolur.github.io/lightGallery) -->
|
||||||
|
|
||||||
|
<!-- Theme master JS -->
|
||||||
|
<script src="assets/js/theme.js"></script>
|
19
web/view.v
19
web/view.v
@ -2,13 +2,32 @@ module web
|
|||||||
|
|
||||||
//import freeflowuniverse.crystallib.osal
|
//import freeflowuniverse.crystallib.osal
|
||||||
import veb
|
import veb
|
||||||
|
import web1.components.intro
|
||||||
|
|
||||||
// import rand
|
// import rand
|
||||||
// import os
|
// import os
|
||||||
// import json
|
// import json
|
||||||
// import freeflowuniverse.crystallib.webserver.auth.jwt
|
// import freeflowuniverse.crystallib.webserver.auth.jwt
|
||||||
// import time
|
// import time
|
||||||
|
|
||||||
|
pub fn render(mut ctx Context) !map[string]string {
|
||||||
|
mut res:=map[string]string{}
|
||||||
|
res=intro.render(defaults:true)!
|
||||||
|
//todo: here we need to add all renders we support
|
||||||
|
// if true{
|
||||||
|
// println(res)
|
||||||
|
// exit(1)
|
||||||
|
// }
|
||||||
|
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
pub fn (app &App) index(mut ctx Context) veb.Result {
|
pub fn (app &App) index(mut ctx Context) veb.Result {
|
||||||
|
content:=render(mut ctx) or {
|
||||||
|
ctx.res.set_status(.unknown)
|
||||||
|
return ctx.html('<h1>ERROR!</h1>${err}')
|
||||||
|
}
|
||||||
return ctx.html($tmpl('./templates/index.html'))
|
return ctx.html($tmpl('./templates/index.html'))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user