page rendering, part 1
to complete page rendering, the default theme needed to be converted to use blade templating. rather than update the theme kit as a seperate progress, it will be integrated into this codebase so themes can be developed and tested in app. the basics for the theme kit are in place, so now conversion of the defualt theme can be completed. once the that is done, it can then be used to complete the rendering engine to export HTML files
4
.gitignore
vendored
|
@ -48,8 +48,8 @@ public/assets/images/*
|
|||
content/*
|
||||
!content/themes
|
||||
content/themes/*
|
||||
!content/themes/fipamo-default
|
||||
!content/themes/fipamo-default/*
|
||||
!content/themes/fipamo-default-v2
|
||||
!content/themes/fipamo-default-v2/*
|
||||
|
||||
*.DS_Store
|
||||
*.codekit3
|
||||
|
|
114
app/Http/Controllers/Theming/ThemeController.php
Normal file
|
@ -0,0 +1,114 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Theming;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Interfaces\PageRepositoryInterface;
|
||||
use App\Services\AuthService;
|
||||
use App\Services\ThemeService;
|
||||
use App\Services\SortingService;
|
||||
|
||||
class ThemeController extends Controller
|
||||
{
|
||||
protected PageRepositoryInterface $pages;
|
||||
protected AuthService $auth;
|
||||
protected ThemeService $themes;
|
||||
protected SortingService $sort;
|
||||
|
||||
public function __construct(
|
||||
PageRepositoryInterface $pageRepository,
|
||||
AuthService $authService,
|
||||
ThemeService $themeService,
|
||||
SortingService $sortService,
|
||||
) {
|
||||
$this->pages = $pageRepository;
|
||||
$this->auth = $authService;
|
||||
$this->themes = $themeService;
|
||||
$this->sort = $sortService;
|
||||
$theme = $this->themes->getCurrentTheme();
|
||||
$themeTestImagePath = '../public/theme/images/global/';
|
||||
$themeTestCSSPath = '../public/theme/css/theme/';
|
||||
$themeTestScriptsPath = '../public/theme/scripts/theme/';
|
||||
//TODO: Create assset service class to handle moving theme assets around
|
||||
//move assets to public for testing
|
||||
foreach (
|
||||
new \DirectoryIterator('../content/themes/' . $theme . '/assets/images/global/') as $file
|
||||
) {
|
||||
if ($file->isDot()) {
|
||||
continue;
|
||||
}
|
||||
//make theme directory if not present
|
||||
if (!is_dir($themeTestImagePath)) {
|
||||
mkdir($themeTestImagePath, 0755, true);
|
||||
}
|
||||
|
||||
if (!is_file($themeTestImagePath . $file->getFileName())) {
|
||||
copy(
|
||||
'../content/themes/' .
|
||||
$theme .
|
||||
'/assets/images/global/' .
|
||||
$file->getFileName(),
|
||||
$themeTestImagePath . $file->getFileName()
|
||||
);
|
||||
} else {
|
||||
//image is already there, so chill
|
||||
}
|
||||
//print $file->getFilename() . "\n";
|
||||
}
|
||||
//clear test theme css and script directories
|
||||
$styles = glob($themeTestCSSPath . '*'); // get all file names
|
||||
foreach ($styles as $file) { // iterate files
|
||||
if (is_file($file)) {
|
||||
unlink($file); // delete file
|
||||
}
|
||||
}
|
||||
$scripts = glob($themeTestScriptsPath . '*'); // get all file names
|
||||
foreach ($scripts as $file) { // iterate files
|
||||
if (is_file($file)) {
|
||||
unlink($file); // delete file
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
//copy theme assets to public
|
||||
$newcss = glob('../content/themes/' . $theme . '/assets/css/*');
|
||||
if (!is_dir($themeTestCSSPath)) {
|
||||
mkdir($themeTestCSSPath, 0755, true);
|
||||
}
|
||||
foreach ($newcss as $file) { // iterate files
|
||||
if (is_file($file)) {
|
||||
$path = explode('/', $file);
|
||||
copy($file, $themeTestCSSPath . $path[6]);
|
||||
}
|
||||
}
|
||||
$newjs = glob('../content/themes/' . $theme . '/assets/scripts/*');
|
||||
if (!is_dir($themeTestScriptsPath)) {
|
||||
mkdir($themeTestScriptsPath, 0755, true);
|
||||
}
|
||||
foreach ($newjs as $file) { // iterate files
|
||||
if (is_file($file)) {
|
||||
$path = explode('/', $file);
|
||||
copy($file, $themeTestScriptsPath . $path[6]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getView($view)
|
||||
{
|
||||
if ($this->auth::status()) {
|
||||
$page = $this->pages->getById('09E5A362-BA31-4AE2-9DEE-C93DFBE005C3')->first();
|
||||
$options = $this->sort->page($page);
|
||||
return view('fipamo-default-v2.base', [
|
||||
"debug" => "true",
|
||||
"theme" => 'fipamo-default-v2',
|
||||
"status" => $this->auth::status(),
|
||||
"title" => "THEME PAGE",
|
||||
"page" => $page,
|
||||
"info" => $options['info'],
|
||||
]);
|
||||
} else {
|
||||
return redirect('dashboard/start');
|
||||
}
|
||||
}
|
||||
}
|
|
@ -57,7 +57,14 @@ class FipamoServiceProvider extends ServiceProvider
|
|||
});
|
||||
|
||||
$this->app->bind(RenderService::class, function ($app) {
|
||||
return new RenderService();
|
||||
return new RenderService(
|
||||
new SortingService(
|
||||
new SettingsService(new DocService()),
|
||||
new ContentService(),
|
||||
new StringService(),
|
||||
),
|
||||
new SettingsService(new DocService())
|
||||
);
|
||||
});
|
||||
|
||||
$this->app->bind(SortingService::class, function ($app) {
|
||||
|
|
|
@ -4,7 +4,49 @@ namespace App\Services;
|
|||
|
||||
class RenderService
|
||||
{
|
||||
public function __construct()
|
||||
private $sort;
|
||||
private $settings;
|
||||
private $pageInfo;
|
||||
private $menu;
|
||||
private $background;
|
||||
|
||||
public function __construct(SortingService $sortingService, SettingsService $settingsService)
|
||||
{
|
||||
$this->sort = $sortingService;
|
||||
$this->settings = $settingsService;
|
||||
}
|
||||
|
||||
public function tag()
|
||||
{
|
||||
$list = $this->sort->tags();
|
||||
foreach ($list as $item) {
|
||||
$template = 'tags.twig';
|
||||
$pageOptions = [
|
||||
'title' => 'Pages Tagged as ' . $item['tag_name'],
|
||||
'background' => $this->pageInfo['image'],
|
||||
'tag_list' => $item['pages'],
|
||||
'info' => $this->pageInfo,
|
||||
'menu' => $this->menu,
|
||||
'media' => [['file' => $this->pageInfo['image'], 'type' => trim(pathinfo($this->pageInfo['image'], PATHINFO_EXTENSION))]],
|
||||
];
|
||||
|
||||
$html = $this->twig->render($template, $pageOptions);
|
||||
|
||||
$location = '../public/tags/' . $item['slug'] . '.html';
|
||||
|
||||
//if tags folder doesn't exist, make it
|
||||
if (!is_dir('../public/tags')) {
|
||||
mkdir('../public/tags', 0755, true);
|
||||
} else {
|
||||
}
|
||||
|
||||
if (!is_file($location)) {
|
||||
file_put_contents($location, $html);
|
||||
} else {
|
||||
($new = fopen($location, 'w')) or die('Unable to open file!');
|
||||
fwrite($new, $html);
|
||||
fclose($new);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -223,7 +223,7 @@ class SortingService
|
|||
'files' => $page['docs'],
|
||||
];
|
||||
}
|
||||
var_dump($pageOptions);
|
||||
//return $pageOptions;
|
||||
//var_dump($pageOptions);
|
||||
return $pageOptions;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,11 @@ class ThemeService
|
|||
}
|
||||
}
|
||||
|
||||
public function getCurrentTheme()
|
||||
{
|
||||
return $this->settings->getGlobal()['theme'];
|
||||
}
|
||||
|
||||
public function getThemes()
|
||||
{
|
||||
return $this->themes;
|
||||
|
|
|
@ -15,6 +15,7 @@ return [
|
|||
|
||||
'paths' => [
|
||||
resource_path('views'),
|
||||
realpath(base_path('content/themes')),
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
37
content/themes/fipamo-default-v2/archive.twig
Normal file
|
@ -0,0 +1,37 @@
|
|||
{% extends "frame.twig" %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
<article>
|
||||
<h1>{{ title }}</h1>
|
||||
|
||||
<div role="archives">
|
||||
{% for item in archives %}
|
||||
<div role="archive-item">
|
||||
<h2>{{ item.year }}</h2>
|
||||
{% for data in item.year_data %}
|
||||
<div role="archive-month">
|
||||
<h3>{{ data.full_month }}</h3>
|
||||
{% for page in data.pages %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/"~item.year~"/"~data.month~"/"~page.slug }}">{{ page.title }}</a><br/>
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.year~"/"~data.month~"/"~page.slug~".html" }}">{{ page.title }}</a><br/>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.year~"/"~data.month~"/"~page.slug~".html" }}">{{ page.title }}</a><br/>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</article>
|
||||
{% endblock %}
|
9
content/themes/fipamo-default-v2/assets/css/color.css
Normal file
|
@ -0,0 +1,9 @@
|
|||
/* BASE COLORS */
|
||||
:root {
|
||||
--primary: #1d3040;
|
||||
--secondary: #fc6399;
|
||||
--tertiary: #f5ab35;
|
||||
--highlight: #63fcc6ff;
|
||||
--white: #ebe5d4;
|
||||
--black: #32302f;
|
||||
}
|
202
content/themes/fipamo-default-v2/assets/css/frame.css
Normal file
|
@ -0,0 +1,202 @@
|
|||
html {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
font: 400 1.2em/1.4em var(--base-type);
|
||||
}
|
||||
|
||||
html body {
|
||||
background: var(--white);
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
perspective: 1px;
|
||||
transform-style: preserve-3d;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
/* GLOBALS */
|
||||
|
||||
a {
|
||||
color: var(--primary);
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid var(--secondary);
|
||||
transition: all 0.2s linear;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
border-bottom: 1px solid var(--highlight);
|
||||
}
|
||||
|
||||
sup {
|
||||
background: var(--black);
|
||||
color: var(--white);
|
||||
padding: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
pre,
|
||||
code {
|
||||
background: var(--black);
|
||||
color: var(--highlight);
|
||||
border-radius: 3px;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
/* HEADER */
|
||||
|
||||
header {
|
||||
background: var(--primary);
|
||||
height: 90%;
|
||||
width: 100%;
|
||||
border-top: var(--white) 3px solid;
|
||||
}
|
||||
|
||||
/* HEADER -> Slideshow */
|
||||
|
||||
header > div[role="slide-show"] {
|
||||
width: 100%;
|
||||
height: 90%;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
header > div[role="slide-show"] > div[role="slide"] {
|
||||
transition: all 0.7s linear;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.hide {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.show {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
header > div[role="slide-show"] > div[role="slide"] > video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* HEADER -> Navigation */
|
||||
|
||||
nav {
|
||||
width: 97%;
|
||||
margin: 10px auto;
|
||||
display: grid;
|
||||
grid-template-columns: 50% 50%;
|
||||
z-index: 1000;
|
||||
position: relative;
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
nav img {
|
||||
width: 50px;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
nav div[role="nav-right"] {
|
||||
margin-left: auto;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
nav a[role="home-link"] {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
nav a[role="menu-link"] {
|
||||
background: var(--secondary);
|
||||
margin-bottom: 14px;
|
||||
padding: 3px;
|
||||
border-radius: 2px;
|
||||
display: inline-block;
|
||||
font-size: 0.8em;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
/* MAIN CONTENT */
|
||||
main {
|
||||
z-index: 2;
|
||||
background: var(--white);
|
||||
line-height: 30px;
|
||||
font-weight: lighter;
|
||||
width: 100%;
|
||||
color: var(--black);
|
||||
}
|
||||
|
||||
main > article {
|
||||
position: relative;
|
||||
background: var(--white);
|
||||
vertical-align: top;
|
||||
color: var(--black);
|
||||
padding: 0 15%;
|
||||
}
|
||||
|
||||
main > article > div[role="archives"] {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
column-gap: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
main article div[role="archives"] h1,
|
||||
main article div[role="archives"] h2,
|
||||
main article div[role="archives"] h3 {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
main > section {
|
||||
background: var(--primary);
|
||||
display: grid;
|
||||
grid-template-columns: 50% 50%;
|
||||
padding: 0 15%;
|
||||
max-width: 1000px;
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
main > section > div {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
main > section[role="page-meta"] > div a {
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
/* FOOTER */
|
||||
footer {
|
||||
background: var(--highlight);
|
||||
padding: 30px 15%;
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
/* RESPONSIVE */
|
||||
|
||||
@media only screen and (max-width: 640px) {
|
||||
main > article {
|
||||
padding: 0 10%;
|
||||
}
|
||||
|
||||
main > section {
|
||||
padding: 0 10%;
|
||||
}
|
||||
|
||||
footer {
|
||||
background: var(--highlight);
|
||||
padding: 30px 10%;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 480px) {
|
||||
main > section {
|
||||
display: inline-grid;
|
||||
grid-template-columns: 50%;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
3
content/themes/fipamo-default-v2/assets/css/start.css
Normal file
|
@ -0,0 +1,3 @@
|
|||
@import url("color.css");
|
||||
@import url("typography.css");
|
||||
@import url("frame.css");
|
29
content/themes/fipamo-default-v2/assets/css/typography.css
Normal file
|
@ -0,0 +1,29 @@
|
|||
:root {
|
||||
--base-type: helvetica, arial, sans-serif;
|
||||
--mono-type: "Lucida Console", monaco, monospace;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.8em;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5em;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
main > article > h1 {
|
||||
color: var(--primary);
|
||||
}
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 1 MiB After Width: | Height: | Size: 1 MiB |
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 202 KiB |
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 462 462" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(1.58717,0,0,1.58717,-403.964,-376.506)">
|
||||
<g transform="matrix(1,0,0,1,200.753,94.1743)">
|
||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,200.753,201.192)">
|
||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,307.732,201.192)">
|
||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,414.761,201.192)">
|
||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(171,183,183);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,200.753,308.228)">
|
||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,307.732,308.228)">
|
||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(171,183,183);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,414.761,308.228)">
|
||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(171,183,183);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,414.761,94.1743)">
|
||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
||||
</g>
|
||||
<g transform="matrix(6.12323e-17,1,-1,6.12323e-17,581.547,183.453)">
|
||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
27
content/themes/fipamo-default-v2/assets/scripts/Base.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
export default class Base {
|
||||
//--------------------------
|
||||
// constructor
|
||||
//--------------------------
|
||||
constructor() {
|
||||
this.currentSlide = 0;
|
||||
this.slides = document.querySelectorAll('[role="slide"]');
|
||||
//alert('FRESH');
|
||||
this.start();
|
||||
}
|
||||
start() {
|
||||
if (this.slides.length > 1) {
|
||||
this.slideInterval = setInterval(() => {
|
||||
this.slides[this.currentSlide].className = 'hide';
|
||||
this.currentSlide = (this.currentSlide + 1) % this.slides.length;
|
||||
this.slides[this.currentSlide].className = 'show';
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
//--------------------------
|
||||
// methods
|
||||
//--------------------------
|
||||
|
||||
//--------------------------
|
||||
// event handlers
|
||||
//--------------------------
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
import Base from "./Base.js";
|
||||
|
||||
document.addEventListener(
|
||||
"DOMContentLoaded",
|
||||
function () {
|
||||
var base = new Base();
|
||||
},
|
||||
false
|
||||
);
|
103
content/themes/fipamo-default-v2/base.blade.php
Normal file
|
@ -0,0 +1,103 @@
|
|||
<!DOCTYPE html>
|
||||
@php
|
||||
if(isset($debug))
|
||||
{
|
||||
$assetPath = '/theme/';
|
||||
}else{
|
||||
$assetPath = '/assets/';
|
||||
}
|
||||
@endphp
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
@yield('title')
|
||||
</title>
|
||||
<meta charset="UTF-8"/>
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1.0'/>
|
||||
<meta name="keywords" content="{{ $info['keywords'] }}"/>
|
||||
<meta name="description" content="{{$info['description']}} "/>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
||||
<meta property="og:image" content="{{$info["image"]}}"/>
|
||||
<meta name="twitter:image" content="{{$info["image"]}}"/>
|
||||
<link rel="stylesheet" type="text/css" href="{{ $assetPath."css/theme/start.css" }}">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div role="slide-show">
|
||||
@if(count($page['media'])>1)
|
||||
@foreach($page['media'] as $item)
|
||||
@if($item['type'] == "mp4")
|
||||
<div id="{{$loop->index}}" role="slide">
|
||||
<video controls autoplay muted>
|
||||
|
||||
<source src="{{$item['file']}}" type="video/mp4">
|
||||
|
||||
Please get a better browser. They're free.
|
||||
</video>
|
||||
</div>
|
||||
@else
|
||||
<div id="{{$loop->index}}"role='slide' class="slide hide" style="background: url({{ $item['file'] }}) no-repeat center center / cover"></div>
|
||||
@endif
|
||||
@endforeach
|
||||
@else
|
||||
@if($page['media'] != '')
|
||||
@if($page['media']['type'] == "mp4")
|
||||
<div id="0" role="slide">
|
||||
<video controls autoplay muted>
|
||||
|
||||
<source src="{{$page['media'][0]['file']}}" type="video/mp4">
|
||||
|
||||
Please get a better browser. They're free.
|
||||
</video>
|
||||
</div>
|
||||
@else
|
||||
<div id="0" role="slide" style="background: url({{ $page['media'][0]['file'] }}) no-repeat center center / cover"></div>
|
||||
@endif
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<nav>
|
||||
<div class="left">
|
||||
<a href="/" class="logo-link">
|
||||
<img id="logo" src="{{ $assetPath."/images/global/the-logo.svg" }}"/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
@if(isset($menu))
|
||||
@foreach($media as $link)
|
||||
@if(isset($dynamicRender))
|
||||
@if($dynamicRender == 'true')
|
||||
<a href="{{"/".$link['slug']}}" class="menu-link">{{link['title']}}</a><br/>
|
||||
@else
|
||||
<a href="{{"/".$link['slug'].".html"}}" class="menu-link">{{link['link']}}</a><br/>
|
||||
@endif
|
||||
@else
|
||||
<a href="{{"/".$link['slug'].".html"}}" class="menu-link">{{link['tilte']}}</a><br/>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div id="main-content" class="container">
|
||||
CONTAINTER BOY BOY
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<div class="inner">
|
||||
@if(isset($dynamicRender))
|
||||
@if($dynamicRender == 'true')
|
||||
<a href="/archives">Archives</a><br/>
|
||||
@else
|
||||
<a href="/archives.html">Archives</a><br/>
|
||||
@endif
|
||||
@else
|
||||
<a href="/archives.html">Archives</a><br/>
|
||||
@endif
|
||||
© 2020 By Fipamo
|
||||
</div>
|
||||
</footer>
|
||||
<script src="{{ $assetPath."scripts/theme/ThemeStart.js" }}" type="module"></script>
|
||||
</body>
|
||||
</html>
|
110
content/themes/fipamo-default-v2/frame.twig
Normal file
|
@ -0,0 +1,110 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
{% if debug is defined %}
|
||||
{% set assetPath = theme~'/assets/' %}
|
||||
{% else %}
|
||||
{% set assetPath = '/assets/' %}
|
||||
{% endif %}
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
</title>
|
||||
<meta charset="UTF-8"/>
|
||||
<meta name="theme-color" content="#fc6399"/>
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1.0'/>
|
||||
<meta name="keywords" content="{{ info['keywords'] }}"/>
|
||||
<meta name="description" content="{{ info['description'] }} "/>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
||||
<meta property="og:image" content="{{ info["image"] }}"/>
|
||||
<meta name="twitter:image" content="{{ info["image"] }}"/>
|
||||
<link rel="stylesheet" type="text/css" href="{{ assetPath~"css/start.css?=ffgfg" }}">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<div role="slide-show">
|
||||
{% if media|length > 1 %}
|
||||
{% for item in media %}
|
||||
{% if item.type == "mp4" %}
|
||||
<div id="{{ loop.index0 }}" role="slide">
|
||||
<video controls autoplay muted>
|
||||
|
||||
<source src="{{ item.file }}" type="video/mp4">
|
||||
|
||||
Please get a better browser. They're free.
|
||||
</video>
|
||||
</div>
|
||||
{% else %}
|
||||
<div id="{{ loop.index0 }}" role="slide" class="hide" style="background: url({{ item.file }}) no-repeat center center / cover"></div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% if media[0] != '' %}
|
||||
{% if media[0].type == "mp4" %}
|
||||
<div id="0" role="slide">
|
||||
<video controls autoplay muted>
|
||||
|
||||
<source src="{{ media[0].file }}" type="video/mp4">
|
||||
|
||||
Please get a better browser. They're free.
|
||||
</video>
|
||||
</div>
|
||||
{% else %}
|
||||
<div id="0" role="slide" style="background: url({{ media[0].file }}) no-repeat center center / cover"></div>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<nav>
|
||||
{% apply spaceless %}
|
||||
<div role="nav-left">
|
||||
<a href="/" role="home-link">
|
||||
<img id="logo" src="{{ assetPath~"/images/global/the-logo.svg" }}"/>
|
||||
</a>
|
||||
</div>
|
||||
<div role="nav-right">
|
||||
{% if menu is defined %}
|
||||
{% for link in menu %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/"~link.slug }}" role="menu-link">{{ link.title }}</a><br/>
|
||||
{% else %}
|
||||
<a href="{{ "/"~link.slug~".html" }}" role="menu-link">{{ link.title }}</a><br/>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a href="{{ "/"~link.slug~".html" }}" role="menu-link">{{ link.title }}</a><br/>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endapply %}
|
||||
</nav>
|
||||
</header>
|
||||
<main>
|
||||
{% apply spaceless %}
|
||||
{% block mainContent %}{% endblock %}
|
||||
{% endapply %}
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<div class="inner">
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="/archives">Archives</a><br/>
|
||||
{% else %}
|
||||
<a href="/archives.html">Archives</a><br/>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a href="/archives.html">Archives</a><br/>
|
||||
{% endif %}
|
||||
© 2022 Fipamo
|
||||
</div>
|
||||
</footer>
|
||||
<script src="{{ assetPath~"scripts/ThemeStart.js" }}" type="module"></script>
|
||||
</body>
|
||||
</html>
|
57
content/themes/fipamo-default-v2/index.twig
Normal file
|
@ -0,0 +1,57 @@
|
|||
{% extends "frame.twig" %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
<article>
|
||||
<h1>{{ title }}</h1>
|
||||
<p>{{ content | raw }}</p>
|
||||
</article>
|
||||
<section role="page-meta">
|
||||
<div>
|
||||
<h2>RECENT</h2>
|
||||
{% for item in recent %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug }}">
|
||||
{{ item.title }}
|
||||
</a><br/>
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug~".html" }}">
|
||||
{{ item.title }}
|
||||
</a><br/>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug~".html" }}">
|
||||
{{ item.title }}
|
||||
</a><br/>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h2>FEATURED</h2>
|
||||
{% for item in featured %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug }}">
|
||||
{{ item.title }}
|
||||
</a><br/>
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug~".html" }}">
|
||||
{{ item.title }}
|
||||
</a><br/>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug~".html" }}">
|
||||
{{ item.title }}
|
||||
</a><br/>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
57
content/themes/fipamo-default-v2/page.twig
Normal file
|
@ -0,0 +1,57 @@
|
|||
{% extends "frame.twig" %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
<article>
|
||||
<h1>{{ title }}</h1>
|
||||
<p>{{ content | raw }}</p>
|
||||
</article>
|
||||
<section role="page-meta">
|
||||
<div>
|
||||
<h2>Files</h2>
|
||||
{% for doc in files %}
|
||||
{% if doc.type != "mp3" %}
|
||||
{% set path = doc.file|split('/') %}
|
||||
<a href="{{ doc.file }}">{{ path[6] }}</a>
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div>
|
||||
<h2>Sounds</h2>
|
||||
{% for doc in files %}
|
||||
{% if doc.type == "mp3" %}
|
||||
<audio controls>
|
||||
<source src="{{ doc.file }}" type="audio/mpeg">
|
||||
Your browser does not support the audio element.
|
||||
</audio>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div>
|
||||
<h2>Info</h2>
|
||||
{{ meta['who'] }}
|
||||
dropped this
|
||||
{{ meta['when'] }}<br/>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h2>Tags</h2>
|
||||
{% for tag in meta['tags'] %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/tags/"~tag.slug }}">{{ tag.label }}</a>
|
||||
{% else %}
|
||||
<a href="{{ "/tags/"~tag.slug~".html" }}">{{ tag.label }}</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a href="{{ "/tags/"~tag.slug~".html" }}">{{ tag.label }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
23
content/themes/fipamo-default-v2/tags.twig
Normal file
|
@ -0,0 +1,23 @@
|
|||
{% extends "frame.twig" %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
<article>
|
||||
<h1>{{ title }}</h1>
|
||||
{% for tag in tag_list %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/"~tag.path~"/"~tag.slug }}">{{ tag.title }}</a><br/>
|
||||
{% else %}
|
||||
<a href="{{ "/"~tag.path~"/"~tag.slug~".html" }}">{{ tag.title }}</a><br/>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<a href="{{ "/"~tag.path~"/"~tag.slug~".html" }}">{{ tag.title }}</a><br/>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</article>
|
||||
{% endblock %}
|
|
@ -1,45 +0,0 @@
|
|||
{% extends "frame.twig" %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
<section>
|
||||
<div class="page-title">
|
||||
<span>{{title}}</span>
|
||||
</div>
|
||||
</section>
|
||||
<article>
|
||||
<div class="page">
|
||||
{% for item in archives %}
|
||||
<div class="archive-item">
|
||||
<span class="year">
|
||||
{{item.year}}
|
||||
</span>
|
||||
{% for data in item.year_data %}
|
||||
<div class="archive-month">
|
||||
<span class="month">
|
||||
{{data.full_month}}
|
||||
</span>
|
||||
{% for page in data.pages %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/"~item.year~"/"~data.month~"/"~page.slug }}">{{page.title}}</a><br />
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.year~"/"~data.month~"/"~page.slug~".html" }}">{{page.title}}</a><br />
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.year~"/"~data.month~"/"~page.slug~".html" }}">{{page.title}}</a><br />
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</article>
|
||||
{% endblock %}
|
|
@ -1,600 +0,0 @@
|
|||
h1, h2, h3 {
|
||||
color: #ebe5d4;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.75em;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5em;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
html {
|
||||
line-height: 1.15;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
article,
|
||||
aside,
|
||||
footer,
|
||||
header,
|
||||
nav,
|
||||
section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
figcaption,
|
||||
figure,
|
||||
main {
|
||||
display: block;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 1em 40px;
|
||||
}
|
||||
|
||||
hr {
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: monospace, monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
a {
|
||||
background-color: transparent;
|
||||
-webkit-text-decoration-skip: objects;
|
||||
}
|
||||
|
||||
a:active,
|
||||
a:hover {
|
||||
outline-width: 0;
|
||||
}
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: none;
|
||||
text-decoration: underline;
|
||||
text-decoration: underline dotted;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: inherit;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
kbd,
|
||||
samp {
|
||||
font-family: monospace, monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
mark {
|
||||
background-color: #ff0;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 60%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.55em;
|
||||
background: #151d26;
|
||||
color: #151d26;
|
||||
border-radius: 2px;
|
||||
padding: 0 2px 0 2px;
|
||||
margin: 0 2px 0 0;
|
||||
}
|
||||
|
||||
audio,
|
||||
video {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
audio:not([controls]) {
|
||||
display: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
svg:not(:root) {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
line-height: 1.15;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
button, html [type=button],
|
||||
[type=reset],
|
||||
[type=submit] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
[type=button]::-moz-focus-inner,
|
||||
[type=reset]::-moz-focus-inner,
|
||||
[type=submit]::-moz-focus-inner,
|
||||
button::-moz-focus-inner {
|
||||
border-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
[type=button]:-moz-focusring,
|
||||
[type=reset]:-moz-focusring,
|
||||
[type=submit]:-moz-focusring,
|
||||
button:-moz-focusring {
|
||||
outline: 1px dotted ButtonText;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border: 1px solid #c0c0c0;
|
||||
margin: 0 2px;
|
||||
padding: 0.35em 0.625em 0.75em;
|
||||
}
|
||||
|
||||
legend {
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
display: table;
|
||||
max-width: 100%;
|
||||
padding: 0;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
progress {
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
[type=checkbox],
|
||||
[type=radio] {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
[type=number]::-webkit-inner-spin-button,
|
||||
[type=number]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type=search] {
|
||||
-webkit-appearance: textfield;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
[type=search]::-webkit-search-cancel-button,
|
||||
[type=search]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance: button;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
details,
|
||||
menu {
|
||||
display: block;
|
||||
}
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
canvas {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
form {
|
||||
display: inline-block;
|
||||
}
|
||||
form a {
|
||||
color: #151d26;
|
||||
}
|
||||
form p {
|
||||
background: #e8c33e;
|
||||
color: #151d26;
|
||||
padding: 5px;
|
||||
display: block;
|
||||
border-radius: 5px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
input[type=email], input[type=password], input[type=text] {
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
margin: 10px 5px 0 0;
|
||||
font: 18px Helvetica, Arial, sans-serif;
|
||||
display: inline-block;
|
||||
background: #151d26;
|
||||
color: #e8c33e;
|
||||
}
|
||||
|
||||
textarea {
|
||||
border: 0;
|
||||
border-radius: 3px;
|
||||
color: #ebe5d4;
|
||||
font: 15px Helvetica, Arial, sans-serif;
|
||||
background: #151d26;
|
||||
}
|
||||
|
||||
button, input[type=submit] {
|
||||
background: #7ED07E;
|
||||
color: #151d26;
|
||||
font: 20px Helvetica, Arial, sans-serif;
|
||||
border-radius: 5px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
border: 0;
|
||||
padding: 10px 0 5px 0;
|
||||
transition: all 0.3s linear;
|
||||
}
|
||||
|
||||
select {
|
||||
font: 14px Helvetica, Arial, sans-serif;
|
||||
border: 1px solid #FC6399;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
color: #151d26;
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
font: 25px Helvetica, Arial, sans-serif;
|
||||
color: #ebe5d4;
|
||||
}
|
||||
|
||||
:-moz-placeholder {
|
||||
/* Firefox 18- */
|
||||
font: 25px Helvetica, Arial, sans-serif;
|
||||
color: #ebe5d4;
|
||||
}
|
||||
|
||||
::-moz-placeholder {
|
||||
/* Firefox 19+ */
|
||||
font: 15px Helvetica, Arial, sans-serif;
|
||||
color: #ebe5d4;
|
||||
}
|
||||
|
||||
:-ms-input-placeholder {
|
||||
font: 25px Helvetica, Arial, sans-serif;
|
||||
color: #ebe5d4;
|
||||
}
|
||||
|
||||
html {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
font: 400 1.2em/1.4em Helvetica, Arial, sans-serif;
|
||||
}
|
||||
html body {
|
||||
background: #ebe5d4;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
perspective: 1px;
|
||||
transform-style: preserve-3d;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
html body a {
|
||||
color: #151d26;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #7ED07E;
|
||||
}
|
||||
html body a:hover {
|
||||
border-bottom: 1px solid #FC6399;
|
||||
}
|
||||
html body code {
|
||||
background: #32302f;
|
||||
color: #7ED07E;
|
||||
border-radius: 3px;
|
||||
padding: 3px;
|
||||
}
|
||||
html body pre {
|
||||
background: #32302f;
|
||||
color: #7ED07E;
|
||||
border-radius: 3px;
|
||||
padding: 3px;
|
||||
}
|
||||
html body code {
|
||||
color: #FC6399;
|
||||
background: none;
|
||||
}
|
||||
html body svg.icons {
|
||||
width: 25px;
|
||||
fill: #ebe5d4;
|
||||
}
|
||||
html body header {
|
||||
background: #151d26;
|
||||
height: 90%;
|
||||
width: 100%;
|
||||
border-top: #ebe5d4 3px solid;
|
||||
}
|
||||
html body header #media {
|
||||
width: 100%;
|
||||
height: 90%;
|
||||
position: absolute;
|
||||
}
|
||||
html body header #media .slide {
|
||||
transition: all 0.7s linear;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
}
|
||||
html body header #media .hide {
|
||||
opacity: 0;
|
||||
}
|
||||
html body header #media .show {
|
||||
opacity: 1;
|
||||
}
|
||||
html body header #media video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
html body header nav {
|
||||
width: 97%;
|
||||
margin: 10px auto;
|
||||
z-index: 1000;
|
||||
position: relative;
|
||||
color: #151d26;
|
||||
}
|
||||
html body header nav .left, html body header nav .right {
|
||||
width: 50%;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
html body header nav .left a.logo-link {
|
||||
border-bottom: none;
|
||||
margin: 0 0 20px 0;
|
||||
display: block;
|
||||
}
|
||||
html body header nav .left a.logo-link #logo {
|
||||
width: 50px;
|
||||
border-bottom: none;
|
||||
}
|
||||
html body header nav .right {
|
||||
text-align: right;
|
||||
}
|
||||
html body header nav .right a.menu-link {
|
||||
background: #FC6399;
|
||||
margin-bottom: 4px;
|
||||
padding: 3px;
|
||||
border-radius: 2px;
|
||||
display: inline-block;
|
||||
font-size: 0.8em;
|
||||
border-bottom: none;
|
||||
}
|
||||
html body header nav .right a.menu-link:hover {
|
||||
background: #FC6399;
|
||||
}
|
||||
html body .container {
|
||||
z-index: 2;
|
||||
background: #ebe5d4;
|
||||
line-height: 30px;
|
||||
font-weight: lighter;
|
||||
width: 100%;
|
||||
color: #32302f;
|
||||
}
|
||||
html body .container article {
|
||||
position: relative;
|
||||
width: 80%;
|
||||
height: 80%;
|
||||
max-width: 840px;
|
||||
background: #ebe5d4;
|
||||
vertical-align: top;
|
||||
color: #32302f;
|
||||
margin: 0 auto;
|
||||
}
|
||||
html body .container article .index, html body .container article .page {
|
||||
padding: 0 0 15px 0;
|
||||
}
|
||||
html body .container article .index img, html body .container article .page img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
html body .container article .index h1, html body .container article .index h2, html body .container article .page h1, html body .container article .page h2 {
|
||||
color: #151d26;
|
||||
}
|
||||
html body .container article .index p, html body .container article .page p {
|
||||
font: 300 1.25em/1.6em Helvetica, Arial, sans-serif;
|
||||
}
|
||||
html body .container article .index .page_files .page_doc a, html body .container article .page .page_files .page_doc a {
|
||||
background: #32302f;
|
||||
border-radius: 3px;
|
||||
color: #ebe5d4;
|
||||
padding: 3px;
|
||||
margin: 0 5px 0 0;
|
||||
}
|
||||
html body .container article .index .meta, html body .container article .page .meta {
|
||||
font: 500 0.8em/1.3em Helvetica, Arial, sans-serif;
|
||||
padding: 5px 0 0 0;
|
||||
border-top: 1px solid #151d26;
|
||||
background: #ebe5d4;
|
||||
}
|
||||
html body .container article .index .meta a, html body .container article .page .meta a {
|
||||
font-size: 0.8em;
|
||||
font-weight: 400;
|
||||
}
|
||||
html body .container article .index .archive-item, html body .container article .page .archive-item {
|
||||
padding: 15px 0 20px 0;
|
||||
}
|
||||
html body .container article .index .archive-item span.year, html body .container article .page .archive-item span.year {
|
||||
font-size: 1.5em;
|
||||
font-weight: 500;
|
||||
padding: 5px;
|
||||
display: block;
|
||||
color: #151d26;
|
||||
}
|
||||
html body .container article .index .archive-item .archive-month, html body .container article .page .archive-item .archive-month {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
width: 30%;
|
||||
padding: 5px;
|
||||
}
|
||||
html body .container article .index .archive-item .archive-month span.month, html body .container article .page .archive-item .archive-month span.month {
|
||||
color: #FC6399;
|
||||
font-size: 1.5em;
|
||||
font-weight: 300;
|
||||
padding: 5px;
|
||||
display: block;
|
||||
}
|
||||
html body .container section {
|
||||
padding: 0 0 20px 0;
|
||||
background: #151d26;
|
||||
}
|
||||
html body .container section a {
|
||||
color: #ebe5d4;
|
||||
}
|
||||
html body .container section .index-lists, html body .container section .page-title {
|
||||
max-width: 840px;
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
padding: 20px 0 0 0;
|
||||
}
|
||||
html body .container section .index-lists span, html body .container section .page-title span {
|
||||
font-size: 2em;
|
||||
color: #FC6399;
|
||||
font-weight: 400;
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
padding: 20px 0 0 0;
|
||||
}
|
||||
html body .container section .index-lists .recent, html body .container section .index-lists .featured, html body .container section .page-title .recent, html body .container section .page-title .featured {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
vertical-align: top;
|
||||
}
|
||||
html body .container section .index-lists label, html body .container section .page-title label {
|
||||
background: #32302f;
|
||||
color: #ebe5d4;
|
||||
font-size: 1.5em;
|
||||
line-height: 1.3;
|
||||
}
|
||||
html body footer {
|
||||
background: #ebe5d4;
|
||||
padding: 10px;
|
||||
color: #151d26;
|
||||
font-size: 0.8em;
|
||||
font-weight: 600;
|
||||
height: 100px;
|
||||
}
|
||||
html body footer .inner {
|
||||
margin: 20px auto;
|
||||
width: 80%;
|
||||
max-width: 840px;
|
||||
}
|
||||
html body footer .inner a {
|
||||
color: #FC6399;
|
||||
}
|
||||
html body header nav {
|
||||
width: 98%;
|
||||
}
|
||||
html body header span {
|
||||
font-size: 2.5em;
|
||||
}
|
||||
html body header .container article .index .archive-item .archive-month, html body header .container article .page .archive-item .archive-month {
|
||||
width: 45%;
|
||||
}
|
||||
html body header nav {
|
||||
width: 96%;
|
||||
}
|
||||
html body header .container article .index, html body header .container article .page {
|
||||
margin: 0;
|
||||
}
|
||||
html body header .container article .index p, html body header .container article .page p {
|
||||
font: 300 1em/1.6em Helvetica, Arial, sans-serif;
|
||||
}
|
||||
html body header .container section .index-lists .recent, html body header .container section .index-lists .featured {
|
||||
width: 100% !important;
|
||||
}
|
||||
html body header nav {
|
||||
width: 95%;
|
||||
}
|
||||
html body .container article .index, html body .container article .page {
|
||||
margin: 0;
|
||||
}
|
||||
html body .container article .index p, html body .container article .page p {
|
||||
font: 300 0.9em/1.7em Helvetica, Arial, sans-serif;
|
||||
}
|
||||
html body .container article .index .archive-item .archive-month, html body .container article .page .archive-item .archive-month {
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=base.css.map */
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["../../../styles/_typography.sass","../../../styles/_normalize.sass","../../../styles/_colors.sass","../../../styles/_forms.sass","../../../styles/_structure.sass"],"names":[],"mappings":"AAGA;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AChBJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AACJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAGJ;AAAA;EAEI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA,YCnFM;EDoFN,OCpFM;EDqFN;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAGA;EACI;EACA;;;AAER;EACI;;;AAGA;EACI;;;AAER;AAAA;AAAA;AAAA;AAAA;EAKI;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AEpMJ;EACI;;AACA;EACI,ODHE;;ACIN;EACI,YDHI;ECIJ,ODNE;ECOF;EACA;EACA;EACA;;;AAER;EACI;EACA;EACA;EACA;EACA;EACA;EACA,YDnBM;ECoBN,ODlBQ;;;ACoBZ;EACI;EACA;EACA,ODrBK;ECsBL;EACA,YD3BM;;;AC6BV;EACI,YD3BS;EC4BT,OD/BM;ECgCN;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA,OD9CM;;;ACgDV;EACI;EACA,OD9CK;;;ACgDT;AACI;EACA;EACA,ODnDK;;;ACqDT;AACI;EACA;EACA,ODxDK;;;AC0DT;EACI;EACA,OD5DK;;;AEJT;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,YFLK;EEML;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,OFpBI;EEqBJ;EACA;;AAEA;EACE;;AAEJ;EACE,YFvBG;EEwBH,OF1BO;EE2BP;EACA;;AAEF;EACE,YF7BG;EE8BH,OFhCO;EEiCP;EACA;;AACF;EACE,OFtCO;EEuCP;;AAEF;EACE;EACA,MFxCG;;AE0CL;EACE,YF/CI;EEgDJ;EACA;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AACF;EACE;;AACF;EACE;;AACF;EACE;EACA;EACA;;AACJ;EACE;EACA;EACA;EACA;EACA,OFzEE;;AE0EF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AACA;EACE;EACA;;AACN;EACE;;AACA;EACE,YFxFC;EEyFD;EACA;EACA;EACA;EACA;EACA;;AACA;EACE,YFhGD;;AEkGT;EACE;EACA,YFjGG;EEkGH;EACA;EACA;EAEA,OFrGG;;AEsGH;EACE;EACA;EACA;EACA;EAEA,YF7GC;EE8GD;EACA,OF9GC;EE+GD;;AAGA;EACE;;AACA;EACE;EACA;;AACF;EACE,OF7HF;;AE8HA;EACE;;AAIE;EACE,YF/HP;EEgIO;EACA,OFlIP;EEmIO;EACA;;AACN;EACE;EACA;EACA;EACA,YFzIH;;AE0IG;EACE;EACA;;AAEJ;EACE;;AACA;EACE;EACA;EACA;EACA;EACA,OFzJJ;;AE0JE;EACE;EACA;EACA;EACA;;AACA;EACE,OF/JH;EEgKG;EACA;EACA;EACA;;AACV;EACE;EACA,YFvKE;;AEwKF;EACE,OFrKD;;AEsKD;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA,OFjLC;EEkLD;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;;AACF;EACE,YFvLH;EEwLG,OFzLH;EE0LG;EACA;;AAER;EACE,YF9LG;EE+LH;EACA,OFpMI;EEqMJ;EACA;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE,OF5MG;;AEkNP;EACE;;AACF;EACE;;AAKM;EACE;;AAIV;EACE;;AAGE;EACE;;AACA;EACE;;AAGF;EACE;;AAIR;EACE;;AAGA;EACE;;AACA;EACE;;AAEA;EACE","file":"base.css"}
|
|
@ -1,33 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 486 678" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g id="Logo" transform="matrix(1.36867,0,0,1.36867,-351.696,-71.9183)">
|
||||
<g transform="matrix(2.31599,0,0,2.31599,218.53,-99.4797)">
|
||||
<path d="M93.67,140.92L93.67,140.921C105.569,140.921 115.216,150.567 115.216,162.467L115.216,172.724L115.216,172.724L115.216,182.262C115.216,194.161 105.569,203.808 93.669,203.808C81.976,203.217 74.12,195.969 72.237,184.474L72.282,182.737L72.282,162.467L72.205,160.847C72.775,149.587 82.728,141.121 93.67,140.92Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(2.31599,0,0,2.31599,218.53,-437.697)">
|
||||
<path d="M93.67,211.678L93.67,211.678C105.569,211.678 115.216,221.324 115.216,233.224L115.216,243.481L115.216,243.481L115.216,253.019C115.216,264.919 105.569,274.565 93.669,274.565C81.976,273.975 74.12,266.726 72.237,255.232L72.282,253.495L72.282,233.224L72.205,231.604C72.775,220.344 82.728,211.878 93.67,211.678Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(2.31599,0,0,2.31599,218.53,241.338)">
|
||||
<path d="M93.67,69.288L93.67,69.288C105.569,69.288 115.216,78.934 115.216,90.834L115.216,101.091L115.216,101.091L115.216,110.629C115.216,122.528 105.569,132.175 93.669,132.175C81.976,131.584 74.12,124.336 72.237,112.842L72.282,111.105L72.282,90.834L72.205,89.214C72.775,77.954 82.728,69.488 93.67,69.288Z" style="fill:rgb(171,183,183);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(2.31599,0,0,2.31599,218.53,-104.112)">
|
||||
<path d="M38.059,142.92L38.059,142.921C49.958,142.921 59.605,152.567 59.605,164.467L59.605,174.724L59.605,174.724L59.605,184.262C59.605,196.161 49.958,205.808 38.058,205.808C26.365,205.217 18.509,197.969 16.626,186.474L16.671,184.737L16.671,164.467L16.594,162.847C17.164,151.587 27.117,143.121 38.059,142.92Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(2.31599,0,0,2.31599,218.53,-104.112)">
|
||||
<path d="M148.331,142.92L148.331,142.921C160.23,142.921 169.877,152.567 169.877,164.467L169.877,174.724L169.877,174.724L169.877,184.262C169.877,196.161 160.23,205.808 148.331,205.808C136.637,205.217 128.782,197.969 126.898,186.474L126.943,184.737L126.943,164.467L126.867,162.847C127.436,151.587 137.389,143.121 148.331,142.92Z" style="fill:rgb(171,183,183);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(2.31599,0,0,2.31599,218.53,-437.697)">
|
||||
<path d="M38.059,211.678L38.059,211.678C49.958,211.678 59.605,221.324 59.605,233.224L59.605,243.481L59.605,243.481L59.605,253.019C59.605,264.919 49.958,274.565 38.058,274.565C26.365,273.975 18.509,266.726 16.626,255.232L16.671,253.495L16.671,233.224L16.594,231.604C17.164,220.344 27.117,211.878 38.059,211.678Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(2.31599,0,0,2.31599,218.53,-437.697)">
|
||||
<path d="M148.331,211.678L148.331,211.678C160.23,211.678 169.877,221.324 169.877,233.224L169.877,243.481L169.877,243.481L169.877,253.019C169.877,264.919 160.23,274.565 148.331,274.565C136.637,273.975 128.782,266.726 126.898,255.232L126.943,253.495L126.943,233.224L126.867,231.604C127.436,220.344 137.389,211.878 148.331,211.678Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(2.31599,0,0,2.31599,218.53,241.338)">
|
||||
<path d="M38.059,69.288L38.059,69.288C49.958,69.288 59.605,78.934 59.605,90.834L59.605,101.091L59.605,101.091L59.605,110.629C59.605,122.528 49.958,132.175 38.058,132.175C26.365,131.584 18.509,124.336 16.626,112.842L16.671,111.105L16.671,90.834L16.594,89.214C17.164,77.954 27.117,69.488 38.059,69.288Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(2.31599,0,0,2.31599,218.53,241.338)">
|
||||
<path d="M148.331,69.288L148.331,69.288C160.23,69.288 169.877,78.934 169.877,90.834L169.877,101.091L169.877,101.091L169.877,110.629C169.877,122.528 160.23,132.175 148.331,132.175C136.637,131.584 128.782,124.336 126.898,112.842L126.943,111.105L126.943,90.834L126.867,89.214C127.436,77.954 137.389,69.488 148.331,69.288Z" style="fill:rgb(171,183,183);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 4.6 KiB |
|
@ -1,2 +0,0 @@
|
|||
(()=>{class e{constructor(){this.currentSlide=0,this.slides=document.querySelectorAll("#media .slide"),this.start()}start(){this.slides.length>1&&(this.slideInterval=setInterval((()=>{this.slides[this.currentSlide].className="slide hide",this.currentSlide=(this.currentSlide+1)%this.slides.length,this.slides[this.currentSlide].className="slide show"}),3e3))}}document.addEventListener("DOMContentLoaded",(function(){new e}),!1)})();
|
||||
//# sourceMappingURL=ThemeStart.js.map
|
|
@ -1 +0,0 @@
|
|||
{"mappings":"4BAKIA,KAAKC,aAAe,EACpBD,KAAKE,OAASC,SAASC,iBAAiB,iBACxCJ,KAAKK,QAEPA,QACML,KAAKE,OAAOI,OAAS,IACvBN,KAAKO,cAAgBC,aAAW,KAC9BR,KAAKE,OAAOF,KAAKC,cAAcQ,UAAY,aAC3CT,KAAKC,cAAgBD,KAAKC,aAAe,GAAKD,KAAKE,OAAOI,OAC1DN,KAAKE,OAAOF,KAAKC,cAAcQ,UAAY,eAC1C,OCbTN,SAASO,iBACP,oBACA,WACa,IAAIC,KAEjB","sources":["src/themes/theme-fipamo-default/com/Base.js","src/themes/theme-fipamo-default/com/ThemeStart.js"],"sourcesContent":["export default class Base {\n //--------------------------\n // constructor\n //--------------------------\n constructor() {\n this.currentSlide = 0;\n this.slides = document.querySelectorAll(\"#media .slide\");\n this.start();\n }\n start() {\n if (this.slides.length > 1) {\n this.slideInterval = setInterval(() => {\n this.slides[this.currentSlide].className = \"slide hide\";\n this.currentSlide = (this.currentSlide + 1) % this.slides.length;\n this.slides[this.currentSlide].className = \"slide show\";\n }, 3000);\n }\n }\n //--------------------------\n // methods\n //--------------------------\n\n //--------------------------\n // event handlers\n //--------------------------\n}\n","import Base from \"./Base.js\";\n\ndocument.addEventListener(\n \"DOMContentLoaded\",\n function () {\n var base = new Base();\n },\n false\n);\n"],"names":["this","currentSlide","slides","document","querySelectorAll","start","length","slideInterval","setInterval","className","addEventListener","$b8d4b81eabebe07b$export$2e2bcd8739ae039"],"version":3,"file":"ThemeStart.js.map"}
|
|
@ -1,112 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
{% if debug is defined %}
|
||||
{% set assetPath = '/src/themes/theme-'~theme~'/'~theme~'/assets/' %}
|
||||
{% else %}
|
||||
{% set assetPath = '/assets/' %}
|
||||
{% endif %}
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
</title>
|
||||
<meta charset="UTF-8"/>
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1.0'/>
|
||||
<meta name="keywords" content="{{ info['keywords'] }}"/>
|
||||
<meta name="description" content="{{info['description']}} "/>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
||||
<meta property="og:image" content="{{info["image"]}}"/>
|
||||
<meta name="twitter:image" content="{{info["image"]}}"/>
|
||||
<link rel="stylesheet" type="text/css" href="{{ assetPath~"css/base.css?=dfvbghh" }}">
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
<header style="background: url({{ background }}) no-repeat center center; background-size: cover">
|
||||
-->
|
||||
<header>
|
||||
<div id="media">
|
||||
{% if media|length > 1 %}
|
||||
{% for item in media %}
|
||||
{% if item.type == "mp4"%}
|
||||
<div id="{{loop.index0}}" class="slide">
|
||||
<video controls autoplay muted>
|
||||
|
||||
<source src="{{item.file}}" type="video/mp4">
|
||||
|
||||
Please get a better browser. They're free.
|
||||
</video>
|
||||
</div>
|
||||
{% else %}
|
||||
<div id="{{loop.index0}}" class="slide hide" style="background: url({{ item.file }}) no-repeat center center / cover"></div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% if media[0] != '' %}
|
||||
{% if media[0].type == "mp4"%}
|
||||
<div id="0" class="slide">
|
||||
<video controls autoplay muted>
|
||||
|
||||
<source src="{{media[0].file}}" type="video/mp4">
|
||||
|
||||
Please get a better browser. They're free.
|
||||
</video>
|
||||
</div>
|
||||
{% else %}
|
||||
<div id="0" class="slide" style="background: url({{ media[0].file }}) no-repeat center center / cover"></div>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<nav>
|
||||
{% apply spaceless %}
|
||||
<div class="left">
|
||||
<a href="/" class="logo-link">
|
||||
<img id="logo" src="{{ assetPath~"/images/global/the-logo.svg" }}"/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
{% if menu is defined %}
|
||||
{% for link in menu %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{"/"~link.slug}}" class="menu-link">{{link.title}}</a><br/>
|
||||
{% else %}
|
||||
<a href="{{"/"~link.slug~".html"}}" class="menu-link">{{link.title}}</a><br/>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a href="{{"/"~link.slug~".html"}}" class="menu-link">{{link.title}}</a><br/>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endapply %}
|
||||
</nav>
|
||||
</header>
|
||||
<div id="main-content" class="container">
|
||||
{% apply spaceless %}
|
||||
{% block mainContent %}{% endblock %}
|
||||
{% endapply %}
|
||||
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<div class="inner">
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="/archives">Archives</a><br/>
|
||||
{% else %}
|
||||
<a href="/archives.html">Archives</a><br/>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a href="/archives.html">Archives</a><br/>
|
||||
{% endif %}
|
||||
© 2020 By Fipamo
|
||||
</div>
|
||||
</footer>
|
||||
<script src="{{ assetPath~"scripts/ThemeStart.js" }}" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,51 +0,0 @@
|
|||
{% extends "frame.twig" %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
<article>
|
||||
<div class="index">
|
||||
<h2>{{title}}</h2>
|
||||
<p>{{ content | raw }}</p>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<section>
|
||||
<div class="index-lists">
|
||||
<div class="recent">
|
||||
<span>RECENT</span><br />
|
||||
{% for item in recent %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug}}"> {{item.title}} </a><br />
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug~".html" }}"> {{item.title}} </a><br />
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug~".html" }}"> {{item.title}} </a><br />
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
<div class="featured">
|
||||
<span>FEATURED</span><br />
|
||||
{% for item in featured %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug}}"> {{item.title}} </a><br />
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug~".html" }}"> {{item.title}} </a><br />
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<a href="{{ "/"~item.path~"/"~item.slug~".html" }}"> {{item.title}} </a><br />
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
|
@ -1,60 +0,0 @@
|
|||
{% extends "frame.twig" %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
<section>
|
||||
<div class="page-title">
|
||||
<span>{{title}}</span><br>
|
||||
This is a custom temlate
|
||||
</div>
|
||||
</section>
|
||||
<article>
|
||||
<div class="page">
|
||||
<p>{{content | raw}}</p>
|
||||
<div>
|
||||
<div class="page_files">
|
||||
<div class="page_doc">
|
||||
<strong>Files</strong><br/>
|
||||
{% for doc in files %}
|
||||
{% if doc.type != "mp3" %}
|
||||
{% set path = doc.file|split('/') %}
|
||||
<a href="{{doc.file}}">{{path[6]}}</a>
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="page_sounds">
|
||||
<strong>Sounds</strong><br/>
|
||||
{% for doc in files %}
|
||||
{% if doc.type == "mp3" %}
|
||||
<audio controls>
|
||||
<source src="{{doc.file}}" type="audio/mpeg">
|
||||
Your browser does not support the audio element.
|
||||
</audio>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<br/>
|
||||
{{meta['who']}} dropped this {{ meta['when'] }}<br />
|
||||
<strong>tags: </strong>
|
||||
{% for tag in meta['tags'] %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/tags/"~tag.slug }}">{{ tag.label }}</a>
|
||||
{% else %}
|
||||
<a href="{{ "/tags/"~tag.slug~".html" }}">{{ tag.label }}</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a href="{{ "/tags/"~tag.slug~".html" }}">{{ tag.label }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
{% endblock %}
|
|
@ -1,62 +0,0 @@
|
|||
{% extends "frame.twig" %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
<section>
|
||||
<div class="page-title">
|
||||
<span>{{title}}</span>
|
||||
</div>
|
||||
</section>
|
||||
<article>
|
||||
<div class="page">
|
||||
<p>{{content | raw}}</p>
|
||||
<div>
|
||||
<div class="page_files">
|
||||
<div class="page_doc">
|
||||
<strong>Files</strong><br/>
|
||||
{% for doc in files %}
|
||||
{% if doc.type != "mp3" %}
|
||||
{% set path = doc.file|split('/') %}
|
||||
<a href="{{doc.file}}">{{path[6]}}</a>
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="page_sounds">
|
||||
<strong>Sounds</strong><br/>
|
||||
{% for doc in files %}
|
||||
{% if doc.type == "mp3" %}
|
||||
<audio controls>
|
||||
<source src="{{doc.file}}" type="audio/mpeg">
|
||||
Your browser does not support the audio element.
|
||||
</audio>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<br/>
|
||||
{{meta['who']}}
|
||||
dropped this
|
||||
{{ meta['when'] }}<br/>
|
||||
<strong>tags:
|
||||
</strong>
|
||||
{% for tag in meta['tags'] %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{ "/tags/"~tag.slug }}">{{ tag.label }}</a>
|
||||
{% else %}
|
||||
<a href="{{ "/tags/"~tag.slug~".html" }}">{{ tag.label }}</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a href="{{ "/tags/"~tag.slug~".html" }}">{{ tag.label }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
{% endblock %}
|
|
@ -1,30 +0,0 @@
|
|||
{% extends "frame.twig" %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
<section>
|
||||
<div class="page-title">
|
||||
<span>{{title}}</span>
|
||||
</div>
|
||||
</section>
|
||||
<article>
|
||||
<div class="page">
|
||||
{% for tag in tag_list %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender == 'true' %}
|
||||
<a href="{{"/"~tag.path~"/"~tag.slug}}">{{tag.title}}</a><br />
|
||||
{% else %}
|
||||
<a href="{{"/"~tag.path~"/"~tag.slug~".html"}}">{{tag.title}}</a><br />
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<a href="{{"/"~tag.path~"/"~tag.slug~".html"}}">{{tag.title}}</a><br />
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</article>
|
||||
{% endblock %}
|
|
@ -3,6 +3,7 @@
|
|||
use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\Dash\IndexController;
|
||||
use App\Http\Controllers\Dash\AuthController;
|
||||
use App\Http\Controllers\Theming\ThemeController;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
@ -32,3 +33,9 @@ Route::group(['prefix' => 'dashboard', 'middleware' => 'member.check'], function
|
|||
Route::get("/page/{mode}/{uuid}", [IndexController::class, 'page']);
|
||||
Route::get("/logout", [AuthController::class, 'exit']);
|
||||
});
|
||||
|
||||
//theming
|
||||
|
||||
Route::group(['prefix' => 'theme', 'middleware' => 'member.check'], function () {
|
||||
Route::get("/view/{view?}", [ThemeController::class, 'getView']);
|
||||
});
|
||||
|
|