Merge pull request #28 from pmoreno-rodriguez/develop

Updates to version 1.0.3
This commit is contained in:
pmoreno.rodriguez 2023-02-08 22:57:17 +01:00 committed by GitHub
commit c72614a4f4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
49 changed files with 1535 additions and 986 deletions

21
CHANGELOG.md Normal file → Executable file
View file

@ -1,3 +1,24 @@
# v1.0.3
## 08/02/2022
1. [](#bugfix)
* Fixed logo display when only mobile logo is chosen.
* Fixed bug in simplesearch item (added `striptags` filter in page.summary).
* Fixed demo content removing .es prefix.
* Fixed search results image with `|raw` filter.
* Fixed display of svg in search results.
2. [](#improved)
* Autoformatted some twigs (thanks @pikim).
* Improved the definition of variables in twig templates.
* Minimal options in future2021.yaml file.
* Added German translation (thanks @pikim).
* Renamed custom.css to misc.css.
* Update author and avatar variables in blog.
3. [](#new)
* Added filter by URI on results page by taxonomy.
* Added support for translate-date (thanks @pikim) and twig-extensions plugins.
* Allow disabling sidebar in all pages.
* Added support to Login Form
# v1.0.2
## 11/09/2022

3
README.md Normal file → Executable file
View file

@ -51,3 +51,6 @@ Installing the Future 2021 theme can be done in one of two ways. Our GPM (Grav P
# Future plans
- ~~Translations English - Spanish for administration and front-end~~
- Custom templates for Login plugin (login form, forgot form, etc.)
- Improve the portfolio template with Glightbox JS features.
- Create a Flex Directory for authors and avatars.

View file

@ -67,6 +67,7 @@ input::-moz-focus-inner {
input, select, textarea {
-moz-appearance: none;
-webkit-appearance: none;
-ms-appearance: none;
appearance: none;
}
@ -95,8 +96,13 @@ body {
background: #f4f4f4;
}
body.is-preload *, body.is-preload *:before, body.is-preload *:after {
-moz-animation: none !important;
-webkit-animation: none !important;
-ms-animation: none !important;
animation: none !important;
-moz-transition: none !important;
-webkit-transition: none !important;
-ms-transition: none !important;
transition: none !important;
}
@ -135,12 +141,18 @@ body, input, select, textarea {
}
a {
-moz-transition: color 0.2s ease, border-bottom-color 0.2s ease;
-webkit-transition: color 0.2s ease, border-bottom-color 0.2s ease;
-ms-transition: color 0.2s ease, border-bottom-color 0.2s ease;
transition: color 0.2s ease, border-bottom-color 0.2s ease;
border-bottom: dotted 1px rgba(160, 160, 160, 0.65);
color: inherit;
text-decoration: none;
}
a:before {
-moz-transition: color 0.2s ease;
-webkit-transition: color 0.2s ease;
-ms-transition: color 0.2s ease;
transition: color 0.2s ease;
}
a:hover {
@ -1373,14 +1385,19 @@ hr.major {
/* Author */
.author {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
-moz-flex-direction: row;
-webkit-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row;
-moz-align-items: center;
-webkit-align-items: center;
-ms-align-items: center;
align-items: center;
-moz-justify-content: -moz-flex-end;
-webkit-justify-content: -webkit-flex-end;
-ms-justify-content: -ms-flex-end;
justify-content: flex-end;
border-bottom: 0;
@ -1392,6 +1409,9 @@ hr.major {
white-space: nowrap;
}
.author .name {
-moz-transition: border-bottom-color 0.2s ease;
-webkit-transition: border-bottom-color 0.2s ease;
-ms-transition: border-bottom-color 0.2s ease;
transition: border-bottom-color 0.2s ease;
border-bottom: dotted 1px rgba(160, 160, 160, 0.65);
display: block;
@ -1444,7 +1464,11 @@ button,
.button {
-moz-appearance: none;
-webkit-appearance: none;
-ms-appearance: none;
appearance: none;
-moz-transition: background-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
-webkit-transition: background-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
-ms-transition: background-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
transition: background-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
background-color: transparent;
border: 0;
@ -1605,6 +1629,7 @@ select,
textarea {
-moz-appearance: none;
-webkit-appearance: none;
-ms-appearance: none;
appearance: none;
background: rgba(160, 160, 160, 0.075);
border: none;
@ -1704,6 +1729,7 @@ input[type=checkbox],
input[type=radio] {
-moz-appearance: none;
-webkit-appearance: none;
-ms-appearance: none;
appearance: none;
display: block;
float: left;
@ -1924,6 +1950,7 @@ dl dd {
/* Actions */
ul.actions {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
cursor: default;
@ -1937,6 +1964,7 @@ ul.actions li {
}
ul.actions.special {
-moz-justify-content: center;
-webkit-justify-content: center;
-ms-justify-content: center;
justify-content: center;
width: 100%;
@ -1947,6 +1975,8 @@ ul.actions.special li:first-child {
}
ul.actions.stacked {
-moz-flex-direction: column;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
margin-left: 0;
}
@ -1961,8 +1991,11 @@ ul.actions.fit {
}
ul.actions.fit li {
-moz-flex-grow: 1;
-webkit-flex-grow: 1;
-ms-flex-grow: 1;
flex-grow: 1;
-moz-flex-shrink: 1;
-webkit-flex-shrink: 1;
-ms-flex-shrink: 1;
flex-shrink: 1;
width: 100%;
@ -1976,14 +2009,19 @@ ul.actions.fit.stacked {
@media screen and (max-width: 480px) {
ul.actions:not(.fixed) {
-moz-flex-direction: column;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
margin-left: 0;
width: 100% !important;
}
ul.actions:not(.fixed) li {
-moz-flex-grow: 1;
-webkit-flex-grow: 1;
-ms-flex-grow: 1;
flex-grow: 1;
-moz-flex-shrink: 1;
-webkit-flex-shrink: 1;
-ms-flex-shrink: 1;
flex-shrink: 1;
padding: 1em 0 0 0;
@ -2050,12 +2088,16 @@ ul.posts li:first-child {
}
ul.posts article {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
-moz-align-items: -moz-flex-start;
-webkit-align-items: -webkit-flex-start;
-ms-align-items: -ms-flex-start;
align-items: flex-start;
-moz-flex-direction: row-reverse;
-webkit-flex-direction: row-reverse;
-ms-flex-direction: row-reverse;
flex-direction: row-reverse;
}
ul.posts article .image {
@ -2069,6 +2111,7 @@ ul.posts article .image img {
}
ul.posts article header {
-moz-flex-grow: 1;
-webkit-flex-grow: 1;
-ms-flex-grow: 1;
flex-grow: 1;
flex: 1;
@ -2095,9 +2138,12 @@ ul.posts article header > :last-child {
/* Mini Post */
.mini-post {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
-moz-flex-direction: column-reverse;
-webkit-flex-direction: column-reverse;
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
background: #ffffff;
border: solid 1px rgba(160, 160, 160, 0.3);
@ -2108,10 +2154,16 @@ ul.posts article header > :last-child {
width: 100%;
}
.mini-post .image img {
-moz-transition: -moz-transform 0.2s ease-out;
-webkit-transition: -webkit-transform 0.2s ease-out;
-ms-transition: -ms-transform 0.2s ease-out;
transition: transform 0.2s ease-out;
width: 100%;
}
.mini-post .image:hover img {
-moz-transform: scale(1.05);
-webkit-transform: scale(1.05);
-ms-transform: scale(1.05);
transform: scale(1.05);
}
.mini-post header {
@ -2119,6 +2171,7 @@ ul.posts article header > :last-child {
min-height: 4em;
position: relative;
-moz-flex-grow: 1;
-webkit-flex-grow: 1;
-ms-flex-grow: 1;
flex-grow: 1;
}
@ -2146,8 +2199,12 @@ ul.posts article header > :last-child {
@media screen and (max-width: 1280px) {
.mini-posts {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
-moz-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
width: calc(100% + 2em);
}
@ -2186,6 +2243,7 @@ ul.posts article header > :last-child {
}
.post > header {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
border-bottom: solid 1px rgba(160, 160, 160, 0.3);
@ -2196,6 +2254,7 @@ ul.posts article header > :last-child {
}
.post > header .title {
-moz-flex-grow: 1;
-webkit-flex-grow: 1;
-ms-flex-grow: 1;
flex-grow: 1;
-ms-flex: 1;
@ -2236,21 +2295,30 @@ ul.posts article header > :last-child {
overflow: hidden;
}
.post > a.image.featured img {
-moz-transition: -moz-transform 0.2s ease-out;
-webkit-transition: -webkit-transform 0.2s ease-out;
-ms-transition: -ms-transform 0.2s ease-out;
transition: transform 0.2s ease-out;
}
.post > a.image.featured:hover img {
-moz-transform: scale(1.05);
-webkit-transform: scale(1.05);
-ms-transform: scale(1.05);
transform: scale(1.05);
}
.post > footer {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
-moz-align-items: center;
-webkit-align-items: center;
-ms-align-items: center;
align-items: center;
}
.post > footer .actions {
-moz-flex-grow: 1;
-webkit-flex-grow: 1;
-ms-flex-grow: 1;
flex-grow: 1;
}
@ -2291,6 +2359,8 @@ ul.posts article header > :last-child {
}
.post > header {
-moz-flex-direction: column;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
padding: 3.75em 3em 1.25em 3em;
border-left: 0;
@ -2303,12 +2373,15 @@ ul.posts article header > :last-child {
}
.post > header .meta {
-moz-align-items: center;
-webkit-align-items: center;
-ms-align-items: center;
align-items: center;
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
-moz-justify-content: center;
-webkit-justify-content: center;
-ms-justify-content: center;
justify-content: center;
border-left: 0;
@ -2334,6 +2407,8 @@ ul.posts article header > :last-child {
}
.post > header .meta .author {
-moz-flex-direction: row-reverse;
-webkit-flex-direction: row-reverse;
-ms-flex-direction: row-reverse;
flex-direction: row-reverse;
margin-bottom: 0;
}
@ -2364,9 +2439,12 @@ ul.posts article header > :last-child {
@media screen and (max-width: 480px) {
.post > header .meta {
-moz-align-items: center;
-webkit-align-items: center;
-ms-align-items: center;
align-items: center;
-moz-flex-direction: column;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
}
.post > header .meta > * {
@ -2384,9 +2462,12 @@ ul.posts article header > :last-child {
}
.post > footer {
-moz-align-items: -moz-stretch;
-webkit-align-items: -webkit-stretch;
-ms-align-items: -ms-stretch;
align-items: stretch;
-moz-flex-direction: column-reverse;
-webkit-flex-direction: column-reverse;
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
}
.post > footer .stats {
@ -2475,10 +2556,16 @@ table.alt tfoot {
border-radius: 10px;
}
.portfolio_item .image img {
-moz-transition: -moz-transform 0.2s ease-out;
-webkit-transition: -webkit-transform 0.2s ease-out;
-ms-transition: -ms-transform 0.2s ease-out;
transition: transform 0.2s ease-out;
width: 100%;
}
.portfolio_item .image:hover img {
-moz-transform: scale(1.05);
-webkit-transform: scale(1.05);
-ms-transform: scale(1.05);
transform: scale(1.05);
}
@ -2486,6 +2573,7 @@ table.alt tfoot {
#banner {
padding: 6em 0 4em 0;
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
}
@ -2499,16 +2587,22 @@ table.alt tfoot {
}
#banner .content {
-moz-flex-grow: 1;
-webkit-flex-grow: 1;
-ms-flex-grow: 1;
flex-grow: 1;
-moz-flex-shrink: 1;
-webkit-flex-shrink: 1;
-ms-flex-shrink: 1;
flex-shrink: 1;
width: 60%;
}
#banner .image {
-moz-flex-grow: 0;
-webkit-flex-grow: 0;
-ms-flex-grow: 0;
flex-grow: 0;
-moz-flex-shrink: 0;
-webkit-flex-shrink: 0;
-ms-flex-shrink: 0;
flex-shrink: 0;
display: block;
@ -2520,18 +2614,18 @@ table.alt tfoot {
-moz-object-fit: contain;
-webkit-object-fit: contain;
-ms-object-fit: contain;
-o-object-fit: contain;
object-fit: contain;
-moz-object-position: center;
-webkit-object-position: center;
-ms-object-position: center;
-o-object-position: center;
object-position: center;
width: 100%;
}
@media screen and (orientation: portrait) {
#banner {
-moz-flex-direction: column-reverse;
-webkit-flex-direction: column-reverse;
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
}
#banner h1 br {
@ -2539,16 +2633,22 @@ table.alt tfoot {
}
#banner .content {
-moz-flex-grow: 0;
-webkit-flex-grow: 0;
-ms-flex-grow: 0;
flex-grow: 0;
-moz-flex-shrink: 0;
-webkit-flex-shrink: 0;
-ms-flex-shrink: 0;
flex-shrink: 0;
width: 100%;
}
#banner .image {
-moz-flex-grow: 0;
-webkit-flex-grow: 0;
-ms-flex-grow: 0;
flex-grow: 0;
-moz-flex-shrink: 0;
-webkit-flex-shrink: 0;
-ms-flex-shrink: 0;
flex-shrink: 0;
margin: 0 0 4em 0;
@ -2593,6 +2693,8 @@ table.alt tfoot {
/* Dropdown menu in header */
#header .dropdown {
-moz-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
border-left: solid 1px rgba(160, 160, 160, 0.3);
height: inherit;
@ -2654,10 +2756,16 @@ table.alt tfoot {
}
#header .dropdown ul li:hover > ul {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
-moz-flex-direction: column;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-moz-flex-wrap: nowrap;
-webkit-flex-wrap: nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
min-width: 15em;
border: solid 1px rgba(160, 160, 160, 0.3);
@ -2717,6 +2825,7 @@ ul.menulink > li a:hover.tags {
ul.menulink > li > ul,
ul.menulink > li a span {
-webkit-transition: color 0.2s ease;
transition: color 0.2s ease;
font-size: 0.9em;
text-transform: uppercase;
@ -2724,6 +2833,7 @@ ul.menulink > li a span {
}
ul.menulink > li a span li {
-webkit-transition: color 0.2s ease;
transition: color 0.2s ease;
font-size: 0.8em;
font-weight: 400;
@ -2744,6 +2854,7 @@ ul.subitem {
ul.subitem > li > ul,
ul.subitem > li a span {
-webkit-transition: color 0.2s ease;
transition: color 0.2s ease;
font-size: 0.9em;
font-weight: 400;
@ -2762,6 +2873,7 @@ ul.subitem_hide {
ul.subitem_hide > li > ul,
ul.subitem_hide > li a span {
-webkit-transition: color 0.2s ease;
transition: color 0.2s ease;
margin-bottom: 0;
font-weight: 400;
@ -2789,9 +2901,11 @@ body {
#header {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
-moz-justify-content: space-between;
-webkit-justify-content: space-between;
-ms-justify-content: space-between;
justify-content: space-between;
background-color: #ffffff;
@ -2889,6 +3003,9 @@ body {
vertical-align: middle;
}
#header #search {
-moz-transition: all 0.5s ease;
-webkit-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
transition: all 0.5s ease;
max-width: 0;
opacity: 0;
@ -2925,10 +3042,16 @@ body {
/* Wrapper */
#wrapper {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
-moz-flex-direction: row-reverse;
-webkit-flex-direction: row-reverse;
-ms-flex-direction: row-reverse;
flex-direction: row-reverse;
-moz-transition: opacity 0.5s ease;
-webkit-transition: opacity 0.5s ease;
-ms-transition: opacity 0.5s ease;
transition: opacity 0.5s ease;
margin: 0 auto;
max-width: 100%;
@ -2961,6 +3084,7 @@ body.single #wrapper {
/* Main */
#main {
-moz-flex-grow: 1;
-webkit-flex-grow: 1;
-ms-flex-grow: 1;
flex-grow: 1;
flex: 1;
@ -3036,6 +3160,7 @@ body.single #wrapper {
}
#intro header h2 {
font-size: 2em;
font-weight: 900;
}
#intro header p {
font-size: 0.7em;
@ -3058,6 +3183,15 @@ body.single #wrapper {
#intro header > :last-child {
margin-bottom: 0;
}
#intro header .logo {
margin: 0 0 0.5em 0;
}
#intro header header h2 {
font-size: 1.25em;
}
#intro header header > :last-child {
margin-bottom: 0;
}
}
/* Footer */
@ -3078,7 +3212,13 @@ body.single #footer {
/* Menu */
#menu {
-moz-transform: translateX(25em);
-webkit-transform: translateX(25em);
-ms-transform: translateX(25em);
transform: translateX(25em);
-moz-transition: -moz-transform 0.5s ease, visibility 0.5s;
-webkit-transition: -webkit-transform 0.5s ease, visibility 0.5s;
-ms-transition: -ms-transform 0.5s ease, visibility 0.5s;
transition: transform 0.5s ease, visibility 0.5s;
-webkit-overflow-scrolling: touch;
background: #ffffff;
@ -3119,6 +3259,9 @@ body.single #footer {
border-bottom: 0;
}
#menu .links > li a h3 {
-moz-transition: color 0.2s ease;
-webkit-transition: color 0.2s ease;
-ms-transition: color 0.2s ease;
transition: color 0.2s ease;
font-size: 0.7em;
}
@ -3140,6 +3283,9 @@ body.single #footer {
padding-top: 0;
}
body.is-menu-visible #menu {
-moz-transform: translateX(0);
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
visibility: visible;
}

File diff suppressed because one or more lines are too long

37
assets/css/custom.css → assets/css/misc.css Normal file → Executable file
View file

@ -65,20 +65,51 @@
.search-row {
display: flex;
flex-wrap: nowrap;
align-items: top;
padding-bottom: 1.25em;
margin-bottom: 1.5em;
}
.search-row:last-child {
border: 0;
padding-bottom: 0;
}
.search-row a {
border: 0;
}
.search-image img {
overflow:hidden;
width: 100px;
height: 100px;
overflow:hidden;
object-fit: cover;
object-position: 0 100%;
object-position: 0% 100%;
}
.search-image a {
border-bottom: none;
}
@media only all and (max-width: 47.938em) {
.search-image img {display:none;}
}
.search-item {
flex: 1;
margin-left: 30px;
margin-bottom: 50px;
border-bottom: solid 1px rgba(160, 160, 160, 0.3);
padding-bottom: 2em;
}
/* Styles modified from Breadcrumbs */
#breadcrumbs {
padding-inline-start: 0rem;
margin: 1em 0;
height: auto;
line-height: 2em;
}
#breadcrumbs span {
padding: 0rem;
}
#breadcrumbs i {
padding: 0 1rem;
width: 0 !important;
}

82
blueprints.yaml Normal file → Executable file
View file

@ -33,10 +33,25 @@ form:
validate:
type: bool
sidebar:
type: toggle
label: FUTURE.ADMIN.THEME.SIDEBAR
help: FUTURE.ADMIN.THEME.SIDEBAR_HELP
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header_section:
type: section
title: FUTURE.ADMIN.THEME.HEADER_SECTION
underline: true
type: fieldset
collapsible: true
collapsed: true
icon: header
title: FUTURE.ADMIN.THEME.HEADER
fields:
favicon:
type: file
@ -74,12 +89,6 @@ form:
label: FUTURE.ADMIN.THEME.SLOGAN
blog_section:
type: columns
fields:
blog_fields:
type: column
fields:
blog:
type: fieldset
collapsible: true
collapsed: true
@ -90,7 +99,7 @@ form:
blog_page:
type: text
label: FUTURE.ADMIN.THEME.BLOG_PAGE
help: FUTURE.ADMIN.THEME.BLOG_PAGE_DESCRIPTION
help: FUTURE.ADMIN.THEME.BLOG_PAGE_HELP
size: medium
default: '/blog'
@ -104,6 +113,7 @@ form:
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
miniposts_category:
type: text
markdown: true
@ -122,18 +132,13 @@ form:
max: 5
footer_section:
type: columns
fields:
footer_fields:
type: column
fields:
footer:
type: fieldset
collapsible: true
collapsed: true
icon: list-alt
title: FUTURE.ADMIN.THEME.FOOTER
fields:
footer.title:
type: text
label: FUTURE.ADMIN.THEME.FOOTER_TITLE
@ -151,13 +156,15 @@ form:
footer.button_url:
type: text
label: FUTURE.ADMIN.THEME.FOOTER_BUTTON_URL
social_icons:
social_icons_section:
type: fieldset
collapsible: true
collapsed: true
icon: share-alt
title: FUTURE.ADMIN.THEME.FOOTER_SOCIALS_ICONS
fields:
social:
name: social
type: list
@ -174,49 +181,50 @@ form:
.icon:
type: iconpicker
label: FUTURE.ADMIN.THEME.FOOTER_SOCIALS_ICON_ICON
custommenu_options:
custommenu_options_section:
type: fieldset
collapsible: true
collapsed: true
icon: bars
title: 'Custom Menu Items'
title: FUTURE.ADMIN.THEME.CUSTOM_MENU_TITLE
fields:
displaycustommenus.enabled:
custommenus.enabled:
type: toggle
label: 'Display Custom Menu Items'
help: 'Determines if any defined custom menu entries are displayed in the menubar.'
label: FUTURE.ADMIN.THEME.CUSTOM_MENU_ENABLE
help: FUTURE.ADMIN.THEME.CUSTOM_MENU_ENABLE_HELP
default: 0
highlight: 1
options:
'0': No
'1': Yes
0: PLUGIN_ADMIN.DISABLED
1: PLUGIN_ADMIN.ENABLED
validate:
type: bool
custommenu:
name: menu
type: list
label: 'Custom Menu Items'
label: FUTURE.ADMIN.THEME.CUSTOM_MENU_TITLE
fields:
.text:
type: text
label: Text
description: 'Text label for menu item.'
label: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_TEXT
description: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_TEXT_DESCRIPTION
.icon:
type: text
label: Icon
description: 'Font Awesome icon for menu item.'
label: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_ICON
description: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_ICON_DESCRIPTION
.url:
type: text
label: URL
description: 'URL for menu item.'
label: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_URL
description: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_URL_DESCRIPTION
.target:
type: select
label: Target
label: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_TARGET
default: _self
size: medium
options:
_blank: 'Open in a new window'
_parent: 'Open in the parent frame'
_top: 'Open in the full body of the window'
_self: 'Open in the same frame as clicked'
_blank: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_TARGET_BLANK
_parent: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_TARGET_PARENT
_self: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_TARGET_SELF
_top: FUTURE.ADMIN.THEME.CUSTOM_MENU_ITEM_TARGET_TOP

View file

@ -72,16 +72,18 @@ form:
header.show_breadcrumbs:
type: toggle
toggleable: true
label: Show Breadcrumbs
label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_BREADCRUMBS
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header.content.pagination:
header.show_pagination:
type: toggle
toggleable: true
label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_PAGINATION
highlight: 1
default: 1
@ -93,6 +95,7 @@ form:
header.content.url_taxonomy_filters:
type: toggle
toggleable: true
label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_URL_TAXONOMY_FILTERS
highlight: 1
default: 1

16
blueprints/default.yaml Normal file → Executable file
View file

@ -30,3 +30,19 @@ form:
type: pagemediaselect
label: FUTURE.ADMIN.DEFAULT.PRIMARY_IMAGE
preview_images: true
options:
fields:
publishing:
fields:
header.show_sidebar:
type: toggle
toggleable: true
label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_SIDEBAR
ordering@: -99
default: 0
highlight: 0
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool

View file

@ -14,6 +14,17 @@ form:
fields:
header.show_breadcrumbs:
type: toggle
toggleable: true
label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_BREADCRUMBS
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
summary:
type: section
title: FUTURE.ADMIN.ITEM.ITEM_SUMMARY

201
languages.yaml Normal file → Executable file
View file

@ -5,7 +5,7 @@ en:
DROPDOWN_MENU: Dropdown menu
PRODUCTION_MODE: Production Mode
PRODUCTION_MODE_HELP: When enabled, Future will render with minified CSS
HEADER_SECTION: Header Section
HEADER: Header
FAVICON: Choose your own favicon
CUSTOM_LOGO: Custom Logo
CUSTOM_LOGO_DESCRIPTION: Will be used instead of default logo `theme://images/grav-logo.svg`
@ -13,8 +13,10 @@ en:
SLOGAN: Slogan
BLOG_DEFAULTS: Blog Defaults
BLOG_PAGE: Blog Page
BLOG_PAGE_DESCRIPTION: The route to the blog page when working with blog sidebar
MINIPOSTS: Enable Miniposts in Sidebar
BLOG_PAGE_HELP: The route to the blog page when working with blog sidebar
SIDEBAR: Show sidebar on non-editable pages
SIDEBAR_HELP: Show sidebar on pages like Offline, SimpleSearch Results, Error, etc.
MINIPOSTS: Show miniposts in sidebar
MINIPOSTS_NUMBER: Miniposts number to show
MINIPOSTS_NUMBER_DESCRIPTION: Number of miniposts that will be showed in sidebar
MINIPOSTS_CATEGORY: Miniposts category
@ -29,6 +31,20 @@ en:
FOOTER_SOCIALS_ICON_NAME: Social Name
FOOTER_SOCIALS_ICON_URL: URL Link to Social
FOOTER_SOCIALS_ICON_ICON: Icon to Social
CUSTOM_MENU_TITLE: 'Custom Menu Items'
CUSTOM_MENU_ENABLE: 'Display Custom Menu Items'
CUSTOM_MENU_ENABLE_HELP: 'Determines if any defined custom menu entries are displayed in the menubar.'
CUSTOM_MENU_ITEM_TEXT: 'Text'
CUSTOM_MENU_ITEM_TEXT_DESCRIPTION: 'Text label for menu item.'
CUSTOM_MENU_ITEM_ICON: 'Icon'
CUSTOM_MENU_ITEM_ICON_DESCRIPTION: 'Font Awesome icon for menu item.'
CUSTOM_MENU_ITEM_URL: 'URL'
CUSTOM_MENU_ITEM_URL_DESCRIPTION: 'URL for menu item.'
CUSTOM_MENU_ITEM_TARGET: 'Target'
CUSTOM_MENU_ITEM_TARGET_BLANK: 'Open in a new window'
CUSTOM_MENU_ITEM_TARGET_PARENT: 'Open in the parent frame'
CUSTOM_MENU_ITEM_TARGET_SELF: 'Open in the same frame as clicked'
CUSTOM_MENU_ITEM_TARGET_TOP: 'Open in the full body of the window'
DEFAULT:
PRIMARY_IMAGE: Primary image
MODULAR:
@ -52,7 +68,6 @@ en:
FEATURES_BUTTON_URL: Button URL
FEATURES_BUTTON_URL_TARGET: Open URL in a new window
BLOG:
BLOG_TAB: Blog Config
BLOG_CONTENT_TITLE: Content Definition
@ -66,7 +81,9 @@ en:
BLOG_CONTENT_ITEMS_ORDER_DIR: Order
BLOG_CONTENT_ITEMS_ORDER_DIR_ASC: Ascending
BLOG_CONTENT_ITEMS_ORDER_DIR_DESC: Descending
BLOG_CONTENT_ITEMS_PAGINATION: Pagination
BLOG_CONTENT_ITEMS_BREADCRUMBS: Show Breadcrumbs
BLOG_CONTENT_ITEMS_PAGINATION: Show Pagination
BLOG_CONTENT_ITEMS_SIDEBAR: Show Sidebar
BLOG_CONTENT_ITEMS_URL_TAXONOMY_FILTERS: URL Taxonomy Filters
ITEM:
ITEM_TAB: Blog Item
@ -94,6 +111,9 @@ en:
PORTFOLIO_IMAGE_THUMB: Thumbnails
BLOG:
LISTING_TITLE_CATEGORY: 'Posts in Category: '
LISTING_TITLE_TAG: 'Posts with Tag: '
LISTING_TITLE_AUTHOR: 'Posts written by Author: '
ITEM:
CONTINUE_READING: Continue reading...
NEXT_POST: Next Post
@ -120,12 +140,162 @@ en:
HEADLINE: Archives
SYNDICATE:
HEADLINE: Syndicate
LOGIN: Log in
LATESTPOSTS: Latest posts
FEATURED: Featured
PRIVACY: By using this form you agree to our
PRIVACY: By using this form you agree our terms
FORM_SUMMARY: Here is the summary of what you wrote to us
de:
FUTURE:
ADMIN:
THEME:
DROPDOWN_MENU: Dropdown-Menü
PRODUCTION_MODE: Produktionsmodus
PRODUCTION_MODE_HELP: Wenn aktiviert, wird Future mit minimiertem CSS geladen
HEADER: Kopfzeile
FAVICON: Wählen Sie Ihr eigenes Favicon
CUSTOM_LOGO: Benutzerdefiniertes Logo
CUSTOM_LOGO_DESCRIPTION: Dieses Logo wird anstelle des Standardlogos `theme://images/grav-logo.svg` verwendet
CUSTOM_LOGO_MOBILE: Benutzerdefiniertes Logo für Mobilgeräte
SLOGAN: Motto
BLOG_DEFAULTS: Blog-Optionen
BLOG_PAGE: Blog-Seite
BLOG_PAGE_HELP: Der Pfad zur Blog-Seite wenn die Blog-Seitenleiste aktiv ist
SIDEBAR: Seitenleiste auf nicht bearbeitbaren Seiten anzeigen
SIDEBAR_HELP: Seitenleiste auf Seiten wie Offline, SimpleSearch-Ergebnisse, Fehler usw. anzeigen.
MINIPOSTS: Miniposts in der Seitenleiste zeigen
MINIPOSTS_NUMBER: Anzahl der anzuzeigenden Miniposts
MINIPOSTS_NUMBER_DESCRIPTION: Anzahl der in der Seitenleiste anzuzeigenden Miniposts
MINIPOSTS_CATEGORY: Kategorie für Miniposts
MINIPOSTS_CATEGORY_DESCRIPTION: Legen Sie einen Namen für die Miniposts-Kategorie fest.<br />`Sie müssen diesen Namen in Optionen->Taxonomie->Kategorie einfügen`
FOOTER: Fusszeile
FOOTER_TITLE: Fusszeilentitel
FOOTER_DESCRIPTION: Fusszeilentext
FOOTER_COPYRIGHT: Copyright-Text
FOOTER_BUTTON_TEXT: Schaltflächentext
FOOTER_BUTTON_URL: Schaltflächen-URL
FOOTER_SOCIALS_ICONS: Symbole für soziale Medien
FOOTER_SOCIALS_ICON_NAME: Name des sozialen Netzwerks
FOOTER_SOCIALS_ICON_URL: URL-Link zum sozialen Netzwerk
FOOTER_SOCIALS_ICON_ICON: Symbol des sozialen Netzwerks
CUSTOM_MENU_TITLE: 'Benutzerdefinierte Menüpunkte'
CUSTOM_MENU_ENABLE: 'Benutzerdefinierte Menüpunkte aktivieren'
CUSTOM_MENU_ENABLE_HELP: 'Legt fest, ob definierte benutzerdefinierte Menüeinträge in der Menüleiste angezeigt werden.'
CUSTOM_MENU_ITEM_TEXT: 'Text'
CUSTOM_MENU_ITEM_TEXT_DESCRIPTION: 'Textbeschriftung für Menüpunkt.'
CUSTOM_MENU_ITEM_ICON: 'Symbol'
CUSTOM_MENU_ITEM_ICON_DESCRIPTION: 'FontAwesome-Symbol für Menüelement.'
CUSTOM_MENU_ITEM_URL: 'URL'
CUSTOM_MENU_ITEM_URL_DESCRIPTION: 'URL für Menüpunkt.'
CUSTOM_MENU_ITEM_TARGET: 'Ziel'
CUSTOM_MENU_ITEM_TARGET_BLANK: 'In neuem Fenster öffnen'
CUSTOM_MENU_ITEM_TARGET_PARENT: 'In übergeordnetem Frame öffnen'
CUSTOM_MENU_ITEM_TARGET_SELF: 'In selbem Frame öffnen'
CUSTOM_MENU_ITEM_TARGET_TOP: 'In vollem Fensterkörper öffnen'
DEFAULT:
PRIMARY_IMAGE: Hauptbild
MODULAR:
BANNER:
BANNER_TAB: Banner
BANNER_SUBTITLE: Bildbeschriftung
BANNER_BUTTON_TEXT: Schaltflächentext
BANNER_BUTTON_URL: Schaltflächen-URL
BANNER_IMAGE: Bild
BANNER_IMAGE_DESCRIPTION: Wählen Sie ein Bild aus
FEATURES:
FEATURES_TAB: Funktionen
FEATURES_LAYOUT: Layout
FEATURES_LAYOUT_TWOCOLS: Mittel = 2 / 1 Spalten
FEATURES_LAYOUT_THREECOLS: Standard = 3 / 2 / 1 Spalten
FEATURES_HEADER: Funktionen
FEATURES_IMAGE: Bild
FEATURES_TITLE: Titel
FEATURES_TEXT: Text
FEATURES_BUTTON_TEXT: Schaltflächentext
FEATURES_BUTTON_URL: Schaltflächen-URL
FEATURES_BUTTON_URL_TARGET: Öffnen Sie die URL in einem neuen Fenster
BLOG:
BLOG_TAB: Blog-Einstellungen
BLOG_CONTENT_TITLE: Content Definition
BLOG_CONTENT_ITEMS: Artikel
BLOG_CONTENT_ITEMS_LIMIT: Maximale Artikel-Anzahl
BLOG_CONTENT_ITEMS_ORDER_BY: Sortieren nach
BLOG_CONTENT_ITEMS_ORDER_BY_DATE: Datum
BLOG_CONTENT_ITEMS_ORDER_BY_TITLE: Titel
BLOG_CONTENT_ITEMS_ORDER_BY_FOLDER: Verzeichnis
BLOG_CONTENT_ITEMS_ORDER_BY_DEFAULT: Standard
BLOG_CONTENT_ITEMS_ORDER_DIR: Reihenfolge
BLOG_CONTENT_ITEMS_ORDER_DIR_ASC: Aufsteigend
BLOG_CONTENT_ITEMS_ORDER_DIR_DESC: Absteigend
BLOG_CONTENT_ITEMS_BREADCRUMBS: Paniermehl anzeigen
BLOG_CONTENT_ITEMS_PAGINATION: Seitennummerierung
BLOG_CONTENT_ITEMS_SIDEBAR: Seitenleiste anzeigen
BLOG_CONTENT_ITEMS_URL_TAXONOMY_FILTERS: Taxonomie filtern nach URL
ITEM:
ITEM_TAB: Blog-Artikel
ITEM_OPTIONS: Optionen
ITEM_SUMMARY: Artikelzusammenfassung
ITEM_SUMMARY_ENABLED: Zusammenfassung aktivieren
ITEM_SUMMARY_FORMAT: Zusammenfassungsformat
ITEM_SUMMARY_FORMAT_SHORT: Verwenden Sie das erste Vorkommen des Trennzeichens oder der Größe
ITEM_SUMMARY_FORMAT_LONG: Zusammenfassungsbegrenzer wird ignoriert
ITEM_SUMMARY_SIZE: Größe
ITEM_SUMMARY_DELIMITER: Zusammenfassungsbegrenzer
ITEM_ORDER: Minipost-Reihenfolge
ITEM_SUBTITLE: Untertitel
ITEM_AVATAR: Avatar-Bild
PORTFOLIO:
PORTFOLIO_TAB: Portfolio
PORTFOLIO_TITLE: Portfolio-Bild
PORTFOLIO_LAYOUT: Layout
PORTFOLIO_LAYOUT_TWOCOLS: Mittel = 2 / 1 Spalten
PORTOFOLIO_LAYOUT_THREECOLS: Standard = 3 / 2 / 1 Spalten
PORTFOLIO_IMAGES: Bilder
PORTFOLIO_IMAGE: Bild
PORTFOLIO_IMAGE_TITLE: Titel
PORTFOLIO_IMAGE_DESCRIPTION: Beschreibung
PORTFOLIO_IMAGE_THUMB: Miniaturansicht
BLOG:
LISTING_TITLE_CATEGORY: 'Beiträge in der Kategorie: '
LISTING_TITLE_TAG: 'Beiträge mit Tag: '
LISTING_TITLE_AUTHOR: 'Beiträge des Autors: '
ITEM:
CONTINUE_READING: Weiterlesen...
NEXT_POST: Nächster Eintrag
PREV_POST: Vorheriger Eintrag
PAGINATION:
PREVIOUS: Vorherige
NEXT: Nächste
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Suche
RELATED_POSTS:
HEADLINE: Verwandte Einträge
RANDOM_ARTICLE:
HEADLINE: Zufälliger Artikel
FEELING_LUCKY: Ich habe Glück!
SOME_TEXT_WIDGET:
HEADLINE: Ein Text-Widget
TAGS:
HEADLINE: Schlagworte
POPULAR_TAGS:
HEADLINE: beliebte Schlagworte
ARCHIVES:
HEADLINE: Letzte Einträge
SYNDICATE:
HEADLINE: Verteilen
LOGIN: Einloggen
LATESTPOSTS: Letzte Beiträge
FEATURED: Hervorgehoben
PRIVACY: Durch die Nutzung dieses Formulars stimmen Sie unseren Bedingungen zu
FORM_SUMMARY: Hier ist die Zusammenfassung dessen, was Sie uns geschrieben haben
es:
FUTURE:
ADMIN:
@ -133,7 +303,7 @@ es:
DROPDOWN_MENU: Menu Desplegable
PRODUCTION_MODE: Modo Producción
PRODUCTION_MODE_HELP: Si está activado, Future cargará con CSS minificado
HEADER_SECTION: Sección de encabezado
HEADER: Sección de encabezado
FAVICON: Elige tu propio favicon
CUSTOM_LOGO: Logo personalizado
CUSTOM_LOGO_DESCRIPTION: Este logo se usará en lugar del log por defecto `theme://images/grav-logo.svg`
@ -141,7 +311,9 @@ es:
SLOGAN: Slogan
BLOG_DEFAULTS: Opciones de Blog
BLOG_PAGE: Página de Blog
BLOG_PAGE_DESCRIPTION: Ruta de la página de Blog cuando funciona con el blog de barra lateral
BLOG_PAGE_HELP: Ruta de la página de Blog cuando funciona con el blog de barra lateral
SIDEBAR: Mostrar barra lateral en página no editables
SIDEBAR_HELP: Mostrar barra lateral en páginas como Offline, SimpleSearch Results, Error, etc.
MINIPOSTS: Activar Miniposts en la barra lateral
MINIPOSTS_NUMBER: Número de miniposts a mostrar
MINIPOSTS_NUMBER_DESCRIPTION: Número de miniposts que se mostrarán en la barra lateral
@ -193,7 +365,9 @@ es:
BLOG_CONTENT_ITEMS_ORDER_DIR: Orden
BLOG_CONTENT_ITEMS_ORDER_DIR_ASC: Ascendente
BLOG_CONTENT_ITEMS_ORDER_DIR_DESC: Descendente
BLOG_CONTENT_ITEMS_PAGINATION: Paginación
BLOG_CONTENT_ITEMS_BREADCRUMBS: Mostrar Migas de Pan
BLOG_CONTENT_ITEMS_PAGINATION: Mostrar Paginación
BLOG_CONTENT_ITEMS_SIDEBAR: Mostrar Barra Lateral
BLOG_CONTENT_ITEMS_URL_TAXONOMY_FILTERS: Filtros de taxonomía por URL
ITEM:
ITEM_TAB: Artículo de Blog
@ -220,8 +394,10 @@ es:
PORTFOLIO_IMAGE_DESCRIPTION: Descripción
PORTFOLIO_IMAGE_THUMB: Miniatura
BLOG:
LISTING_TITLE_CATEGORY: 'Publicaciones en la categoría: '
LISTING_TITLE_TAG: 'Publicaciones con la etiqueta: '
LISTING_TITLE_AUTHOR: 'Publicaciones escritas por: '
ITEM:
CONTINUE_READING: Continuar leyendo...
NEXT_POST: Siguiente Entrada
@ -229,6 +405,7 @@ es:
PAGINATION:
PREVIOUS: Anterior
NEXT: Siguiente
SIDEBAR:
SIMPLE_SEARCH:
HEADLINE: Buscar
@ -247,9 +424,9 @@ es:
HEADLINE: Últimas entradas
SYNDICATE:
HEADLINE: Distribuir
LOGIN: Iniciar sesión
LATESTPOSTS: Últimos posts
FEATURED: Destacados
PRIVACY: Al usar este formulario estás de acuerdo con nuestra
FORM_SUMMARY: Aquí está el resumen de lo que nos escribió.
FORM_SUMMARY: Aquí está el resumen de lo que nos escribió

54
templates/blog.html.twig Normal file → Executable file
View file

@ -1,27 +1,23 @@
{% embed 'partials/base.html.twig' %}
{% extends 'partials/base.html.twig' %}
{% set collection = page.collection() %}
{% set base_url = page.url %}
{% set feed_url = base_url %}
{% if page.header.show_breadcrumbs is defined %}
{% set show_breadcrumbs = page.header.show_breadcrumbs %}
{% else %}
{% set show_breadcrumbs = true %}
{% endif %}
{% if page.header.show_pagination is defined %}
{% set show_pagination = page.header.show_pagination %}
{% else %}
{% set show_pagination = true %}
{% endif %}
{% set show_breadcrumbs = header_var('show_breadcrumbs')|defined(true) %}
{% set show_pagination = header_var('show_pagination')|defined(true) %}
{% set show_sidebar = header_var('show_sidebar')|defined(false) %}
{% set image = page.media[page.header.primaryImage] ?: page.media.images|first %}
{% set title = page.title|raw %}
{# Set page title by taxonomy #}
{% if uri.param('category') %}
{% set page_title = theme_config.listing_title.taxonomy.category | default('Posts in Category: ') ~ uri.param('category') %}
{% set listing_title = 'FUTURE.BLOG.LISTING_TITLE_CATEGORY'|t ~ uri.param('category') %}
{% elseif uri.param('tag') %}
{% set page_title = theme_config.listing_title.taxonomy.tag | default('Posts with Tag: ') ~ uri.param('tag') %}
{% set listing_title = 'FUTURE.BLOG.LISTING_TITLE_TAG'|t ~ uri.param('tag') %}
{% elseif uri.param('author') %}
{% set page_title = theme_config.listing_title.taxonomy.author | default('Posts from Author: ') ~ uri.param('author') %}
{% set listing_title = 'FUTURE.BLOG.LISTING_TITLE_AUTHOR'|t ~ uri.param('author') %}
{% else %}
{% set page_title = theme_config.listing_title.blog | default('') %}
{% set listing_title = page.header.subtitle|raw %}
{% endif %}
{% if base_url == '/' %}
@ -37,13 +33,25 @@
{% endblock %}
{% block content %}
<header>
<div class="title">
<h2>{{ title }}</h2>
{% if listing_title %}
<p>{{ listing_title|raw }}</p>
{% endif %}
</div>
</header>
{% if show_breadcrumbs and config.plugins.breadcrumbs.enabled %}
{% include 'partials/breadcrumbs.html.twig' %}
{% endif %}
<h2>
{{page_title}}
</h2>
{% if image %}
<span class="image featured">
{{ image.cropZoom(1038,437).loading('lazy').html(title, title)|raw }}
</span>
{% endif %}
{{ page.content|raw }}
{% for child in collection %}
{% include 'partials/blog_item.html.twig' with {'page':child, 'truncate':true} %}
@ -52,10 +60,16 @@
{% if show_pagination and config.plugins.pagination.enabled and collection.params.pagination %}
{% include 'partials/pagination.html.twig' with {base_url: page.url, pagination: collection.params.pagination} %}
{% endif %}
{% if show_sidebar == false %}
<section id="footer" class="align-center">
{% include 'partials/footer.html.twig' %}
</section>
{% endif %}
{% endblock %}
{% block sidebar %}
{% if show_sidebar == true %}
{% include 'partials/sidebar_left.html.twig' %}
{% endif %}
{% endblock %}
{% endembed %}

33
templates/default.html.twig Normal file → Executable file
View file

@ -1,4 +1,8 @@
{% extends 'partials/base.html.twig' %}
{% set show_sidebar = header_var('show_sidebar')|defined(false) %}
{% set image = page.media[page.header.primaryImage] ?: page.media.images|first %}
{% set title = page.title|raw %}
{% set subtitle = page.header.subtitle|raw %}
{% block menu %}
{% include 'partials/sidebar_right.html.twig' %}
@ -8,27 +12,32 @@
<article class="post">
<header>
<div class="title">
<h2>{{ page.header.title }}</h2>
{% if page.header.subtitle %}
<p>{{ page.header.subtitle }}</p>
<h2>{{ title }}</h2>
{% if subtitle %}
<p>{{ subtitle }}</p>
{% endif %}
</div>
</header>
{% if page.header.primaryImage %}
{{ page.media[page.header.primaryImage].cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }}
{% else %}
{{ page.media.images|first.cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }}
{% if image %}
<span class="image featured">
{{ image.cropZoom(1038,437).loading('lazy').html(title, title)|raw }}
</span>
{% endif %}
{{ page.content|raw }}
</article>
{% if show_sidebar == false %}
<section id="footer" class="align-center">
{% block footer %}
{% include 'partials/footer.html.twig' %}
{% endblock %}
</section>
{% endif %}
{% endblock %}
{% block sidebar %}
{% if show_sidebar == true %}
{% include 'partials/sidebar_left.html.twig' %}
{% endif %}
{% endblock %}

View file

@ -5,8 +5,7 @@
<div class="title">
<h2>{{ page.header.title }}</h2>
</div>
<div class="meta">
</div>
<div class="meta"></div>
</header>
{{ content|raw }}
{% include "forms/form.html.twig" %}

View file

@ -1,11 +1,16 @@
{% extends 'partials/base.html.twig' %}
{% block content %}
<article class="post">
<header>
<div class="title">
<h2>{{ form.message }}</h2>
</div>
<div class="meta">
{% if config.plugins["translate-date"].enabled %}
<time class="published" datetime="{{ form.date|td(null, "Y-m-d") }}">{{ form.date|td(null, "M j, Y") }}</time>
{% else %}
<time class="published" datetime="{{ form.date|date("Y-m-d") }}">{{ form.date|date("M j, Y") }}</time>
{% endif %}
</div>
</header>
<p>{{'FUTURE.FORM_SUMMARY'|t}}</p>

View file

@ -5,13 +5,11 @@
{% set input = attribute(field, "input@") %}
{% if input is null or input == true %}
{% if form.value(scope ~ field.name) %}
{% block field %}
<div>
{% block field_name %}
<strong>{{ field.name|t|e }}</strong>:
{% endblock %}
{% block field_value %}
@ -48,4 +46,3 @@
{% import _self as macro %}
{{ macro.render_field(form, form.fields, '') }}

View file

@ -35,5 +35,4 @@
{{ field.validate.required in ['on', 'true', 1] ? '<span class="required">*</span>' }}
</label>
</div>
{% endblock %}

15
templates/item.html.twig Normal file → Executable file
View file

@ -1,7 +1,9 @@
{% embed 'partials/base.html.twig' %}
{% extends 'partials/base.html.twig' %}
{% set base_url = page.parent.url %}
{% set feed_url = base_url %}
{% set show_breadcrumbs = header_var('show_breadcrumbs', [page, blog]) %}
{% set show_breadcrumbs = header_var('show_breadcrumbs')|defined(true) %}
{% set show_sidebar = header_var('show_sidebar')|defined(false) %}
{% if base_url == '/' %}
{% set base_url = '' %}
@ -16,16 +18,21 @@
{% endblock %}
{% block content %}
{% if show_breadcrumbs and config.plugins.breadcrumbs.enabled %}
{% include 'partials/breadcrumbs.html.twig' %}
{% endif %}
{% include 'partials/blog_item.html.twig' with {'truncate':false} %}
{% if show_sidebar == false %}
<section id="footer" class="align-center">
{% include 'partials/footer.html.twig' %}
</section>
{% endif %}
{% endblock %}
{% endembed %}
{% block sidebar %}
{% if show_sidebar == true %}
{% include 'partials/sidebar_left.html.twig' %}
{% endif %}
{% endblock %}

10
templates/login.html.twig Executable file
View file

@ -0,0 +1,10 @@
{% extends 'partials/base.html.twig' %}
{% block menu %}
{% include 'partials/sidebar_right.html.twig' %}
{% endblock %}
{% block content %}
{% include 'partials/messages.html.twig' %}
{% include 'partials/login-form.html.twig' %}
{% endblock %}

View file

@ -5,8 +5,13 @@
{% if p.children.visible.count > 0 %}
<li class="{{ current_page }}">
<a>
{% if p.header.icon %}<i class="fa fa-{{ p.header.icon }}"></i>{% endif %}
<span>{{ p.menu }}{% if p.routable ?? false %}&nbsp;<i class="fa fa-angle-down"></i>{% endif %}</span>
{% if p.header.icon %}
<i class="fa fa-{{ p.header.icon }}"></i>
{% endif %}
<span>{{ p.menu }}
{% if p.routable ?? false %}&nbsp;<i class="fa fa-angle-down"></i>
{% endif %}
</span>
</a>
<ul>
{{ macros.nav_loop(p) }}
@ -15,7 +20,9 @@
{% else %}
<li class="{{ current_page }}">
<a href="{{ p.url }}">
{% if p.header.icon %}<i class="fa fa-{{ p.header.icon }}"></i>{% endif %}
{% if p.header.icon %}
<i class="fa fa-{{ p.header.icon }}"></i>
{% endif %}
<span>{{ p.menu }}</span>
</a>
</li>

31
templates/modular.html.twig Normal file → Executable file
View file

@ -1,7 +1,15 @@
{% extends 'partials/base.html.twig' %}
{% set show_sidebar = header_var('show_sidebar')|defined(false) %}
{% set image = page.media[page.header.primaryImage] ?: page.media.images|first %}
{% set title = page.title|raw %}
{% set subtitle = page.header.subtitle|raw %}
{% set show_onpage_menu = header.onpage_menu == true or header.onpage_menu is null %}
{% macro pageLinkName(text) %}{{ text|lower|replace({' ':'_'}) }}{% endmacro %}
{# Commented code for future improvements in modular menu #}
{# {% set show_onpage_menu = header.onpage_menu == true or header.onpage_menu is null %}
{% macro pageLinkName(text) %}
{{ text|lower|replace({' ':'_'}) }}
{% endmacro %} #}
{% block menu %}
{% include 'partials/sidebar_right.html.twig' %}
@ -11,16 +19,21 @@
<article class="post">
<header>
<div class="title">
<h2>{{ page.header.title }}</h2>
<h2>{{ title }}</h2>
{% if subtitle %}
<p>{{ subtitle }}</p>
{% endif %}
</div>
</header>
{% if page.header.primaryImage %}
{{ page.media[page.header.primaryImage].cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }}
{% else %}
{{ page.media.images|first.cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }}
{% if image %}
<span class="image featured">
{{ image.cropZoom(1038,437).loading('lazy').html(title, title)|raw }}
</span>
{% endif %}
{{ page.content|raw}}
{% for module in page.collection() %}
{{ module.content|raw }}
{% endfor %}
@ -28,7 +41,7 @@
{% endblock %}
{% block sidebar %}
{% if show_sidebar == true %}
{% include 'partials/sidebar_left.html.twig' %}
{% endif %}
{% endblock %}

View file

@ -1,9 +1,13 @@
{% set image = page.media[page.header.image] ?: page.media.images|first %}
{% set title = page.title|raw %}
{% set subtitle = page.header.subtitle|raw %}
<section id="banner">
<div class="content">
<header>
<h2>{{ page.title}}</h2>
{% if page.header.subtitle %}
<p>{{ page.header.subtitle }}</p>
<h2>{{ title}}</h2>
{% if subtitle %}
<p>{{ subtitle }}</p>
{% endif %}
</header>
@ -13,13 +17,9 @@
<li><a href="{{page.header.buttonurl}}" class="button">{{page.header.buttontext}}</a></li>
</ul>
</div>
{% if page.header.image %}
{% if image %}
<span class="image object fit">
{{page.media[page.header.image].loading('lazy').html('',page.title)|raw}}
</span>
{% else %}
<span class="image object fit">
{{page.media[page.header.primaryImage].loading('lazy').html('',page.title)|raw}}
{{image.loading('lazy').html(title,title)|raw}}
</span>
{% endif %}
</section>

View file

@ -1,30 +1,45 @@
{% set image = page.media[page.header.primaryImage] ?: page.media.images|first %}
{% set title = page.title|raw %}
{% set subtitle = page.header.subtitle|raw %}
{% set columns = page.header.layout == 'standard' ? 'col-4 col-6-medium col-12-small' : 'col-6 col-12-small' %}
<section id="features">
<header>
<h2>{{ page.title }}</h2>
{% if page.header.subtitle %}
<p>{{ page.header.subtitle }}</p>
<h2>{{ title }}</h2>
{% if subtitle %}
<p>{{ subtitle }}</p>
{% endif %}
</header>
{{ content|raw }}
{% if image %}
{{ image.cropZoom(1038,437).loading('lazy').html(title, title, 'image featured')|raw }}
{% endif %}
{{ page.content|raw }}
<div class="row gtr-uniform">
{% for feature in page.header.features %}
<div class="{{columns}}">
<article class="box">
{% if feature.image %}<span class="image fit"><img src="{{page.media[feature.image].url}}" alt="{{feature.title}}" /></span>{% endif %}
{% if feature.image %}
<span class="image fit"><img src="{{page.media[feature.image].url}}" alt="{{feature.title}}"/></span>
{% endif %}
<header>
{% if feature.title %}<h3>{{feature.title}}</h3>{% endif %}
{% if feature.text %}<p>{{feature.text|raw}}</p>{% endif %}
{% if feature.buttonurl %}<p><a href="{{feature.buttonurl}}" class="button fit" target={% if feature.buttonurl_target %}"_blank"{% endif%}>{{feature.buttontext}}</a></p>{% endif %}
{% if feature.title %}
<h3>{{feature.title}}</h3>
{% endif %}
{% if feature.text %}
<p>{{feature.text|raw}}</p>
{% endif %}
{% if feature.buttonurl %}
<p>
<a href="{{feature.buttonurl}}" class="button fit" target={% if feature.buttonurl_target %} "_blank" {% endif%}>{{feature.buttontext}}</a>
</p>
{% endif %}
</header>
</article>
</div>
{% endfor %}
</div>
</section>
<br>

View file

@ -1,20 +1,22 @@
<section>
<ul class="posts">
{% for p in page.find(theme_config.blog_page).children.order('date', 'desc').slice(0, 5) %}
{% if p.header.primaryImage %}
{% set bannerimage = p.media[p.header.primaryImage]%}
{% else %}
{% set bannerimage = p.media.images|first %}
{% endif %}
{% set image = p.media[p.header.primaryImage] ?: p.media.images|first %}
{% set title = p.title|raw %}
<li>
<article>
<header>
<h3><a href="{{p.url}}">{{ p.title }}</a></h3>
<h3>
<a href="{{p.url}}">{{ title }}</a>
</h3>
{% if config.plugins["translate-date"].enabled %}
<time class="published" datetime="{{ p.date|td(null, "Y-m-d") }}">{{ p.date|td(null, "M j, Y") }}</time>
{% else %}
<time class="published" datetime="{{ p.date|date("Y-m-d") }}">{{ p.date|date("M j, Y") }}</time>
{% endif %}
</header>
<a href="{{p.url}}" class="image">
{{ bannerimage.cropZoom(64,64).quality(60).loading('lazy').html('',p.title)|raw }}
{{ image.cropZoom(64,64).quality(60).loading('lazy').html(title,title)|raw }}
</a>
</article>
</li>

View file

@ -19,7 +19,8 @@
{% block stylesheets %}
{% do assets.addCss('theme://assets/css/main'~compress) %}
{% do assets.addCss('theme://assets/css/fontawesome-all.min.css') %}
{% do assets.addCss('theme://assets/css/custom.css', 10) %}
{% do assets.addCss('theme://assets/css/misc.css') %}
{% do assets.addCss('theme://assets/css/custom.css', 5) %}
{% if page.template() == 'portfolio' %}
{% do assets.addCss('theme://assets/css/glightbox.min.css') %}
{% endif %}
@ -40,7 +41,8 @@
{{ assets.js()|raw }}
</head>
<body class="is-preload">
<body
class="is-preload">
<!-- Wrapper -->
<div id="wrapper">
@ -61,7 +63,9 @@
{% endblock %}
<a id="back-to-top" href="#"><i class="fa fa-chevron-up"></i></a>
<a id="back-to-top" href="#">
<i class="fa fa-chevron-up"></i>
</a>
{% block bottom %}
{{ assets.js('bottom')|raw }}

View file

@ -5,12 +5,12 @@
{% elseif page.header.author %}
{% set author = page.header.author %}
{% else %}
{% set author = page.header.taxonomy.author[0] %}
{% set author = page.taxonomy.author[0] %}
{% endif %}
{% if author %}
{% set avatar = author|replace(' ', '-')|lower %}
{% endif %}
{% set avatar = page.media[page.header.avatarImage].url|e %}
{% set image = page.media[page.header.primaryImage] ?: page.media.images|first %}
{% set title = page.title|raw %}
<header>
<div class="title">
@ -22,28 +22,37 @@
<a href="{{ page.header.link }}">{{ page.title }}</a>
</h2>
{% else %}
<h2 itemprop="headline"><a href="{{ page.url }}">{{ page.title }}</a></h2>
<h2 itemprop="headline">
<a href="{{ page.url }}">{{ page.title }}</a>
</h2>
{% endif %}
{% if page.header.subtitle %}
<p itemprop="alternativeHeadline">{{ page.header.subtitle|raw }}</p>
{% endif %}
</div>
<div class="meta">
{% if config.plugins["translate-date"].enabled %}
<time class="published" itemprop="datePublished" datetime="{{ page.date|td(null, "Y-m-d") }}">{{ page.date|td(null, "M j, Y") }}</time>
{% else %}
<time class="published" itemprop="datePublished" datetime="{{ page.date|date("Y-m-d") }}">{{ page.date|date("M j, Y") }}</time>
{% endif %}
{% if author %}
<a href="{{ base_url }}/author{{ config.system.param_sep }}{{ author }}" itemprop="keywords" class="author">{{ tag }}<span class="name" rel="author">{{ author }}</span>{% if page.header.avatarImage %}<img src="{{ page.media[page.header.avatarImage].url|e}}" alt="{{ author }}" />{% endif %}</a>
<span itemprop="author" itemscope itemtype="http://schema.org/Person"/>
<a {% if page.taxonomy.author %}href="{{ base_url }}/author{{ config.system.param_sep }}{{ author }}" itemprop="url" {% endif %}class="author">
<span class="name" rel="author">{{ author }}</span>
{% if avatar %}<img src="{{ avatar }}" alt="{{ author }}" />{% endif %}
</a>
{% endif %}
</div>
</header>
{% if page.header.primaryImage %}
<a href="{{ page.url }}">{{ page.media[page.header.primaryImage].cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }}</a>
{% else %}
<a href="{{ page.url }}">{{ page.media.images|first.cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }}</a>
{% if image %}
<span class="image featured">
{{ image.cropZoom(1038,437).loading('lazy').html(title, title)|raw }}
</span>
{% endif %}
<div itemprop="articleBody">
{% if page.header.continue_link is sameas(false) %}
{{ page.content|raw }}
{% if not truncate %}
@ -57,7 +66,6 @@
{{ page.content|raw }}
{% set show_prev_next = true %}
{% endif %}
</div>
<footer>
@ -70,25 +78,30 @@
{% if show_prev_next %}
{% if not page.isLast %}
<li><a class="button" href="{{ page.prevSibling.url }}"><i class="fa fa-chevron-left"></i> {{'FUTURE.BLOG.ITEM.PREV_POST'|t}}</a></li>
<li>
<a class="button" href="{{ page.prevSibling.url }}">
<i class="fa fa-chevron-left"></i>
{{'FUTURE.BLOG.ITEM.PREV_POST'|t}}</a>
</li>
{% endif %}
{% if not page.isFirst %}
<li><a class="button" href="{{ page.nextSibling.url }}">{{'FUTURE.BLOG.ITEM.NEXT_POST'|t}} <i class="fa fa-chevron-right"></i></a></li>
<li>
<a class="button" href="{{ page.nextSibling.url }}">{{'FUTURE.BLOG.ITEM.NEXT_POST'|t}}
<i class="fa fa-chevron-right"></i>
</a>
</li>
{% endif %}
{% endif %}
</ul>
<ul class="stats">
{% if page.taxonomy.tag %}
{% for tag in page.taxonomy.tag %}
<li><a href="{{ base_url }}/tag{{ config.system.param_sep }}{{ tag }}" itemprop="keywords">{{ tag }}</a></li>
{% endfor %}
{% endif %}
<li><a href="https://twitter.com/share" data-url="{{ page.url(true) }}" data-text="{{ page.title }}" class="icon brands fa-twitter">
</a></li>
<li><a href="http://www.facebook.com/sharer.php?u={{ page.url(true) }}" class="icon brands fa-facebook">
</a></li>
<li><a href="https://twitter.com/share" data-url="{{ page.url(true) }}" data-text="{{ page.title }}" class="icon brands fa-twitter"></a></li>
<li><a href="http://www.facebook.com/sharer.php?u={{ page.url(true) }}" class="icon brands fa-facebook"></a></li>
</ul>
</footer>
</article>

View file

@ -1,4 +1,4 @@
<ul class="icons">
{% include 'partials/social.html.twig' %}
</ul>
<p class="copyright">&copy; {{ "now"|date("Y") }} {{ site.author.name }}. {{config.theme.footer.copyright_text|raw}}</a>.</p>
<p class="copyright">&copy; {{ "now"|date("Y") }} {{ site.author.name }}. {{config.theme.footer.copyright_text|raw}}.</p>

6
templates/partials/header.html.twig Normal file → Executable file
View file

@ -1,5 +1,7 @@
<header id="header">
<h1 class="logo"><a href="{{ home_url }}">{{ site.title }}</a></h1>
<h1 class="logo">
<a href="{{ home_url }}">{{ site.title }}</a>
</h1>
<nav class="dropdown">
{% block header_navigation %}
{% include 'partials/navigation.html.twig' %}
@ -8,7 +10,7 @@
<nav class="main">
{% block header_extra %}
<ul>
{% if config.plugins.langswitcher.enabled %}
{% if config.plugins.langswitcher.enabled and system.languages.supported is not null %}
{% include 'partials/langswitcher.html.twig' %}
{% endif %}
{% if config.plugins.simplesearch.enabled %}

View file

@ -1,4 +1,4 @@
{% set logo = theme_var(mobile ? 'custom_logo_mobile' : 'custom_logo') %}
{% set logo = theme_var('custom_logo_mobile') ?: theme_var('custom_logo') %}
<a href="{{ home_url }}" class="logo">
{% if logo %}
{% set logo_file = (logo|first).name %}

View file

@ -1,31 +1,38 @@
{% set miniposts_category = theme_var('miniposts_category') %}
{% set miniposts_number = config.theme.miniposts_number %}
{% set lang = grav.language.getActive ?: grav.config.site.default_lang %}
<section>
<header class="">
<h3>{{ 'FUTURE.FEATURED'|t }}</h3>
</header>
<div class="mini-posts">
{% for p in page.evaluate({'@taxonomy.category':miniposts_category}).order('header.order', 'asc').slice(0,miniposts_number) %}
{% set image = p.media[p.header.primaryImage] ?: p.media.images|first %}
{% set title = p.title|raw %}
<article class="mini-post">
<header>
<h3><a href="{{ p.url }}">{{ p.title }}</a></h3>
<time class="published" datetime="{{p.date|date("Y-m-d")}}">{{ p.date|date("M j, Y")}}</time>
<a href="{{ p.url }}" class="author"><img src="{{ p.media[p.header.avatarImage].url}}" alt="" /></a>
</header>
<a href="{{ p.url }}" class="image">
{% if p.header.primaryImage %}
{{ p.media[p.header.primaryImage].cropZoom(1038,437).loading('lazy').html('',p.title)|raw}}
<h3>
<a href="{{ p.url }}">{{ p.title }}</a>
</h3>
{% if config.plugins["translate-date"].enabled %}
<time class="published" itemprop="datePublished" datetime="{{ page.date|td(null, "Y-m-d") }}">{{ page.date|td(null, "M j, Y") }}</time>
{% elseif config.plugins["twig-extensions"].enabled %}
<time class="published" itemprop="datePublished" datetime="{{ page.date|localizeddate('medium', 'none', lang) }}">{{ page.date|localizeddate('medium', 'none', lang) }}</time>
{% else %}
{{p.media.images|first.cropZoom(1038,437).loading('lazy').html('',p.title)|raw}}
<time class="published" itemprop="datePublished" datetime="{{ page.date|date("Y-m-d") }}">{{ page.date|date("M j, Y") }}</time>
{% endif %}
{% if avatar %}
<a href="{{ p.url }}" class="author"><img src="{{ p.media[p.header.avatarImage].url}}" alt=""/></a>
{% endif %}
</header>
{% if image %}
<a href="{{ p.url }}" class="image">
{{ image.cropZoom(1038,437).loading('lazy').html(title,title)|raw}}
</a>
{% endif %}
</article>
{% endfor %}
</div>
</section>
<!-- End of featured Section -->

View file

@ -3,7 +3,7 @@
<ul>
{{ macros.nav_loop(pages) }}
{% if theme_var('displaycustommenus.enabled') %}
{% if theme_var('custommenus.enabled') %}
{% for mitem in theme_var('custommenu') %}
<li>
<a href="{{ mitem.url }}" target="{{ mitem.target }}">

View file

@ -2,7 +2,6 @@
{% set base_url = base_url|default(page.url) %}
{% if pagination|length > 1 %}
<ul class="actions pagination">
{% if pagination.hasPrev %}
{% set url = (base_url ~ pagination.params ~ pagination.prevUrl)|replace({'//':'/'}) %}
@ -12,7 +11,6 @@
{% endif %}
{% for paginate in pagination %}
{% if paginate.isCurrent %}
<li><span class="disabled button large">{{ paginate.number }}</span></li>
{% elseif paginate.isInDelta %}
@ -21,8 +19,8 @@
{% elseif paginate.isDeltaBorder %}
<li class="gap"><span>&hellip;</span></li>
{% endif %}
{% endfor %}
{% if pagination.hasNext %}
{% set url = (base_url ~ pagination.params ~ pagination.nextUrl)|replace({'//':'/'}) %}
<li><a class="button large next" rel="next" href="{{ url }}">{{'FUTURE.BLOG.PAGINATION.NEXT'|t}}</a></li>
@ -30,5 +28,4 @@
<li><span class="disabled button large">{{'FUTURE.BLOG.PAGINATION.NEXT'|t}}</span></li>
{% endif %}
</ul>
{% endif %}

View file

@ -3,7 +3,9 @@
{% set related = grav['pages'].get(related_path) %}
{% if related %}
<li>
<a href="{{ related.url }}" title="{{ related.title }}">{{ related.title }}</a> {% if config.plugins.relatedpages.show_score %}<span class="score">( {{ score }} )</span>
<a href="{{ related.url }}" title="{{ related.title }}">{{ related.title }}</a>
{% if config.plugins.relatedpages.show_score %}
<span class="score">( {{ score }} )</span>
{% endif %}
</li>
{% endif %}

View file

@ -4,7 +4,7 @@
{% include 'partials/logo.html.twig' %}
<header>
<h2>{{ site.title|e('html') }}</h2>
<p>{{theme_config.slogan|raw}}</a></p>
<p>{{theme_config.slogan|raw}}</p>
</header>
</section>
<!-- Mini Posts -->

View file

@ -5,8 +5,13 @@
{% if p.children.visible.count > 0 %}
<li class="{{ current_page }}">
<a class="dropdown-btn">
{% if p.header.icon %}<i class="fa fa-{{ p.header.icon }}"></i>{% endif %}
<span>{{ p.menu }}{% if p.routable ?? false %}&nbsp;<i class="fa fa-caret-down"></i>{% endif %}</span>
{% if p.header.icon %}
<i class="fa fa-{{ p.header.icon }}"></i>
{% endif %}
<span>{{ p.menu }}
{% if p.routable ?? false %}&nbsp;<i class="fa fa-caret-down"></i>
{% endif %}
</span>
</a>
<ul class="subitem_hide">
{{ _self.loop(p) }}
@ -15,7 +20,9 @@
{% else %}
<li class="{{ current_page }}">
<a href="{{ p.url }}">
{% if p.header.icon %}<i class="fa fa-{{ p.header.icon }}"></i>{% endif %}
{% if p.header.icon %}
<i class="fa fa-{{ p.header.icon }}"></i>
{% endif %}
<span>{{ p.menu }}</span>
</a>
</li>
@ -24,7 +31,7 @@
{% endmacro %}
<ul class="menulink">
{{ _self.loop(pages) }}
{% if theme_var('displaycustommenus.enabled') %}
{% if theme_var('custommenus.enabled') %}
{% for mitem in theme_var('custommenu') %}
<li>
<a href="{{ mitem.url }}" target="{{ mitem.target }}">

View file

@ -1,16 +1,16 @@
<section id="menu">
{% if config.plugins.simplesearch.enabled %}
<!-- Search -->
<section>
{% if config.plugins.simplesearch.enabled %}
{% include 'partials/simplesearch_searchbox_sidebar.html.twig' %}
{% endif %}
</section>
{% endif %}
<!-- Links -->
<section id="sidebarmenu">
{% include 'partials/sidebar_navigation.html.twig' %}
</section>
<!-- Actions -->
{% if config.plugins.archives.enabled %}
<!-- Actions -->
<section>
<header>
<h3>{{ 'FUTURE.SIDEBAR.ARCHIVES.HEADLINE'|t }}</h3>
@ -35,11 +35,17 @@
</section>
{% endif %}
{% if config.plugins.login.enabled %}
<section>
{% if not grav.user.authenticated %}
<ul class="actions stacked">
<li><a href="#" class="button large fit">{{ 'FUTURE.LOGIN'|t }}</a></li>
<li><a href="{{ base_url_absolute }}/login" class="button large fit">{{ 'FUTURE.LOGIN'|t }}</a></li>
</ul>
{% else %}
{% include 'partials/login-status.html.twig' %}
{% endif %}
</section>
{% endif %}
</section>
<script>

16
templates/partials/simplesearch_item.html.twig Normal file → Executable file
View file

@ -1,23 +1,21 @@
<section class="search-row">
{% set banner = page.media[page.header.primaryImage].loading('lazy').html(page.title,page.title)|raw ?: page.media.images|first %}
{% set title = page.title %}
{% set thumb = page.media[page.header.primaryImage] ?: page.media.images|first %}
{% if banner %}
{% if thumb %}
<div class="search-image">
<a href="{{ page.url }}">{{ banner }}</a>
<a href="{{ page.url }}">{{ thumb.loading('lazy').html(title,title)|raw }}</a>
</div>
{% endif %}
<div class="search-item">
<div class="search-title">
<h3><a href="{{ page.url }}">{{ page.title }}</a></h3>
<h3><a href="{{ page.url }}">{{ title }}</a></h3>
</div>
<div class="search-details">
<span class="search-date">{{ page.date|date(config.system.pages.dateformat.short) }}</span>
</div>
<p>{{ page.summary|truncate(200)|raw }}</p>
<hr/>
{{ page.summary|striptags|truncate(300, true)|raw }}
</div>
</section>

View file

@ -1,3 +1,3 @@
{% for item in theme_config.social %}
<li><a href="{{ item.url }}" class="icon brands {{item.icon}}"><span class="label">{{item.name}}</span></a></li>
<li><a href="{{ item.url }}" class="icon brands {{item.icon}}" aria-label="{{item.name}}"><span class="label">{{item.name}}</span></a></li>
{% endfor %}

27
templates/portfolio.html.twig Normal file → Executable file
View file

@ -1,5 +1,8 @@
{% extends 'partials/base.html.twig' %}
{% set show_sidebar = header_var('show_sidebar')|defined(false) %}
{% set image = page.media[page.header.primaryImage] %}
{% set title = page.title|raw %}
{% set subtitle = page.header.subtitle|raw %}
{% set columns = page.header.layout == 'standard' ? 'col-4 col-6-medium col-12-small' : 'col-6 col-12-small' %}
{% block menu %}
@ -11,17 +14,20 @@
<article class="post">
<header>
<div class="title">
<h2>{{ page.header.title }}</h2>
{% if page.header.subtitle %}
<p>{{ page.header.subtitle }}</p>
<h2>{{ title }}</h2>
{% if subtitle %}
<p>{{ subtitle }}</p>
{% endif %}
</div>
</header>
{% if page.header.primaryImage %}
{{ page.media[page.header.primaryImage].cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }}
{% if image %}
<span class="image featured">
{{ image.cropZoom(1038,437).loading('lazy').html(title, title)|raw }}
</span>
{% endif %}
{{ page.content|raw}}
<!-- Portfolio -->
{% block portfolio %}
<section>
@ -33,13 +39,20 @@
</a>
</div>
{% endfor %}
</div>
</section>
{% endblock %}
</article>
{% if show_sidebar == false %}
<section id="footer" class="align-center">
{% include 'partials/footer.html.twig' %}
</section>
{% endif %}
{% endblock %}
{% block sidebar %}
{% if show_sidebar == true %}
{% include 'partials/sidebar_left.html.twig' %}
{% endif %}
{% endblock %}

17
templates/simplesearch_results.html.twig Normal file → Executable file
View file

@ -1,14 +1,15 @@
{% extends 'partials/simplesearch_base.html.twig' %}
{% extends 'partials/base.html.twig' %}
{% set show_sidebar = theme_var('sidebar')|defined(false) %}
{% block menu %}
{% include 'partials/sidebar_right.html.twig' %}
{% endblock %}
{% block content %}
<article class="post simplesearch">
<article class="post">
<header>
<div class="title">
{% block results %}
<div class="content-padding simplesearch">
<h1 class="search-header">{{ "PLUGIN_SIMPLESEARCH.SEARCH_RESULTS"|t }}</h1>
@ -27,16 +28,22 @@
</p>
</div>
{% endblock %}
</div>
</header>
{% for page in search_results %}
{% include 'partials/simplesearch_item.html.twig' with {'page':page} %}
{% endfor %}
</article>
{% if show_sidebar == false %}
<section id="footer" class="align-center">
{% include 'partials/footer.html.twig' %}
</section>
{% endif %}
{% endblock %}
{% block sidebar %}
{% if show_sidebar == true %}
{% include 'partials/sidebar_left.html.twig' %}
{% endif %}
{% endblock %}