init
This commit is contained in:
5
CHANGELOG.md
Executable file
5
CHANGELOG.md
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
# v0.1.0
|
||||||
|
## 12/05/2019
|
||||||
|
|
||||||
|
1. [](#new)
|
||||||
|
* ChangeLog started...
|
||||||
21
LICENSE
Executable file
21
LICENSE
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2019 Loïc Guibert
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
7
README.md
Executable file
7
README.md
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
# Myportfolio Theme
|
||||||
|
|
||||||
|
The **Myportfolio** Theme is for [Grav CMS](http://github.com/getgrav/grav). This README.md file should be modified to describe the features, installation, configuration, and general usage of this theme.
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
A basic theme built for an online portfolio
|
||||||
27
blueprints.yaml
Executable file
27
blueprints.yaml
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
name: Myportfolio
|
||||||
|
version: 0.1.0
|
||||||
|
description: A basic Grav theme built for an online portfolio
|
||||||
|
icon: rebel
|
||||||
|
author:
|
||||||
|
name: Loïc Guibert
|
||||||
|
email: loic.guibert@bluewin.ch
|
||||||
|
homepage: https://git.guilo.ch/loicguib/grav-theme-myportfolio
|
||||||
|
demo: https://git.guilo.ch/loicguib/grav-theme-myportfolio
|
||||||
|
keywords: grav, theme, portfolio, cv, curriculum, vitae
|
||||||
|
bugs: https://git.guilo.ch/loicguib/grav-theme-myportfolio/issues
|
||||||
|
readme: https://git.guilo.ch/loicguib/grav-theme-myportfolio/README.md
|
||||||
|
license: MIT
|
||||||
|
|
||||||
|
form:
|
||||||
|
validation: loose
|
||||||
|
fields:
|
||||||
|
dropdown.enabled:
|
||||||
|
type: toggle
|
||||||
|
label: Dropdown in Menu
|
||||||
|
highlight: 1
|
||||||
|
default: 1
|
||||||
|
options:
|
||||||
|
1: PLUGIN_ADMIN.ENABLED
|
||||||
|
0: PLUGIN_ADMIN.DISABLED
|
||||||
|
validate:
|
||||||
|
type: bool
|
||||||
175
css/custom.css
Executable file
175
css/custom.css
Executable file
@@ -0,0 +1,175 @@
|
|||||||
|
/* Core Stuff */
|
||||||
|
* {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: 1.7;
|
||||||
|
color: #606d6e;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
color: #454B4D;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #1F8CD6;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #175E91;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background: #F0F0F0;
|
||||||
|
margin: 1rem 0;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
border-left: 10px solid #eee;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Utility Classes */
|
||||||
|
.wrapper {
|
||||||
|
margin: 0 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.padding {
|
||||||
|
padding: 3rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
float: right
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Content Styling */
|
||||||
|
.header .padding {
|
||||||
|
padding: 1rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
background-color: #1F8DD6;
|
||||||
|
color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header .logo {
|
||||||
|
font-size: 1.7rem;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Menu Settings */
|
||||||
|
.main-nav ul {
|
||||||
|
text-align: center;
|
||||||
|
letter-spacing: -1em;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-nav ul li {
|
||||||
|
display: inline-block;
|
||||||
|
letter-spacing: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-nav ul li a {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
line-height: 45px;
|
||||||
|
color: #fff;
|
||||||
|
padding: 0 20px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-nav > ul > li > a {
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Active dropdown nav item */
|
||||||
|
.main-nav ul li:hover > a {
|
||||||
|
background-color: #175E91;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Selected Dropdown nav item */
|
||||||
|
.main-nav ul li.selected > a {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #175E91;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dropdown CSS */
|
||||||
|
.main-nav ul li {position: relative;}
|
||||||
|
|
||||||
|
.main-nav ul li ul {
|
||||||
|
position: absolute;
|
||||||
|
background-color: #1F8DD6;
|
||||||
|
min-width: 100%;
|
||||||
|
text-align: left;
|
||||||
|
z-index: 999;
|
||||||
|
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.main-nav ul li ul li {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dropdown CSS */
|
||||||
|
.main-nav ul li ul ul {
|
||||||
|
left: 100%;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Active on Hover */
|
||||||
|
.main-nav li:hover > ul {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Child Indicator */
|
||||||
|
.main-nav .has-children > a {
|
||||||
|
padding-right: 30px;
|
||||||
|
}
|
||||||
|
.main-nav .has-children > a:after {
|
||||||
|
font-family: FontAwesome;
|
||||||
|
content: '\f107';
|
||||||
|
position: absolute;
|
||||||
|
display: inline-block;
|
||||||
|
right: 8px;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-nav .has-children .has-children > a:after {
|
||||||
|
content: '\f105';
|
||||||
|
}
|
||||||
BIN
images/logo.png
Executable file
BIN
images/logo.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 8.5 KiB |
9
myportfolio.php
Executable file
9
myportfolio.php
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
namespace Grav\Theme;
|
||||||
|
|
||||||
|
use Grav\Common\Theme;
|
||||||
|
|
||||||
|
class Myportfolio extends Theme
|
||||||
|
{
|
||||||
|
// Access plugin events in this class
|
||||||
|
}
|
||||||
3
myportfolio.yaml
Executable file
3
myportfolio.yaml
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
enabled: true
|
||||||
|
dropdown:
|
||||||
|
enabled: true
|
||||||
BIN
screenshot.jpg
Executable file
BIN
screenshot.jpg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
5
templates/default.html.twig
Executable file
5
templates/default.html.twig
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
{% extends 'partials/base.html.twig' %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{{ page.content }}
|
||||||
|
{% endblock %}
|
||||||
8
templates/error.html.twig
Executable file
8
templates/error.html.twig
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
{% extends 'partials/base.html.twig' %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="lead text-center">
|
||||||
|
<h1>Error!</h1>
|
||||||
|
{{ page.content }}
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
74
templates/partials/base.html.twig
Executable file
74
templates/partials/base.html.twig
Executable file
@@ -0,0 +1,74 @@
|
|||||||
|
{% set theme_config = attribute(config.themes, config.system.pages.theme) %}
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{{ grav.language.getActive ?: grav.config.site.default_lang }}">
|
||||||
|
<head>
|
||||||
|
{% block head %}
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>{% if header.title %}{{ header.title|e('html') }} | {% endif %}{{ site.title|e('html') }}</title>
|
||||||
|
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
{% include 'partials/metadata.html.twig' %}
|
||||||
|
|
||||||
|
<link rel="alternate" type="application/atom+xml" title="My Feed" href="{{ base_url }}.atom" />
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="My Feed" href="{{ base_url }}.rss" />
|
||||||
|
|
||||||
|
<link rel="icon" type="image/png" href="{{ url('theme://images/logo.png') }}" />
|
||||||
|
<link rel="canonical" href="{{ page.url(true, true) }}" />
|
||||||
|
{% endblock head %}
|
||||||
|
|
||||||
|
{% block stylesheets %}
|
||||||
|
{% do assets.addCss('https://unpkg.com/purecss@1.0.0/build/pure-min.css', 100) %}
|
||||||
|
{% do assets.addCss('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css', 99) %}
|
||||||
|
{% do assets.addCss('theme://css/custom.css', 98) %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block javascripts %}
|
||||||
|
{% do assets.addJs('jquery', 100) %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block assets deferred %}
|
||||||
|
{{ assets.css()|raw }}
|
||||||
|
{{ assets.js()|raw }}
|
||||||
|
{% endblock %}
|
||||||
|
</head>
|
||||||
|
<body id="top" class="{{ page.header.body_classes }}">
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
<div class="header">
|
||||||
|
<div class="wrapper padding">
|
||||||
|
<a class="logo left" href="{{ home_url }}">
|
||||||
|
<i class="fa fa-rebel"></i>
|
||||||
|
{{ config.site.title }}
|
||||||
|
</a>
|
||||||
|
{% block header_navigation %}
|
||||||
|
<nav class="main-nav">
|
||||||
|
{% include 'partials/navigation.html.twig' %}
|
||||||
|
</nav>
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<section id="body">
|
||||||
|
<div class="wrapper padding">
|
||||||
|
{% block content %}{% endblock %}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block footer %}
|
||||||
|
<div class="footer text-center">
|
||||||
|
<div class="wrapper padding">
|
||||||
|
<p><a href="http://getgrav.org">Grav</a> was <i class="fa fa-code"></i> with <i class="fa fa-heart"></i> by <a href="http://www.rockettheme.com">RocketTheme</a>.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block bottom %}
|
||||||
|
{{ assets.js('bottom')|raw }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
48
templates/partials/navigation.html.twig
Executable file
48
templates/partials/navigation.html.twig
Executable file
@@ -0,0 +1,48 @@
|
|||||||
|
{% macro loop(page) %}
|
||||||
|
{% for p in page.children.visible %}
|
||||||
|
{% set current_page = (p.active or p.activeChild) ? 'selected' : '' %}
|
||||||
|
{% if p.children.visible.count > 0 %}
|
||||||
|
<li class="has-children {{ current_page }}">
|
||||||
|
<a href="{{ p.url }}">
|
||||||
|
{% if p.header.icon %}<i class="fa fa-{{ p.header.icon }}"></i>{% endif %}
|
||||||
|
{{ p.menu }}
|
||||||
|
</a>
|
||||||
|
<ul>
|
||||||
|
{{ _self.loop(p) }}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<li class="{{ current_page }}">
|
||||||
|
<a href="{{ p.url }}">
|
||||||
|
{% if p.header.icon %}<i class="fa fa-{{ p.header.icon }}"></i>{% endif %}
|
||||||
|
{{ p.menu }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
{% if theme_config.dropdown.enabled %}
|
||||||
|
{{ _self.loop(pages) }}
|
||||||
|
{% else %}
|
||||||
|
{% for page in pages.children.visible %}
|
||||||
|
{% set current_page = (page.active or page.activeChild) ? 'selected' : '' %}
|
||||||
|
<li class="{{ current_page }}">
|
||||||
|
<a href="{{ page.url }}">
|
||||||
|
{% if page.header.icon %}<i class="fa fa-{{ page.header.icon }}"></i>{% endif %}
|
||||||
|
{{ page.menu }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% for mitem in site.menu %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ mitem.url }}">
|
||||||
|
{% if mitem.icon %}<i class="fa fa-{{ mitem.icon }}"></i>{% endif %}
|
||||||
|
{{ mitem.text }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
BIN
thumbnail.jpg
Executable file
BIN
thumbnail.jpg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
Reference in New Issue
Block a user