├── mundana.yaml ├── readme.jpg ├── thumbnail.jpg ├── assets ├── scss │ └── vendor │ │ └── bootstrap │ │ ├── utilities │ │ ├── _clearfix.scss │ │ ├── _overflow.scss │ │ ├── _interactions.scss │ │ ├── _screenreaders.scss │ │ ├── _visibility.scss │ │ ├── _shadows.scss │ │ ├── _float.scss │ │ ├── _align.scss │ │ ├── _background.scss │ │ ├── _stretched-link.scss │ │ ├── _position.scss │ │ ├── _display.scss │ │ ├── _sizing.scss │ │ ├── _embed.scss │ │ ├── _borders.scss │ │ ├── _text.scss │ │ ├── _spacing.scss │ │ └── _flex.scss │ │ ├── mixins │ │ ├── _clearfix.scss │ │ ├── _size.scss │ │ ├── _lists.scss │ │ ├── _text-truncate.scss │ │ ├── _visibility.scss │ │ ├── _resize.scss │ │ ├── _alert.scss │ │ ├── _text-hide.scss │ │ ├── _badge.scss │ │ ├── _nav-divider.scss │ │ ├── _float.scss │ │ ├── _list-group.scss │ │ ├── _text-emphasis.scss │ │ ├── _reset-text.scss │ │ ├── _pagination.scss │ │ ├── _box-shadow.scss │ │ ├── _deprecate.scss │ │ ├── _transition.scss │ │ ├── _background-variant.scss │ │ ├── _hover.scss │ │ ├── _table-row.scss │ │ ├── _screen-reader.scss │ │ ├── _image.scss │ │ ├── _caret.scss │ │ ├── _border-radius.scss │ │ ├── _gradients.scss │ │ ├── _grid.scss │ │ └── _grid-framework.scss │ │ ├── _media.scss │ │ ├── bootstrap-reboot.scss │ │ ├── _jumbotron.scss │ │ ├── _transitions.scss │ │ ├── _utilities.scss │ │ ├── _root.scss │ │ ├── bootstrap-grid.scss │ │ ├── bootstrap.scss │ │ ├── _close.scss │ │ ├── _code.scss │ │ ├── _mixins.scss │ │ ├── _toasts.scss │ │ ├── _images.scss │ │ ├── _badge.scss │ │ ├── _progress.scss │ │ ├── _alert.scss │ │ ├── _breadcrumb.scss │ │ ├── _spinners.scss │ │ ├── _grid.scss │ │ ├── _pagination.scss │ │ ├── _type.scss │ │ ├── _nav.scss │ │ └── _tooltip.scss ├── webfonts │ ├── fa-brands-400.eot │ ├── fa-brands-400.ttf │ ├── fa-solid-900.eot │ ├── fa-solid-900.ttf │ ├── fa-solid-900.woff │ ├── fa-brands-400.woff │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.eot │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff │ ├── fa-solid-900.woff2 │ └── fa-regular-400.woff2 ├── fonts │ ├── lora-v36-latin-700.woff2 │ ├── lora-v36-latin-italic.woff2 │ └── lora-v36-latin-regular.woff2 └── css │ ├── google-fonts-local.css │ └── bootstrap-reboot.min.css ├── screenshot.jpg ├── templates ├── partials │ ├── tracking-footer.html.twig │ ├── head │ │ ├── tracking-header.html.twig │ │ ├── favicon.html.twig │ │ └── assets.html.twig │ ├── blog │ │ ├── avatar.html.twig │ │ ├── page-summary.html.twig │ │ ├── date.html.twig │ │ ├── readingtime.html.twig │ │ ├── disqus.html.twig │ │ ├── author.html.twig │ │ ├── mailchimp.html.twig │ │ ├── share.html.twig │ │ ├── footer_pagination.html.twig │ │ └── relatedpages.html.twig │ ├── head.html.twig │ ├── page │ │ ├── backtotop.html.twig │ │ └── date.html.twig │ ├── layout.html.twig │ ├── sidebar │ │ ├── random.html.twig │ │ ├── feeds.html.twig │ │ ├── taxonomylist.html.twig │ │ ├── archives.html.twig │ │ ├── featured.html.twig │ │ ├── relatedpages.html.twig │ │ └── categories.html.twig │ ├── login-status.html.twig │ ├── form-messages.html.twig │ ├── langswitcher.html.twig │ ├── shortcodes │ │ ├── badge.html.twig │ │ ├── sc-cards.html.twig │ │ ├── alert.html.twig │ │ ├── sc-collapse.html.twig │ │ └── button.html.twig │ ├── footer.html.twig │ ├── simplesearch_item.html.twig │ ├── messages.html.twig │ ├── breadcrumbs.html.twig │ ├── simplesearch_searchbox.html.twig │ ├── forgot-form.html.twig │ ├── pagination.html.twig │ ├── sidebar.html.twig │ ├── blog-list-item.html.twig │ ├── navbar.html.twig │ └── navigation.html.twig ├── form.html.twig ├── login.html.twig ├── forms │ ├── form.html.twig │ └── fields │ │ └── checkbox │ │ └── checkbox.html.twig ├── modular │ ├── partials │ │ ├── sidebar.html.twig │ │ └── common_variables.html.twig │ ├── sticky.html.twig │ └── allstories.html.twig ├── error.html.twig ├── formdata.html.twig ├── macros │ └── macros.html.twig ├── item.html.twig ├── simplesearch_results.html.twig ├── modular.html.twig ├── contact.html.twig ├── default.html.twig └── blog.html.twig ├── images ├── favicon.png ├── contact_help.jpg ├── pedro_avataaars.png ├── lighthouse_mundana.png └── logo │ └── Grav_logo_white.png ├── _demo ├── pages │ ├── 03.dropdown │ │ ├── default.md │ │ ├── 02.readme │ │ │ ├── pic10.jpg │ │ │ └── pic10.webp │ │ └── 01.typography │ │ │ ├── pic07.jpg │ │ │ ├── pic07.webp │ │ │ └── pedro_avataaars.webp │ ├── 05.contact │ │ ├── pic07.jpg │ │ ├── pic07.webp │ │ └── contact.md │ ├── 02.blog │ │ ├── headers │ │ │ ├── 5.webp │ │ │ └── ana_avataaars.webp │ │ ├── page-editing │ │ │ ├── 3.jpg │ │ │ ├── 3.webp │ │ │ └── ana_avataaars.webp │ │ ├── taxonomy │ │ │ ├── home.jpg │ │ │ ├── home.webp │ │ │ └── pedro_avataaars.webp │ │ ├── twig-primer │ │ │ ├── blog6.jpg │ │ │ ├── blog6.webp │ │ │ └── pedro_avataaars.webp │ │ ├── markdown-sintax │ │ │ ├── blog8.jpg │ │ │ ├── blog8.webp │ │ │ └── pedro_avataaars.webp │ │ ├── welcome-to-grav │ │ │ ├── demo1.jpg │ │ │ ├── demo1.webp │ │ │ ├── pedro_avataaars.webp │ │ │ └── item.md │ │ └── blog.md │ ├── login │ │ ├── secure_login.png │ │ └── login.md │ ├── 01.home │ │ ├── 02._sticky │ │ │ └── sticky.md │ │ ├── 01._latest │ │ │ └── latestposts.md │ │ ├── 03._all-stories │ │ │ └── allstories.md │ │ └── modular.md │ ├── thankyou │ │ └── formdata.md │ └── forgot_password │ │ └── forgot.md └── config │ └── themes │ └── mundana.yaml ├── blueprints ├── pages │ ├── partials │ │ ├── blog-url.yaml │ │ ├── blog-bits.yaml │ │ ├── blog-sidebar.yaml │ │ └── item-bits.yaml │ ├── modular │ │ ├── sticky.yaml │ │ ├── latestposts.yaml │ │ └── allstories.yaml │ ├── modular.yaml │ ├── contact.yaml │ ├── item.yaml │ └── blog.yaml └── theme │ ├── footer.yaml │ ├── share.yaml │ └── blog.yaml ├── shortcodes ├── AlertShortcode.php ├── BadgeShortcode.php ├── ButtonShortcode.php ├── CollapseShortcode.php └── CardsShortcode.php ├── LICENSE └── blueprints.yaml /mundana.yaml: -------------------------------------------------------------------------------- 1 | enabled: true 2 | production-mode: true 3 | blog-page: '/blog' -------------------------------------------------------------------------------- /readme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/readme.jpg -------------------------------------------------------------------------------- /thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/thumbnail.jpg -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_clearfix.scss: -------------------------------------------------------------------------------- 1 | .clearfix { 2 | @include clearfix(); 3 | } 4 | -------------------------------------------------------------------------------- /screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/screenshot.jpg -------------------------------------------------------------------------------- /templates/partials/tracking-footer.html.twig: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/images/favicon.png -------------------------------------------------------------------------------- /_demo/pages/03.dropdown/default.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Dropdown 3 | hide_git_sync_repo_link: false 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /images/contact_help.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/images/contact_help.jpg -------------------------------------------------------------------------------- /images/pedro_avataaars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/images/pedro_avataaars.png -------------------------------------------------------------------------------- /images/lighthouse_mundana.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/images/lighthouse_mundana.png -------------------------------------------------------------------------------- /_demo/pages/05.contact/pic07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/05.contact/pic07.jpg -------------------------------------------------------------------------------- /_demo/pages/05.contact/pic07.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/05.contact/pic07.webp -------------------------------------------------------------------------------- /assets/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /assets/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /assets/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /assets/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /assets/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /images/logo/Grav_logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/images/logo/Grav_logo_white.png -------------------------------------------------------------------------------- /templates/partials/head/tracking-header.html.twig: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /_demo/pages/02.blog/headers/5.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/headers/5.webp -------------------------------------------------------------------------------- /_demo/pages/login/secure_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/login/secure_login.png -------------------------------------------------------------------------------- /assets/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /assets/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /assets/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /assets/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /assets/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /assets/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /_demo/pages/02.blog/page-editing/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/page-editing/3.jpg -------------------------------------------------------------------------------- /_demo/pages/02.blog/taxonomy/home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/taxonomy/home.jpg -------------------------------------------------------------------------------- /_demo/pages/02.blog/taxonomy/home.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/taxonomy/home.webp -------------------------------------------------------------------------------- /assets/fonts/lora-v36-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/fonts/lora-v36-latin-700.woff2 -------------------------------------------------------------------------------- /assets/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /_demo/pages/02.blog/page-editing/3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/page-editing/3.webp -------------------------------------------------------------------------------- /assets/fonts/lora-v36-latin-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/fonts/lora-v36-latin-italic.woff2 -------------------------------------------------------------------------------- /_demo/pages/02.blog/twig-primer/blog6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/twig-primer/blog6.jpg -------------------------------------------------------------------------------- /_demo/pages/02.blog/twig-primer/blog6.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/twig-primer/blog6.webp -------------------------------------------------------------------------------- /_demo/pages/03.dropdown/02.readme/pic10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/03.dropdown/02.readme/pic10.jpg -------------------------------------------------------------------------------- /assets/fonts/lora-v36-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/assets/fonts/lora-v36-latin-regular.woff2 -------------------------------------------------------------------------------- /_demo/pages/02.blog/markdown-sintax/blog8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/markdown-sintax/blog8.jpg -------------------------------------------------------------------------------- /_demo/pages/02.blog/welcome-to-grav/demo1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/welcome-to-grav/demo1.jpg -------------------------------------------------------------------------------- /_demo/pages/03.dropdown/02.readme/pic10.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/03.dropdown/02.readme/pic10.webp -------------------------------------------------------------------------------- /_demo/pages/02.blog/headers/ana_avataaars.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/headers/ana_avataaars.webp -------------------------------------------------------------------------------- /_demo/pages/02.blog/markdown-sintax/blog8.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/markdown-sintax/blog8.webp -------------------------------------------------------------------------------- /_demo/pages/02.blog/welcome-to-grav/demo1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/welcome-to-grav/demo1.webp -------------------------------------------------------------------------------- /_demo/pages/03.dropdown/01.typography/pic07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/03.dropdown/01.typography/pic07.jpg -------------------------------------------------------------------------------- /_demo/pages/03.dropdown/01.typography/pic07.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/03.dropdown/01.typography/pic07.webp -------------------------------------------------------------------------------- /_demo/pages/02.blog/taxonomy/pedro_avataaars.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/taxonomy/pedro_avataaars.webp -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @mixin clearfix() { 2 | &::after { 3 | display: block; 4 | clear: both; 5 | content: ""; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /_demo/pages/02.blog/page-editing/ana_avataaars.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/page-editing/ana_avataaars.webp -------------------------------------------------------------------------------- /_demo/pages/02.blog/twig-primer/pedro_avataaars.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/twig-primer/pedro_avataaars.webp -------------------------------------------------------------------------------- /_demo/pages/02.blog/markdown-sintax/pedro_avataaars.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/markdown-sintax/pedro_avataaars.webp -------------------------------------------------------------------------------- /_demo/pages/02.blog/welcome-to-grav/pedro_avataaars.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/02.blog/welcome-to-grav/pedro_avataaars.webp -------------------------------------------------------------------------------- /_demo/pages/03.dropdown/01.typography/pedro_avataaars.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmoreno-rodriguez/grav-theme-mundana/HEAD/_demo/pages/03.dropdown/01.typography/pedro_avataaars.webp -------------------------------------------------------------------------------- /templates/form.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/base.html.twig' %} 2 | 3 | {% block content %} 4 | 5 | {{ content|raw }} 6 | {{ include('forms/form.html.twig') }} 7 | 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_overflow.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @each $value in $overflows { 4 | .overflow-#{$value} { overflow: $value !important; } 5 | } 6 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_size.scss: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | @mixin size($width, $height: $width) { 4 | width: $width; 5 | height: $height; 6 | @include deprecate("`size()`", "v4.3.0", "v5"); 7 | } 8 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_interactions.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @each $value in $user-selects { 4 | .user-select-#{$value} { user-select: $value !important; } 5 | } 6 | -------------------------------------------------------------------------------- /templates/login.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/base.html.twig' %} 2 | 3 | {% block content %} 4 | {{ include('partials/messages.html.twig') }} 5 | {{ include('partials/login-form.html.twig') }} 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_screenreaders.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Screenreaders 3 | // 4 | 5 | .sr-only { 6 | @include sr-only(); 7 | } 8 | 9 | .sr-only-focusable { 10 | @include sr-only-focusable(); 11 | } 12 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_lists.scss: -------------------------------------------------------------------------------- 1 | // Lists 2 | 3 | // Unstyled keeps list items block level, just removes default browser padding and list-style 4 | @mixin list-unstyled() { 5 | padding-left: 0; 6 | list-style: none; 7 | } 8 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_text-truncate.scss: -------------------------------------------------------------------------------- 1 | // Text truncate 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-truncate() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /templates/partials/blog/avatar.html.twig: -------------------------------------------------------------------------------- 1 | {# Avatar image #} 2 | 3 | {{ avatar.loading('lazy').attribute('decoding', 'async') 4 | .attribute('width', avatar_width) 5 | .attribute('height', '80') 6 | .html(author|raw, author|raw, 'h-auto rounded-circle')|raw }} 7 | -------------------------------------------------------------------------------- /_demo/pages/01.home/02._sticky/sticky.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sticky 3 | body_classes: modular 4 | show_pageimage: true 5 | image_width: 1038 6 | image_height: 437 7 | blog_url: /blog 8 | show_title: '0' 9 | subtitleLead: '1' 10 | show_image: true 11 | --- 12 | 13 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_visibility.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Visibility 4 | 5 | @mixin invisible($visibility) { 6 | visibility: $visibility !important; 7 | @include deprecate("`invisible()`", "v4.3.0", "v5"); 8 | } 9 | -------------------------------------------------------------------------------- /_demo/pages/thankyou/formdata.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Email sent' 3 | process: 4 | markdown: true 5 | twig: true 6 | cache_enable: false 7 | visible: false 8 | --- 9 | 10 | ## Your form has been sent successful 11 | 12 | ##### We will offer you a quickly response. -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_resize.scss: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | @mixin resizable($direction) { 4 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 5 | resize: $direction; // Options: horizontal, vertical, both 6 | } 7 | -------------------------------------------------------------------------------- /_demo/pages/01.home/01._latest/latestposts.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Latest posts' 3 | body_classes: modular 4 | show_pageimage: true 5 | image_width: 1038 6 | image_height: 437 7 | blog_url: /blog 8 | show_image: true 9 | show_title: '0' 10 | subtitleLead: '1' 11 | --- 12 | 13 | -------------------------------------------------------------------------------- /_demo/pages/01.home/03._all-stories/allstories.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'All Stories' 3 | body_classes: modular 4 | show_pageimage: true 5 | image_width: 1038 6 | image_height: 437 7 | show_title: '1' 8 | show_image: true 9 | subtitleLead: '1' 10 | show_sidebar: true 11 | --- 12 | 13 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_visibility.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // 4 | // Visibility utilities 5 | // 6 | 7 | .visible { 8 | visibility: visible !important; 9 | } 10 | 11 | .invisible { 12 | visibility: hidden !important; 13 | } 14 | -------------------------------------------------------------------------------- /templates/partials/head.html.twig: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ include('partials/head/favicon.html.twig') }} 4 | {{ include('partials/head/seo.html.twig') }} 5 | {{ include('partials/head/assets.html.twig') }} 6 | {{ include('partials/head/tracking-header.html.twig') }} 7 | 8 | 9 | -------------------------------------------------------------------------------- /templates/forms/form.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'forms/default/form.html.twig' %} 2 | 3 | {% block inner_markup_buttons_start %} 4 |
5 | {% endblock %} 6 | 7 | {% block button_classes %} 8 | class="{{ button.classes|default('btn-primary btn-block') }}" 9 | {% endblock %} 10 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_shadows.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | .shadow-sm { box-shadow: $box-shadow-sm !important; } 4 | .shadow { box-shadow: $box-shadow !important; } 5 | .shadow-lg { box-shadow: $box-shadow-lg !important; } 6 | .shadow-none { box-shadow: none !important; } 7 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_media.scss: -------------------------------------------------------------------------------- 1 | .media { 2 | display: flex; 3 | align-items: flex-start; 4 | } 5 | 6 | .media-body { 7 | flex: 1; 8 | } 9 | 10 | @include media-breakpoint-down(sm) { 11 | .navbar-brand .media { 12 | display: flex; 13 | align-items: flex-start; 14 | flex-direction: column; 15 | } 16 | } -------------------------------------------------------------------------------- /_demo/pages/01.home/modular.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Home 3 | content: 4 | items: '@self.modular' 5 | show_pageimage: true 6 | image_width: 1038 7 | image_height: 437 8 | show_title: '1' 9 | show_image: true 10 | onpage_menu: '0' 11 | body_classes: homefirstpage 12 | subtitleLead: '1' 13 | author: { } 14 | style: danger 15 | --- 16 | 17 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_alert.scss: -------------------------------------------------------------------------------- 1 | @mixin alert-variant($background, $border, $color) { 2 | color: $color; 3 | @include gradient-bg($background); 4 | border-color: $border; 5 | 6 | hr { 7 | border-top-color: darken($border, 5%); 8 | } 9 | 10 | .alert-link { 11 | color: darken($color, 10%); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /blueprints/pages/partials/blog-url.yaml: -------------------------------------------------------------------------------- 1 | form: 2 | fields: 3 | 4 | header.blog_url: 5 | type: text 6 | toggleable: true 7 | label: MUNDANA.ADMIN.BLOG.CONFIGURATION.BLOG_ROUTE 8 | help: MUNDANA.ADMIN.BLOG.CONFIGURATION.BLOG_ROUTE_HELP 9 | default: '/blog' 10 | placeholder: '/blog' 11 | size: medium -------------------------------------------------------------------------------- /templates/partials/head/favicon.html.twig: -------------------------------------------------------------------------------- 1 | {% if theme_config.favicon %} 2 | {% set favicon = theme_config.favicon|first %} 3 | {% set favicon_file = favicon.name %} 4 | {% set favicon_type = favicon.type ? favicon.type : 'image/png' %} 5 | 6 | {% endif %} 7 | -------------------------------------------------------------------------------- /templates/partials/page/backtotop.html.twig: -------------------------------------------------------------------------------- 1 | 2 | {% set back_to_top = theme_var('back_to_top_button')|defined(true) %} 3 | 4 | {% if back_to_top %} 5 | 7 | 8 | {% endif %} 9 | -------------------------------------------------------------------------------- /templates/partials/layout.html.twig: -------------------------------------------------------------------------------- 1 | {% set item_col = show_sidebar ? 'col-md-8' : 'col-12' %} 2 | {% set sidebar_col = show_sidebar ? 'col-md-4' : 'col-12' %} 3 | 4 |
5 | {% block item %}{% endblock %} 6 |
7 | 8 | {% if show_sidebar %} 9 | 12 | {% endif %} 13 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_text-hide.scss: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | @mixin text-hide($ignore-warning: false) { 3 | // stylelint-disable-next-line font-family-no-missing-generic-family-keyword 4 | font: 0/0 a; 5 | color: transparent; 6 | text-shadow: none; 7 | background-color: transparent; 8 | border: 0; 9 | 10 | @include deprecate("`text-hide()`", "v4.1.0", "v5", $ignore-warning); 11 | } 12 | -------------------------------------------------------------------------------- /templates/partials/blog/page-summary.html.twig: -------------------------------------------------------------------------------- 1 | {# PARTIAL PAGE SUMMARY #} 2 | 3 |
4 | {% if page.summary != page.content %} 5 | {{ page.summary|striptags|truncate(header.summary.size)|replace({'…': ''})|raw }} 6 | {% else %} 7 | {{ page.content|striptags|truncate(site.summary.size)|replace({'…': ''})|raw }} 8 | {% endif %} 9 |
10 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_badge.scss: -------------------------------------------------------------------------------- 1 | @mixin badge-variant($bg) { 2 | color: color-yiq($bg); 3 | background-color: $bg; 4 | 5 | @at-root a#{&} { 6 | @include hover-focus() { 7 | color: color-yiq($bg); 8 | background-color: darken($bg, 10%); 9 | } 10 | 11 | &:focus, 12 | &.focus { 13 | outline: 0; 14 | box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /templates/partials/blog/date.html.twig: -------------------------------------------------------------------------------- 1 | {# PARTIAL DATE FOR PAGES #} 2 | {% set rawDate = page.header.publish_date ?: (page.date ?: page.modified) %} 3 | {% set datePublished = include('partials/page/date.html.twig') %} 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /templates/partials/sidebar/random.html.twig: -------------------------------------------------------------------------------- 1 | {# RANDOM SECTION - SIDEBAR #} 2 | 3 | 12 | -------------------------------------------------------------------------------- /_demo/pages/02.blog/blog.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Blog 3 | content: 4 | items: 5 | - '@self.children' 6 | limit: 4 7 | order: 8 | by: date 9 | dir: desc 10 | pagination: true 11 | url_taxonomy_filters: true 12 | show_pagination: true 13 | feed: 14 | limit: 10 15 | show_pageimage: true 16 | image_width: 1038 17 | image_height: 437 18 | show_title: '1' 19 | show_image: true 20 | subtitleLead: '1' 21 | --- 22 | 23 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_nav-divider.scss: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | @mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) { 6 | height: 0; 7 | margin: $margin-y 0; 8 | overflow: hidden; 9 | border-top: 1px solid $color; 10 | @include deprecate("The `nav-divider()` mixin", "v4.4.0", "v5", $ignore-warning); 11 | } 12 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_float.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @each $breakpoint in map-keys($grid-breakpoints) { 4 | @include media-breakpoint-up($breakpoint) { 5 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 6 | 7 | .float#{$infix}-left { float: left !important; } 8 | .float#{$infix}-right { float: right !important; } 9 | .float#{$infix}-none { float: none !important; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_align.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | .align-baseline { vertical-align: baseline !important; } // Browser default 4 | .align-top { vertical-align: top !important; } 5 | .align-middle { vertical-align: middle !important; } 6 | .align-bottom { vertical-align: bottom !important; } 7 | .align-text-bottom { vertical-align: text-bottom !important; } 8 | .align-text-top { vertical-align: text-top !important; } 9 | -------------------------------------------------------------------------------- /templates/partials/login-status.html.twig: -------------------------------------------------------------------------------- 1 | 2 | {% if grav.user.authenticated %} 3 | 8 | {% endif %} 9 | -------------------------------------------------------------------------------- /blueprints/theme/footer.yaml: -------------------------------------------------------------------------------- 1 | form: 2 | validation: loose 3 | 4 | fields: 5 | footer_text_left: 6 | type: textarea 7 | row: 3 8 | markdown: true 9 | label: MUNDANA.ADMIN.THEME.FOOTER.TEXT_LEFT 10 | help: MUNDANA.ADMIN.THEME.FOOTER.TEXT_LEFT_HELP 11 | footer_text_right: 12 | type: textarea 13 | row: 3 14 | markdown: true 15 | label: MUNDANA.ADMIN.THEME.FOOTER.TEXT_RIGHT 16 | help: MUNDANA.ADMIN.THEME.FOOTER.TEXT_RIGHT_HELP -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_float.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @mixin float-left() { 4 | float: left !important; 5 | @include deprecate("The `float-left` mixin", "v4.3.0", "v5"); 6 | } 7 | @mixin float-right() { 8 | float: right !important; 9 | @include deprecate("The `float-right` mixin", "v4.3.0", "v5"); 10 | } 11 | @mixin float-none() { 12 | float: none !important; 13 | @include deprecate("The `float-none` mixin", "v4.3.0", "v5"); 14 | } 15 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/bootstrap-reboot.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Bootstrap Reboot v4.6.2 (https://getbootstrap.com/) 3 | * Copyright 2011-2022 The Bootstrap Authors 4 | * Copyright 2011-2022 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | 9 | @import "functions"; 10 | @import "variables"; 11 | @import "mixins"; 12 | @import "reboot"; 13 | -------------------------------------------------------------------------------- /templates/partials/blog/readingtime.html.twig: -------------------------------------------------------------------------------- 1 | {# PARTIAL READING TIME #} 2 | {# This code will work if the reading time plugin is enabled #} 3 | {% set min = page.content|readingtime({format: '{minutes_short_count}'}) %} 4 | {% set sec = page.content|readingtime({format: '{seconds_short_count}'}) %} 5 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_jumbotron.scss: -------------------------------------------------------------------------------- 1 | .jumbotron { 2 | padding: $jumbotron-padding ($jumbotron-padding * .5); 3 | margin-bottom: $jumbotron-padding; 4 | color: $jumbotron-color; 5 | background-color: $jumbotron-bg; 6 | @include border-radius($border-radius-lg); 7 | 8 | @include media-breakpoint-up(sm) { 9 | padding: ($jumbotron-padding * 2) $jumbotron-padding; 10 | } 11 | } 12 | 13 | .jumbotron-fluid { 14 | padding-right: 0; 15 | padding-left: 0; 16 | @include border-radius(0); 17 | } 18 | -------------------------------------------------------------------------------- /templates/modular/partials/sidebar.html.twig: -------------------------------------------------------------------------------- 1 | {# SIDEBAR FOR MODULAR PAGE --> ALL STORIES #} 2 | 3 |
4 | {% if show_featured %} 5 | {{ include('partials/sidebar/featured.html.twig' 6 | , {block_title: 'MUNDANA.SIDEBAR.FEATURED'|t}) }} 7 | {% endif %} 8 | {% if show_categories %} 9 | {{ include('partials/sidebar/categories.html.twig' 10 | , {blog: blog, block_title: 'MUNDANA.SIDEBAR.CATEGORIES'|t}) }} 11 | {% endif %} 12 |
13 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_transitions.scss: -------------------------------------------------------------------------------- 1 | .fade { 2 | @include transition($transition-fade); 3 | 4 | &:not(.show) { 5 | opacity: 0; 6 | } 7 | } 8 | 9 | .collapse { 10 | &:not(.show) { 11 | display: none; 12 | } 13 | } 14 | 15 | .collapsing { 16 | position: relative; 17 | height: 0; 18 | overflow: hidden; 19 | @include transition($transition-collapse); 20 | 21 | &.width { 22 | width: 0; 23 | height: auto; 24 | @include transition($transition-collapse-width); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /templates/partials/form-messages.html.twig: -------------------------------------------------------------------------------- 1 | {% if form.message %} 2 | {% set inline_errors = form.inline_errors is not null ? form.inline_errors : config.plugins.form.inline_errors(false) %} 3 | {% set status_mapping = {success: 'primary', error: 'danger', warning: 'warning'} %} 4 | {% set message = inline_errors and form.messages ? 'GRAV.FORM.VALIDATION_FAIL'|t : form.message %} 5 |
{{ message|raw }}
6 | {% endif %} 7 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_background.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @each $color, $value in $theme-colors { 4 | @include bg-variant(".bg-#{$color}", $value, true); 5 | } 6 | 7 | @if $enable-gradients { 8 | @each $color, $value in $theme-colors { 9 | @include bg-gradient-variant(".bg-gradient-#{$color}", $value, true); 10 | } 11 | } 12 | 13 | .bg-white { 14 | background-color: $white !important; 15 | } 16 | 17 | .bg-transparent { 18 | background-color: transparent !important; 19 | } 20 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_stretched-link.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Stretched link 3 | // 4 | 5 | .stretched-link { 6 | &::after { 7 | position: absolute; 8 | top: 0; 9 | right: 0; 10 | bottom: 0; 11 | left: 0; 12 | z-index: 1; 13 | // Just in case `pointer-events: none` is set on a parent 14 | pointer-events: auto; 15 | content: ""; 16 | // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color 17 | background-color: rgba(0, 0, 0, 0); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-variant($state, $background, $color) { 4 | .list-group-item-#{$state} { 5 | color: $color; 6 | background-color: $background; 7 | 8 | &.list-group-item-action { 9 | @include hover-focus() { 10 | color: $color; 11 | background-color: darken($background, 5%); 12 | } 13 | 14 | &.active { 15 | color: $white; 16 | background-color: $color; 17 | border-color: $color; 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /templates/error.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/base.html.twig' %} 2 | 3 | {% block content %} 4 |
5 |
6 | 7 |

8 | {{ 'PLUGIN_ERROR.ERROR'|t }} {{ page.header.http_response_code }} 9 |

10 | 11 |
{{ page.content|raw }}
12 |
13 |
14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /_demo/pages/forgot_password/forgot.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Forgot password 3 | visible: false 4 | cache_control: private, no-cache, must-revalidate 5 | 6 | login_redirect_here: false 7 | 8 | form: 9 | 10 | fields: 11 | - name: email 12 | type: email 13 | label: PLUGIN_LOGIN.EMAIL 14 | autofocus: true 15 | classes: form-control 16 | outerclasses: form-group 17 | validate: 18 | required: true 19 | type: email 20 | --- 21 | ## Recovery your password 22 | 23 | Enter your email to recover your password 24 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_text-emphasis.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Typography 4 | 5 | @mixin text-emphasis-variant($parent, $color, $ignore-warning: false) { 6 | #{$parent} { 7 | color: $color !important; 8 | } 9 | @if $emphasized-link-hover-darken-percentage != 0 { 10 | a#{$parent} { 11 | @include hover-focus() { 12 | color: darken($color, $emphasized-link-hover-darken-percentage) !important; 13 | } 14 | } 15 | } 16 | @include deprecate("`text-emphasis-variant()`", "v4.4.0", "v5", $ignore-warning); 17 | } 18 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_reset-text.scss: -------------------------------------------------------------------------------- 1 | @mixin reset-text() { 2 | font-family: $font-family-base; 3 | // We deliberately do NOT reset font-size or word-wrap. 4 | font-style: normal; 5 | font-weight: $font-weight-normal; 6 | line-height: $line-height-base; 7 | text-align: left; // Fallback for where `start` is not supported 8 | text-align: start; 9 | text-decoration: none; 10 | text-shadow: none; 11 | text-transform: none; 12 | letter-spacing: normal; 13 | word-break: normal; 14 | white-space: normal; 15 | word-spacing: normal; 16 | line-break: auto; 17 | } 18 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_pagination.scss: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | @mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) { 4 | .page-link { 5 | padding: $padding-y $padding-x; 6 | @include font-size($font-size); 7 | line-height: $line-height; 8 | } 9 | 10 | .page-item { 11 | &:first-child { 12 | .page-link { 13 | @include border-left-radius($border-radius); 14 | } 15 | } 16 | &:last-child { 17 | .page-link { 18 | @include border-right-radius($border-radius); 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /templates/modular/partials/common_variables.html.twig: -------------------------------------------------------------------------------- 1 | {% set themeBlog = theme_var('blog_route')|defined('/blog') %} 2 | {% set blog = page.find(header_var('blog_url')|defined(themeBlog)) %} 3 | {% set collection = blog.collection().order('date', 'desc') %} 4 | {% set page_title = page.title %} 5 | {% set show_title = page.header.show_title|defined(false) %} 6 | {% set override_style = theme_var('override_page_style')|defined(false) %} 7 | {% set color_style = override_style ? theme_var('default_page_style')|default('primary') : page.parent.header.style|defined('primary') %} 8 | 9 | {% block module_content %}{% endblock %} 10 | -------------------------------------------------------------------------------- /templates/partials/langswitcher.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/langswitcher-logic.html.twig' %} 2 | 3 | {% block language_block_start %} 4 | 9 | {% endblock %} 10 | 11 | {% block language_item %} 12 | {% if show_language %} 13 | 14 | {% endif %} 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_utilities.scss: -------------------------------------------------------------------------------- 1 | @import "utilities/align"; 2 | @import "utilities/background"; 3 | @import "utilities/borders"; 4 | @import "utilities/clearfix"; 5 | @import "utilities/display"; 6 | @import "utilities/embed"; 7 | @import "utilities/flex"; 8 | @import "utilities/float"; 9 | @import "utilities/interactions"; 10 | @import "utilities/overflow"; 11 | @import "utilities/position"; 12 | @import "utilities/screenreaders"; 13 | @import "utilities/shadows"; 14 | @import "utilities/sizing"; 15 | @import "utilities/spacing"; 16 | @import "utilities/stretched-link"; 17 | @import "utilities/text"; 18 | @import "utilities/visibility"; 19 | -------------------------------------------------------------------------------- /shortcodes/AlertShortcode.php: -------------------------------------------------------------------------------- 1 | shortcode->getHandlers()->add('sc-alert', function (ShortcodeInterface $sc) { 11 | // Render the Twig template with shortcode parameters 12 | $output = $this->grav['twig']->processTemplate( 13 | 'partials/shortcodes/alert.html.twig', 14 | ['shortcode' => $sc] 15 | ); 16 | 17 | return $output; 18 | }); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /shortcodes/BadgeShortcode.php: -------------------------------------------------------------------------------- 1 | shortcode->getHandlers()->add('sc-badge', function(ShortcodeInterface $sc) { 11 | // Render the Twig template with shortcode parameters 12 | $output = $this->grav['twig']->processTemplate( 13 | 'partials/shortcodes/badge.html.twig', 14 | ['shortcode' => $sc] 15 | ); 16 | 17 | return $output; 18 | }); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /shortcodes/ButtonShortcode.php: -------------------------------------------------------------------------------- 1 | shortcode->getHandlers()->add('sc-button', function(ShortcodeInterface $sc) { 11 | // Render the Twig template with shortcode parameters 12 | $output = $this->grav['twig']->processTemplate( 13 | 'partials/shortcodes/button.html.twig', 14 | ['shortcode' => $sc] 15 | ); 16 | 17 | return $output; 18 | }); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_box-shadow.scss: -------------------------------------------------------------------------------- 1 | @mixin box-shadow($shadow...) { 2 | @if $enable-shadows { 3 | $result: (); 4 | 5 | @if (length($shadow) == 1) { 6 | // We can pass `@include box-shadow(none);` 7 | $result: $shadow; 8 | } @else { 9 | // Filter to avoid invalid properties for example `box-shadow: none, 1px 1px black;` 10 | @for $i from 1 through length($shadow) { 11 | @if nth($shadow, $i) != "none" { 12 | $result: append($result, nth($shadow, $i), "comma"); 13 | } 14 | } 15 | } 16 | @if (length($result) > 0) { 17 | box-shadow: $result; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /templates/formdata.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/base.html.twig' %} 2 | 3 | {% if form is null %} 4 | {% set form = grav.session.getFlashObject('form') %} 5 | {% endif %} 6 | 7 | {% block content %} 8 | {{ content|raw }} 9 | 10 | {% if form %} 11 | {{ include('partials/form-messages.html.twig') }} 12 | 16 | {% else %} 17 | 18 | {% endif %} 19 | 20 | {% endblock %} 21 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_position.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Common values 4 | @each $position in $positions { 5 | .position-#{$position} { position: $position !important; } 6 | } 7 | 8 | // Shorthand 9 | 10 | .fixed-top { 11 | position: fixed; 12 | top: 0; 13 | right: 0; 14 | left: 0; 15 | z-index: $zindex-fixed; 16 | } 17 | 18 | .fixed-bottom { 19 | position: fixed; 20 | right: 0; 21 | bottom: 0; 22 | left: 0; 23 | z-index: $zindex-fixed; 24 | } 25 | 26 | .sticky-top { 27 | @supports (position: sticky) { 28 | position: sticky; 29 | top: 0; 30 | z-index: $zindex-sticky; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_display.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // 4 | // Utilities for common `display` values 5 | // 6 | 7 | @each $breakpoint in map-keys($grid-breakpoints) { 8 | @include media-breakpoint-up($breakpoint) { 9 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 10 | 11 | @each $value in $displays { 12 | .d#{$infix}-#{$value} { display: $value !important; } 13 | } 14 | } 15 | } 16 | 17 | 18 | // 19 | // Utilities for toggling `display` in print 20 | // 21 | 22 | @media print { 23 | @each $value in $displays { 24 | .d-print-#{$value} { display: $value !important; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_root.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | // Custom variable values only support SassScript inside `#{}`. 3 | @each $color, $value in $colors { 4 | --#{$color}: #{$value}; 5 | } 6 | 7 | @each $color, $value in $theme-colors { 8 | --#{$color}: #{$value}; 9 | } 10 | 11 | @each $bp, $value in $grid-breakpoints { 12 | --breakpoint-#{$bp}: #{$value}; 13 | } 14 | 15 | // Use `inspect` for lists so that quoted items keep the quotes. 16 | // See https://github.com/sass/sass/issues/2383#issuecomment-336349172 17 | --font-family-sans-serif: #{inspect($font-family-sans-serif)}; 18 | --font-family-monospace: #{inspect($font-family-monospace)}; 19 | } 20 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_deprecate.scss: -------------------------------------------------------------------------------- 1 | // Deprecate mixin 2 | // 3 | // This mixin can be used to deprecate mixins or functions. 4 | // `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to 5 | // some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap) 6 | @mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) { 7 | @if ($enable-deprecation-messages != false and $ignore-warning != true) { 8 | @warn "#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}."; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /templates/partials/shortcodes/badge.html.twig: -------------------------------------------------------------------------------- 1 | {# SHORTCODE TEMPLATE FOR BOOTSTRAP BADGES #} 2 | 3 | {% set badgeClass = shortcode.getParameter('class', 'secondary') %} 4 | {% set badgeLabel = shortcode.getParameter('label', '') %} 5 | {% set badgeUrl = shortcode.getParameter('url', '') %} 6 | {% set badgeTarget = shortcode.getParameter('target', '_self') %} 7 | 8 | {% if badgeLabel is not empty %} 9 | {% if badgeUrl is not empty %} 10 | {{ badgeLabel }} 11 | {% else %} 12 | {{ badgeLabel }} 13 | {% endif %} 14 | {% endif %} 15 | -------------------------------------------------------------------------------- /templates/partials/sidebar/feeds.html.twig: -------------------------------------------------------------------------------- 1 | {# FEEDS SECTION - SIDEBAR #} 2 | 3 | 19 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/bootstrap-grid.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Bootstrap Grid v4.6.2 (https://getbootstrap.com/) 3 | * Copyright 2011-2022 The Bootstrap Authors 4 | * Copyright 2011-2022 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6 | */ 7 | 8 | html { 9 | box-sizing: border-box; 10 | -ms-overflow-style: scrollbar; 11 | } 12 | 13 | *, 14 | *::before, 15 | *::after { 16 | box-sizing: inherit; 17 | } 18 | 19 | @import "functions"; 20 | @import "variables"; 21 | 22 | @import "mixins/deprecate"; 23 | @import "mixins/breakpoints"; 24 | @import "mixins/grid-framework"; 25 | @import "mixins/grid"; 26 | 27 | @import "grid"; 28 | @import "utilities/display"; 29 | @import "utilities/flex"; 30 | @import "utilities/spacing"; 31 | -------------------------------------------------------------------------------- /blueprints/pages/modular/sticky.yaml: -------------------------------------------------------------------------------- 1 | title: Sticky 2 | '@extends': default 3 | 4 | form: 5 | fields: 6 | tabs: 7 | fields: 8 | content: 9 | fields: 10 | _Headings: 11 | fields: 12 | _TitleToggle: 13 | fields: 14 | header.show_title: 15 | replace-options@: true 16 | default: 0 17 | highlight: 0 18 | options: 19 | 1: PLUGIN_ADMIN.YES 20 | 0: PLUGIN_ADMIN.NO 21 | options: 22 | fields: 23 | PageOptions: 24 | import@: 25 | type: partials/blog-url 26 | context: blueprints://pages -------------------------------------------------------------------------------- /templates/partials/sidebar/taxonomylist.html.twig: -------------------------------------------------------------------------------- 1 | {# TAXONOMY LIST SECTION - SIDEBAR #} 2 | 3 | {% set taxlist = children_only is defined ? taxonomylist.getChildPagesTags(of_page, children_only) : taxonomylist.get() %} 4 | 5 | {% if taxlist %} 6 | 7 |

8 | {{ block_title }} 9 |

10 |
11 | 12 | {% for tax, value in taxlist[taxonomy] %} 13 | {% if value is not empty %} 14 | {{ tax|e }} 15 | {% endif %} 16 | {% endfor %} 17 | 18 |
19 | 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /blueprints/pages/modular/latestposts.yaml: -------------------------------------------------------------------------------- 1 | title: Latest posts 2 | '@extends': default 3 | 4 | form: 5 | fields: 6 | tabs: 7 | fields: 8 | content: 9 | fields: 10 | _Headings: 11 | fields: 12 | _TitleToggle: 13 | fields: 14 | header.show_title: 15 | replace-options@: true 16 | default: 0 17 | highlight: 0 18 | options: 19 | 1: PLUGIN_ADMIN.YES 20 | 0: PLUGIN_ADMIN.NO 21 | options: 22 | fields: 23 | PageOptions: 24 | import@: 25 | type: partials/blog-url 26 | context: blueprints://pages 27 | 28 | -------------------------------------------------------------------------------- /templates/macros/macros.html.twig: -------------------------------------------------------------------------------- 1 | {# Macro to show filtered title in blog searches #} 2 | {% macro generateFilteredTitle(uri) %} 3 | {% if uri.param('category') %} 4 | {% set title = theme_config.listing_title.taxonomy.category|default('MUNDANA.BLOG.LISTING_TITLE_CATEGORY'|t) ~ uri.param('category') %} 5 | {% elseif uri.param('tag') %} 6 | {% set title = theme_config.listing_title.taxonomy.tag|default('MUNDANA.BLOG.LISTING_TITLE_TAG'|t) ~ uri.param('tag') %} 7 | {% elseif uri.param('author') %} 8 | {% set title = theme_config.listing_title.taxonomy.author|default('MUNDANA.BLOG.LISTING_TITLE_AUTHOR'|t) ~ uri.param('author') %} 9 | {% else %} 10 | {% set title = theme_config.listing_title.blog|default('Blog') %} 11 | {% endif %} 12 | 13 | {{ title }} 14 | {% endmacro %} 15 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_transition.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable property-disallowed-list 2 | @mixin transition($transition...) { 3 | @if length($transition) == 0 { 4 | $transition: $transition-base; 5 | } 6 | 7 | @if length($transition) > 1 { 8 | @each $value in $transition { 9 | @if $value == null or $value == none { 10 | @warn "The keyword 'none' or 'null' must be used as a single argument."; 11 | } 12 | } 13 | } 14 | 15 | @if $enable-transitions { 16 | @if nth($transition, 1) != null { 17 | transition: $transition; 18 | } 19 | 20 | @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none { 21 | @media (prefers-reduced-motion: reduce) { 22 | transition: none; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_background-variant.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Contextual backgrounds 4 | 5 | @mixin bg-variant($parent, $color, $ignore-warning: false) { 6 | #{$parent} { 7 | background-color: $color !important; 8 | } 9 | a#{$parent}, 10 | button#{$parent} { 11 | @include hover-focus() { 12 | background-color: darken($color, 10%) !important; 13 | } 14 | } 15 | @include deprecate("The `bg-variant` mixin", "v4.4.0", "v5", $ignore-warning); 16 | } 17 | 18 | @mixin bg-gradient-variant($parent, $color, $ignore-warning: false) { 19 | #{$parent} { 20 | background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important; 21 | } 22 | @include deprecate("The `bg-gradient-variant` mixin", "v4.5.0", "v5", $ignore-warning); 23 | } 24 | -------------------------------------------------------------------------------- /blueprints/pages/partials/blog-bits.yaml: -------------------------------------------------------------------------------- 1 | form: 2 | fields: 3 | 4 | _configTitle: 5 | type: section 6 | title: MUNDANA.ADMIN.BLOG.CONFIGURATION.LABEL 7 | import@: 8 | type: partials/blog-url 9 | context: blueprints://pages 10 | 11 | header.show_breadcrumbs: 12 | type: toggle 13 | toggleable: true 14 | label: MUNDANA.ADMIN.BLOG.CONFIGURATION.SHOW_BREADCRUMBS 15 | highlight: 1 16 | options: 17 | 1: PLUGIN_ADMIN.ENABLED 18 | 0: PLUGIN_ADMIN.DISABLED 19 | validate: 20 | type: bool 21 | 22 | _configSidebar: 23 | type: section 24 | title: MUNDANA.ADMIN.BLOG.CONFIGURATION.SIDEBAR_SETTINGS 25 | import@: 26 | type: partials/blog-sidebar 27 | context: blueprints://pages 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /templates/partials/footer.html.twig: -------------------------------------------------------------------------------- 1 | {% set footerTextLeft = theme_var('footer_text_left') %} 2 | {% set footerTextRight = theme_var('footer_text_right') %} 3 | 4 | 5 | 24 | -------------------------------------------------------------------------------- /templates/partials/sidebar/archives.html.twig: -------------------------------------------------------------------------------- 1 | {# ARCHIVES SECTION - SIDEBAR #} 2 | 3 | 22 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_sizing.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Width and height 4 | 5 | @each $prop, $abbrev in (width: w, height: h) { 6 | @each $size, $length in $sizes { 7 | .#{$abbrev}-#{$size} { #{$prop}: $length !important; } 8 | } 9 | } 10 | 11 | .mw-100 { max-width: 100% !important; } 12 | .mh-100 { max-height: 100% !important; } 13 | 14 | // Viewport additional helpers 15 | 16 | .min-vw-100 { min-width: 100vw !important; } 17 | .min-vh-100 { min-height: 100vh !important; } 18 | 19 | .vw-100 { width: 100vw !important; } 20 | .vh-100 { height: 100vh !important; } 21 | 22 | .vw-75 { width: 75vw !important; } 23 | .vh-75 { height: 75vh !important; } 24 | 25 | .vw-50 { width: 50vw !important; } 26 | .vh-50 { height: 50vh !important; } 27 | 28 | .vw-25 { width: 25vw !important; } 29 | .vh-25 { height: 25vh !important; } 30 | -------------------------------------------------------------------------------- /templates/partials/simplesearch_item.html.twig: -------------------------------------------------------------------------------- 1 |
2 | 3 | {% set blog_image = page.media.images[page.header.featuredImage] ?: page.media.images|filter((v, k) => k != page.header.author.avatarImage)|first %} 4 | 5 | {% if blog_image %} 6 | 9 | {% endif %} 10 |
11 |
12 |

{{ page_title|e }}

13 |
14 | 15 |
16 | {{ page.date|date(config.system.pages.dateformat.short) }} 17 |
18 | 19 |

{{ page.summary|striptags|raw }}

20 | 21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_hover.scss: -------------------------------------------------------------------------------- 1 | // Hover mixin and `$enable-hover-media-query` are deprecated. 2 | // 3 | // Originally added during our alphas and maintained during betas, this mixin was 4 | // designed to prevent `:hover` stickiness on iOS-an issue where hover styles 5 | // would persist after initial touch. 6 | // 7 | // For backward compatibility, we've kept these mixins and updated them to 8 | // always return their regular pseudo-classes instead of a shimmed media query. 9 | // 10 | // Issue: https://github.com/twbs/bootstrap/issues/25195 11 | 12 | @mixin hover() { 13 | &:hover { @content; } 14 | } 15 | 16 | @mixin hover-focus() { 17 | &:hover, 18 | &:focus { 19 | @content; 20 | } 21 | } 22 | 23 | @mixin plain-hover-focus() { 24 | &, 25 | &:hover, 26 | &:focus { 27 | @content; 28 | } 29 | } 30 | 31 | @mixin hover-focus-active() { 32 | &:hover, 33 | &:focus, 34 | &:active { 35 | @content; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /templates/partials/blog/disqus.html.twig: -------------------------------------------------------------------------------- 1 | {# PARTIAL DISQUS #} 2 | 3 | 4 | 5 |
6 |
7 | 18 | 22 |
23 | -------------------------------------------------------------------------------- /templates/partials/messages.html.twig: -------------------------------------------------------------------------------- 1 | {% set type_mapping = {info: 'success', error: 'danger', warning: 'warning'} %} 2 | {% set icon_mapping = {info: 'check', error: 'times', warning: 'exclamation'} %} 3 | {% block content %} 4 | 5 | {% if grav.messages.all %} 6 |
7 |
8 | {% for message in grav.messages.fetch %} 9 | 10 | {% set scope = message.scope|e %} 11 | {% set type = type_mapping[scope] %} 12 | {% set icon = icon_mapping[scope] %} 13 | 14 | 20 | {% endfor %} 21 |
22 |
23 | {% endif %} 24 | 25 | {% endblock %} 26 | -------------------------------------------------------------------------------- /blueprints/pages/partials/blog-sidebar.yaml: -------------------------------------------------------------------------------- 1 | form: 2 | fields: 3 | 4 | header.show_sidebar: 5 | type: toggle 6 | toggleable: true 7 | label: MUNDANA.ADMIN.BLOG.CONFIGURATION.SHOW_SIDEBAR 8 | highlight: 1 9 | options: 10 | 1: PLUGIN_ADMIN.ENABLED 11 | 0: PLUGIN_ADMIN.DISABLED 12 | validate: 13 | type: bool 14 | 15 | header.show_featured: 16 | type: toggle 17 | toggleable: true 18 | label: MUNDANA.ADMIN.BLOG.CONFIGURATION.SHOW_FEATURED_POSTS 19 | highlight: 1 20 | options: 21 | 1: PLUGIN_ADMIN.ENABLED 22 | 0: PLUGIN_ADMIN.DISABLED 23 | validate: 24 | type: bool 25 | header.show_categories: 26 | type: toggle 27 | toggleable: true 28 | label: MUNDANA.ADMIN.BLOG.CONFIGURATION.SHOW_CATEGORIES 29 | highlight: 1 30 | options: 31 | 1: PLUGIN_ADMIN.ENABLED 32 | 0: PLUGIN_ADMIN.DISABLED 33 | validate: 34 | type: bool -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_table-row.scss: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | @mixin table-row-variant($state, $background, $border: null) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table-#{$state} { 7 | &, 8 | > th, 9 | > td { 10 | background-color: $background; 11 | } 12 | 13 | @if $border != null { 14 | th, 15 | td, 16 | thead th, 17 | tbody + tbody { 18 | border-color: $border; 19 | } 20 | } 21 | } 22 | 23 | // Hover states for `.table-hover` 24 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 25 | .table-hover { 26 | $hover-background: darken($background, 5%); 27 | 28 | .table-#{$state} { 29 | @include hover() { 30 | background-color: $hover-background; 31 | 32 | > td, 33 | > th { 34 | background-color: $hover-background; 35 | } 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Only display content to screen readers 2 | // 3 | // See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/ 4 | // See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/ 5 | 6 | @mixin sr-only() { 7 | position: absolute; 8 | width: 1px; 9 | height: 1px; 10 | padding: 0; 11 | margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686 12 | overflow: hidden; 13 | clip: rect(0, 0, 0, 0); 14 | white-space: nowrap; 15 | border: 0; 16 | } 17 | 18 | // Use in conjunction with .sr-only to only display content when it's focused. 19 | // 20 | // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 21 | // 22 | // Credit: HTML5 Boilerplate 23 | 24 | @mixin sr-only-focusable() { 25 | &:active, 26 | &:focus { 27 | position: static; 28 | width: auto; 29 | height: auto; 30 | overflow: visible; 31 | clip: auto; 32 | white-space: normal; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/utilities/_embed.scss: -------------------------------------------------------------------------------- 1 | // Credit: Nicolas Gallagher and SUIT CSS. 2 | 3 | .embed-responsive { 4 | position: relative; 5 | display: block; 6 | width: 100%; 7 | padding: 0; 8 | overflow: hidden; 9 | 10 | &::before { 11 | display: block; 12 | content: ""; 13 | } 14 | 15 | .embed-responsive-item, 16 | iframe, 17 | embed, 18 | object, 19 | video { 20 | position: absolute; 21 | top: 0; 22 | bottom: 0; 23 | left: 0; 24 | width: 100%; 25 | height: 100%; 26 | border: 0; 27 | } 28 | } 29 | 30 | @each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios { 31 | $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1); 32 | $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2); 33 | 34 | .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} { 35 | &::before { 36 | padding-top: percentage(divide($embed-responsive-aspect-ratio-y, $embed-responsive-aspect-ratio-x)); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /templates/item.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/base.html.twig' %} 2 | 3 | {# Set blog settings #} 4 | {% set themeBlog = theme_var('blog_route')|defined('/blog') %} 5 | {% set blog = page.find(header_var('blog_url')|defined(themeBlog)) %} 6 | {# Set sidebar option for page #} 7 | {% set show_sidebar = header_var('show_sidebar', [page, blog])|defined(false) %} 8 | {# Set breadcrumbs option for page #} 9 | {% set show_breadcrumbs = header_var('show_breadcrumbs', [page, blog])|defined(true) %} 10 | 11 | {% block content %} 12 | 13 |
14 | {% embed 'partials/layout.html.twig' %} 15 | {% block item %} 16 | {% if show_breadcrumbs and config.plugins.breadcrumbs.enabled %} 17 | {{ include('partials/breadcrumbs.html.twig') }} 18 | {% endif %} 19 | 20 | {{ include('partials/blog-item.html.twig', {blog: blog, title_level: 'h1'}) }} 21 | {% endblock %} 22 | 23 | {% block sidebar %} 24 | {{ include('partials/sidebar.html.twig') }} 25 | {% endblock %} 26 | {% endembed %} 27 |
28 | 29 | {% endblock %} 30 | -------------------------------------------------------------------------------- /templates/partials/blog/author.html.twig: -------------------------------------------------------------------------------- 1 | {# PARTIAL AUTHOR FOR PAGES #} 2 | 3 | 4 |
5 |
6 | {% if (avatar ?? null) %} 7 | {{ include('partials/blog/avatar.html.twig', {avatar_width: 80}) }} 8 | {% endif %} 9 |
10 |
11 |

{{ 'MUNDANA.ITEM.WRITTEN_BY'|t }} 12 | {% if page.taxonomy.author %} 13 | {{ author|raw }} 14 | {% else %} 15 | {{ author|raw }} 16 | {% endif %} 17 | {% if author_twitter %}{{ 'MUNDANA.MISC.FOLLOW'|t }}{% endif %}

18 | {% if author_bio %}{{ author_bio|markdown }}{% endif %} 19 |
20 |
21 | -------------------------------------------------------------------------------- /blueprints/pages/modular/allstories.yaml: -------------------------------------------------------------------------------- 1 | title: AllStories 2 | '@extends': default 3 | 4 | form: 5 | fields: 6 | tabs: 7 | fields: 8 | content: 9 | fields: 10 | _Headings: 11 | fields: 12 | _TitleToggle: 13 | fields: 14 | header.show_title: 15 | replace-options@: true 16 | default: 0 17 | highlight: 0 18 | options: 19 | 1: PLUGIN_ADMIN.YES 20 | 0: PLUGIN_ADMIN.NO 21 | options: 22 | fields: 23 | PageOptions: 24 | import@: 25 | type: partials/blog-url 26 | context: blueprints://pages 27 | _configSidebar: 28 | type: section 29 | title: MUNDANA.ADMIN.BLOG.CONFIGURATION.SIDEBAR_SETTINGS 30 | ordering@: -2 31 | import@: 32 | type: partials/blog-sidebar 33 | context: blueprints://pages 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/bootstrap.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Bootstrap v4.6.2 (https://getbootstrap.com/) 3 | * Copyright 2011-2022 The Bootstrap Authors 4 | * Copyright 2011-2022 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6 | */ 7 | 8 | @import "functions"; 9 | @import "variables"; 10 | @import "mixins"; 11 | @import "root"; 12 | @import "reboot"; 13 | @import "type"; 14 | @import "images"; 15 | @import "code"; 16 | @import "grid"; 17 | @import "tables"; 18 | @import "forms"; 19 | @import "buttons"; 20 | @import "transitions"; 21 | @import "dropdown"; 22 | @import "button-group"; 23 | @import "input-group"; 24 | @import "custom-forms"; 25 | @import "nav"; 26 | @import "navbar"; 27 | @import "card"; 28 | @import "breadcrumb"; 29 | @import "pagination"; 30 | @import "badge"; 31 | @import "jumbotron"; 32 | @import "alert"; 33 | @import "progress"; 34 | @import "media"; 35 | @import "list-group"; 36 | @import "close"; 37 | @import "toasts"; 38 | @import "modal"; 39 | @import "tooltip"; 40 | @import "popover"; 41 | @import "carousel"; 42 | @import "spinners"; 43 | @import "utilities"; 44 | @import "print"; 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 pmoreno.rodriguez 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /templates/partials/breadcrumbs.html.twig: -------------------------------------------------------------------------------- 1 | {% set breadcrumbs_config = config.plugins.breadcrumbs %} 2 | {% set crumbs = breadcrumbs.get() %} 3 | 4 | {% if crumbs|length > 1 %} 5 |
6 | 24 |
25 | {% endif %} 26 | -------------------------------------------------------------------------------- /templates/partials/blog/mailchimp.html.twig: -------------------------------------------------------------------------------- 1 | {# PARTIAL MAILCHIMP #} 2 | 3 |
4 |
5 |
6 |

{{ mailchimpTitle|raw }}

7 | {{ mailchimpDescription|raw }} 8 |
9 |
10 |
11 |
12 |
13 | 14 | 15 |
16 |
17 |
18 |
19 |
20 |
21 | -------------------------------------------------------------------------------- /templates/partials/shortcodes/sc-cards.html.twig: -------------------------------------------------------------------------------- 1 | {# SHORTCODE TEMPLATE FOR BOOTSTRAP CARDS #} 2 | 3 |
4 | {% for card in cards %} 5 | {% set columnSize = card.getParameter('column-size', 'col-sm-6') %} 6 |
7 |
8 |
9 |
{{ card.getParameter('title') }}
10 |

11 | {{ card.getContent()|replace({'

': '', '

': ''})|raw }} 12 |

13 | {% if card.getParameter('button-text') and card.getParameter('button-url') %} 14 | {% set buttonColor = card.getParameter('button-color', 'primary') %} 15 | {{ card.getParameter('button-text') }} 16 | {% endif %} 17 | {# Add other card components as needed #} 18 |
19 |
20 |
21 | {% endfor %} 22 |
23 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_close.scss: -------------------------------------------------------------------------------- 1 | .close { 2 | float: right; 3 | @include font-size($close-font-size); 4 | font-weight: $close-font-weight; 5 | line-height: 1; 6 | color: $close-color; 7 | text-shadow: $close-text-shadow; 8 | opacity: .5; 9 | 10 | // Override 's hover style 11 | @include hover() { 12 | color: invert($close-color); 13 | text-decoration: none; 14 | } 15 | 16 | &:not(:disabled):not(.disabled) { 17 | @include hover-focus() { 18 | opacity: .75; 19 | } 20 | } 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | 28 | // stylelint-disable-next-line selector-no-qualifying-type 29 | button.close { 30 | padding: 0; 31 | background-color: transparent; 32 | border: 0; 33 | } 34 | 35 | // Future-proof disabling of clicks on `` elements 36 | 37 | // stylelint-disable-next-line selector-no-qualifying-type 38 | a.close.disabled { 39 | pointer-events: none; 40 | } 41 | -------------------------------------------------------------------------------- /assets/css/google-fonts-local.css: -------------------------------------------------------------------------------- 1 | /* lora-regular - latin */ 2 | @font-face { 3 | font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ 4 | font-family: 'Lora'; 5 | font-style: normal; 6 | font-weight: 400; 7 | src: url('../fonts/lora-v36-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ 8 | } 9 | 10 | /* lora-italic - latin */ 11 | @font-face { 12 | font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ 13 | font-family: 'Lora'; 14 | font-style: italic; 15 | font-weight: 400; 16 | src: url('../fonts/lora-v36-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ 17 | } 18 | 19 | /* lora-700 - latin */ 20 | @font-face { 21 | font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ 22 | font-family: 'Lora'; 23 | font-style: normal; 24 | font-weight: 700; 25 | src: url('../fonts/lora-v36-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ 26 | } -------------------------------------------------------------------------------- /templates/partials/shortcodes/alert.html.twig: -------------------------------------------------------------------------------- 1 | {# SHORTCODE TEMPLATE FOR BOOTSTRAP ALERTS #} 2 | 3 | {% set alertClass = shortcode.getParameter('class', 'primary') %} 4 | {% set alertDismissible = shortcode.getParameter('dismissible', 'false') %} 5 | {% set alertHeading = shortcode.getParameter('heading') %} 6 | {% set alertText = shortcode.getContent() %} 7 | 8 | {% set classDismissible = '' %} 9 | {% set closeButton = '' %} 10 | 11 | {% if alertDismissible == 'true' %} 12 | {% set classDismissible = 'alert-dismissible fade show' %} 13 | {% set closeButton = ' 14 | ' %} 17 | {% endif %} 18 | 19 | {% if alertHeading is not empty %} 20 | 24 | {% else %} 25 | 28 | {% endif %} 29 | -------------------------------------------------------------------------------- /shortcodes/CollapseShortcode.php: -------------------------------------------------------------------------------- 1 | shortcode->getHandlers()->add('sc-collapse', function(ShortcodeInterface $sc) { 12 | 13 | // Get the ID provided in the shortcode 14 | $hash = $sc->getParameter('id'); 15 | 16 | $output = $this->twig->processTemplate( 17 | 'partials/shortcodes/sc-collapse.html.twig', 18 | [ 19 | 'hash' => $hash, 20 | 'open' => $sc->getParameter('open'), 21 | 'collapse_items' => $this->shortcode->getStates($hash), 22 | ] 23 | ); 24 | 25 | return $output; 26 | }); 27 | 28 | $this->shortcode->getHandlers()->add('sc-collapse-item', function(ShortcodeInterface $sc) { 29 | // Get the ID of the parent shortcode 30 | $hash = $sc->getParent()->getParameter('id'); 31 | 32 | $this->shortcode->setStates($hash, $sc); 33 | 34 | return ''; 35 | }); 36 | } 37 | } 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_code.scss: -------------------------------------------------------------------------------- 1 | // Inline code 2 | code { 3 | @include font-size($code-font-size); 4 | color: $code-color; 5 | word-wrap: break-word; 6 | 7 | // Streamline the style when inside anchors to avoid broken underline and more 8 | a > & { 9 | color: inherit; 10 | } 11 | } 12 | 13 | // User input typically entered via keyboard 14 | kbd { 15 | padding: $kbd-padding-y $kbd-padding-x; 16 | @include font-size($kbd-font-size); 17 | color: $kbd-color; 18 | background-color: $kbd-bg; 19 | @include border-radius($border-radius-sm); 20 | @include box-shadow($kbd-box-shadow); 21 | 22 | kbd { 23 | padding: 0; 24 | @include font-size(100%); 25 | font-weight: $nested-kbd-font-weight; 26 | @include box-shadow(none); 27 | } 28 | } 29 | 30 | // Blocks of code 31 | pre { 32 | display: block; 33 | @include font-size($code-font-size); 34 | color: $pre-color; 35 | 36 | // Account for some code outputs that place code tags in pre tags 37 | code { 38 | @include font-size(inherit); 39 | color: inherit; 40 | word-break: normal; 41 | } 42 | } 43 | 44 | // Enable scrollable blocks of code 45 | .pre-scrollable { 46 | max-height: $pre-scrollable-max-height; 47 | overflow-y: scroll; 48 | } 49 | -------------------------------------------------------------------------------- /templates/partials/blog/share.html.twig: -------------------------------------------------------------------------------- 1 | {# PARTIAL SHARE ICONS #} 2 | 3 | 4 | {% set color_mapping = { 5 | primary: '#007bff', 6 | secondary: '#6c757d', 7 | success: '#28a745', 8 | info: '#17a2b8', 9 | warning: '#ffc107', 10 | danger: '#dc3545', 11 | light: '#f8f9fa', 12 | dark: '#212529', 13 | } %} 14 | {% set a2a_icon_color = color_mapping[color_style] %} 15 | 16 |
17 | 33 |
34 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Toggles 2 | // 3 | // Used in conjunction with global variables to enable certain theme features. 4 | 5 | // Vendor 6 | @import "vendor/rfs"; 7 | 8 | // Deprecate 9 | @import "mixins/deprecate"; 10 | 11 | // Utilities 12 | @import "mixins/breakpoints"; 13 | @import "mixins/hover"; 14 | @import "mixins/image"; 15 | @import "mixins/badge"; 16 | @import "mixins/resize"; 17 | @import "mixins/screen-reader"; 18 | @import "mixins/size"; 19 | @import "mixins/reset-text"; 20 | @import "mixins/text-emphasis"; 21 | @import "mixins/text-hide"; 22 | @import "mixins/text-truncate"; 23 | @import "mixins/visibility"; 24 | 25 | // Components 26 | @import "mixins/alert"; 27 | @import "mixins/buttons"; 28 | @import "mixins/caret"; 29 | @import "mixins/pagination"; 30 | @import "mixins/lists"; 31 | @import "mixins/list-group"; 32 | @import "mixins/nav-divider"; 33 | @import "mixins/forms"; 34 | @import "mixins/table-row"; 35 | 36 | // Skins 37 | @import "mixins/background-variant"; 38 | @import "mixins/border-radius"; 39 | @import "mixins/box-shadow"; 40 | @import "mixins/gradients"; 41 | @import "mixins/transition"; 42 | 43 | // Layout 44 | @import "mixins/clearfix"; 45 | @import "mixins/grid-framework"; 46 | @import "mixins/grid"; 47 | @import "mixins/float"; 48 | -------------------------------------------------------------------------------- /shortcodes/CardsShortcode.php: -------------------------------------------------------------------------------- 1 | shortcode->getHandlers()->add('sc-cards', function(ShortcodeInterface $sc) { 12 | // Get unique identifier for the cards 13 | $hash = $this->shortcode->getId($sc); 14 | 15 | // Process the template 16 | $output = $this->twig->processTemplate( 17 | 'partials/shortcodes/sc-cards.html.twig', 18 | [ 19 | 'hash' => $hash, 20 | 'cards' => $this->shortcode->getStates($hash), 21 | ] 22 | ); 23 | 24 | return $output; 25 | }); 26 | 27 | $this->shortcode->getHandlers()->add('sc-card', function(ShortcodeInterface $sc) { 28 | // Get the unique identifier of the parent ui-cards shortcode 29 | $hash = $this->shortcode->getId($sc->getParent()); 30 | 31 | // Add the current card to the states of the parent ui-cards shortcode 32 | $this->shortcode->setStates($hash, $sc); 33 | 34 | return ''; 35 | }); 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /templates/partials/page/date.html.twig: -------------------------------------------------------------------------------- 1 | {# Set page datePublished in folowing order with support for translations #} 2 | {# FIRST: Page publication date #} 3 | {# SECOND: Page date #} 4 | {# LAST: Page modification date #} 5 | 6 | {# SET DEFAULT GRAV LANGUAGE #} 7 | {% apply spaceless %} 8 | 9 | {% set lang = grav.language.getActive ?: grav.config.site.default_lang %} 10 | 11 | {% set default_format = system.pages.dateformat.default %} 12 | {% set short_format = system.pages.dateformat.short %} 13 | {% if config.plugins['translate-date'].enabled %} 14 | {% set datePublished = (page.header.publish_date) ? (page.header.publish_date|td(lang, default_format)) : (page.date ? page.date|td(lang, default_format) : page.modified|td(lang, default_format)) %} 15 | {% elseif config.plugins['twig-extensions'].enabled %} 16 | {% set datePublished = (page.header.publish_date) ? (page.header.publish_date|localizeddate('medium', 'none', lang)) : (page.date ? page.date|localizeddate('medium', 'none', lang) : page.modified|localizeddate('medium', 'none', lang)) %} 17 | {% else %} 18 | {% set datePublished = (page.header.publish_date) ? (page.header.publish_date|date(short_format)) : (page.date ? page.date|date(short_format) : page.modified|date(short_format)) %} 19 | {% endif %} 20 | 21 | {{ datePublished }} 22 | 23 | {% endapply %} 24 | -------------------------------------------------------------------------------- /templates/partials/shortcodes/sc-collapse.html.twig: -------------------------------------------------------------------------------- 1 | {# SHORTCODE TEMPLATE FOR BOOTSTRAP ACCORDION #} 2 | 3 | {% if hash ?? null %} 4 |
5 | {% for item in collapse_items %} 6 | {% set isOpen = item.getParameter('open') == true %} 7 | {% set opened = isOpen ? 'show' : '' %} 8 |
9 |
10 |

11 | 14 |

15 |
16 |
17 |
18 | {{ item.content|raw }} 19 |
20 |
21 |
22 | {% endfor %} 23 |
24 | {% endif %} 25 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/mixins/_image.scss: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | 10 | @mixin img-fluid() { 11 | // Part 1: Set a maximum relative to the parent 12 | max-width: 100%; 13 | // Part 2: Override the height to auto, otherwise images will be stretched 14 | // when setting a width and height attribute on the img element. 15 | height: auto; 16 | } 17 | 18 | 19 | // Retina image 20 | // 21 | // Short retina mixin for setting background-image and -size. 22 | 23 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) { 24 | background-image: url($file-1x); 25 | 26 | // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio, 27 | // but doesn't convert dppx=>dpi. 28 | // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard. 29 | // Compatibility info: https://caniuse.com/css-media-resolution 30 | @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx 31 | only screen and (min-resolution: 2dppx) { // Standardized 32 | background-image: url($file-2x); 33 | background-size: $width-1x $height-1x; 34 | } 35 | @include deprecate("`img-retina()`", "v4.3.0", "v5"); 36 | } 37 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_toasts.scss: -------------------------------------------------------------------------------- 1 | .toast { 2 | // Prevents from shrinking in IE11, when in a flex container 3 | // See https://github.com/twbs/bootstrap/issues/28341 4 | flex-basis: $toast-max-width; 5 | max-width: $toast-max-width; 6 | @include font-size($toast-font-size); 7 | color: $toast-color; 8 | background-color: $toast-background-color; 9 | background-clip: padding-box; 10 | border: $toast-border-width solid $toast-border-color; 11 | box-shadow: $toast-box-shadow; 12 | opacity: 0; 13 | @include border-radius($toast-border-radius); 14 | 15 | &:not(:last-child) { 16 | margin-bottom: $toast-padding-x; 17 | } 18 | 19 | &.showing { 20 | opacity: 1; 21 | } 22 | 23 | &.show { 24 | display: block; 25 | opacity: 1; 26 | } 27 | 28 | &.hide { 29 | display: none; 30 | } 31 | } 32 | 33 | .toast-header { 34 | display: flex; 35 | align-items: center; 36 | padding: $toast-padding-y $toast-padding-x; 37 | color: $toast-header-color; 38 | background-color: $toast-header-background-color; 39 | background-clip: padding-box; 40 | border-bottom: $toast-border-width solid $toast-header-border-color; 41 | @include border-top-radius(subtract($toast-border-radius, $toast-border-width)); 42 | } 43 | 44 | .toast-body { 45 | padding: $toast-padding-x; // apply to both vertical and horizontal 46 | } 47 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_images.scss: -------------------------------------------------------------------------------- 1 | // Responsive images (ensure images don't scale beyond their parents) 2 | // 3 | // This is purposefully opt-in via an explicit class rather than being the default for all ``s. 4 | // We previously tried the "images are responsive by default" approach in Bootstrap v2, 5 | // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps) 6 | // which weren't expecting the images within themselves to be involuntarily resized. 7 | // See also https://github.com/twbs/bootstrap/issues/18178 8 | .img-fluid { 9 | @include img-fluid(); 10 | } 11 | 12 | 13 | // Image thumbnails 14 | .img-thumbnail { 15 | padding: $thumbnail-padding; 16 | background-color: $thumbnail-bg; 17 | border: $thumbnail-border-width solid $thumbnail-border-color; 18 | @include border-radius($thumbnail-border-radius); 19 | @include box-shadow($thumbnail-box-shadow); 20 | 21 | // Keep them at most 100% wide 22 | @include img-fluid(); 23 | } 24 | 25 | // 26 | // Figures 27 | // 28 | 29 | .figure { 30 | // Ensures the caption's text aligns with the image. 31 | display: inline-block; 32 | } 33 | 34 | .figure-img { 35 | margin-bottom: $spacer * .5; 36 | line-height: 1; 37 | } 38 | 39 | .figure-caption { 40 | @include font-size($figure-caption-font-size); 41 | color: $figure-caption-color; 42 | } 43 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_badge.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Requires one of the contextual, color modifier classes for `color` and 4 | // `background-color`. 5 | 6 | .badge { 7 | display: inline-block; 8 | padding: $badge-padding-y $badge-padding-x; 9 | @include font-size($badge-font-size); 10 | font-weight: $badge-font-weight; 11 | line-height: 1; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | @include border-radius($badge-border-radius); 16 | @include transition($badge-transition); 17 | 18 | @at-root a#{&} { 19 | @include hover-focus() { 20 | text-decoration: none; 21 | } 22 | } 23 | 24 | // Empty badges collapse automatically 25 | &:empty { 26 | display: none; 27 | } 28 | } 29 | 30 | // Quick fix for badges in buttons 31 | .btn .badge { 32 | position: relative; 33 | top: -1px; 34 | } 35 | 36 | // Pill badges 37 | // 38 | // Make them extra rounded with a modifier to replace v3's badges. 39 | 40 | .badge-pill { 41 | padding-right: $badge-pill-padding-x; 42 | padding-left: $badge-pill-padding-x; 43 | @include border-radius($badge-pill-border-radius); 44 | } 45 | 46 | // Colors 47 | // 48 | // Contextual variations (linked badges get darker on :hover). 49 | 50 | @each $color, $value in $theme-colors { 51 | .badge-#{$color} { 52 | @include badge-variant($value); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /blueprints/pages/modular.yaml: -------------------------------------------------------------------------------- 1 | title: PLUGIN_ADMIN.MODULE 2 | extends@: default 3 | 4 | form: 5 | fields: 6 | tabs: 7 | type: tabs 8 | active: 1 9 | 10 | fields: 11 | content: 12 | fields: 13 | modular_title: 14 | type: spacer 15 | title: PLUGIN_ADMIN.MODULE_SETUP 16 | 17 | header.onpage_menu: 18 | type: toggle 19 | style: vertical 20 | label: MUNDANA.ADMIN.MODULAR.SHOW_ONPAGE_MENU 21 | help: MUNDANA.ADMIN.MODULAR.SHOW_ONPAGE_MENU_HELP 22 | default: 0 23 | highlight: 0 24 | options: 25 | 1: PLUGIN_ADMIN.YES 26 | 0: PLUGIN_ADMIN.NO 27 | 28 | header.content.items: 29 | type: text 30 | label: PLUGIN_ADMIN.ITEMS 31 | default: "@self.modular" 32 | size: medium 33 | 34 | header.content.order.by: 35 | type: text 36 | label: PLUGIN_ADMIN.ORDER_BY 37 | placeholder: date 38 | help: 39 | size: small 40 | 41 | header.content.order.dir: 42 | type: text 43 | label: PLUGIN_ADMIN.ORDER 44 | help: MUNDANA.ADMIN.MODULAR.ORDER_DIR_HELP 45 | placeholder: desc 46 | size: small 47 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_progress.scss: -------------------------------------------------------------------------------- 1 | // Disable animation if transitions are disabled 2 | @if $enable-transitions { 3 | @keyframes progress-bar-stripes { 4 | from { background-position: $progress-height 0; } 5 | to { background-position: 0 0; } 6 | } 7 | } 8 | 9 | .progress { 10 | display: flex; 11 | height: $progress-height; 12 | overflow: hidden; // force rounded corners by cropping it 13 | line-height: 0; 14 | @include font-size($progress-font-size); 15 | background-color: $progress-bg; 16 | @include border-radius($progress-border-radius); 17 | @include box-shadow($progress-box-shadow); 18 | } 19 | 20 | .progress-bar { 21 | display: flex; 22 | flex-direction: column; 23 | justify-content: center; 24 | overflow: hidden; 25 | color: $progress-bar-color; 26 | text-align: center; 27 | white-space: nowrap; 28 | background-color: $progress-bar-bg; 29 | @include transition($progress-bar-transition); 30 | } 31 | 32 | .progress-bar-striped { 33 | @include gradient-striped(); 34 | background-size: $progress-height $progress-height; 35 | } 36 | 37 | @if $enable-transitions { 38 | .progress-bar-animated { 39 | animation: $progress-bar-animation-timing progress-bar-stripes; 40 | 41 | @if $enable-prefers-reduced-motion-media-query { 42 | @media (prefers-reduced-motion: reduce) { 43 | animation: none; 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /templates/simplesearch_results.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/simplesearch_base.html.twig' %} 2 | 3 | {% block content %} 4 |
5 |
6 |
7 |

{{ 'PLUGIN_SIMPLESEARCH.SEARCH_RESULTS'|t }}

8 |
9 | {{ include('partials/simplesearch_searchbox.html.twig') }} 10 |
11 |

12 | {% if query %} 13 | {% set count = search_results ? search_results.count : 0 %} 14 | {% if count is same as(1) %} 15 | {{ 'PLUGIN_SIMPLESEARCH.SEARCH_RESULTS_SUMMARY_SINGULAR'|t(query|e)|raw }} 16 | {% else %} 17 | {{ 'PLUGIN_SIMPLESEARCH.SEARCH_RESULTS_SUMMARY_PLURAL'|t(query|e, count)|raw }} 18 | {% endif %} 19 | {% endif %} 20 |

21 | {% for page in search_results %} 22 | {{ include('partials/simplesearch_item.html.twig', {page: page, page_title: page.title}) }} 23 | {% endfor %} 24 |
25 |
26 | 31 |
32 | {% endblock %} 33 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_alert.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .alert { 6 | position: relative; 7 | padding: $alert-padding-y $alert-padding-x; 8 | margin-bottom: $alert-margin-bottom; 9 | border: $alert-border-width solid transparent; 10 | @include border-radius($alert-border-radius); 11 | } 12 | 13 | // Headings for larger alerts 14 | .alert-heading { 15 | // Specified to prevent conflicts of changing $headings-color 16 | color: inherit; 17 | } 18 | 19 | // Provide class for links that match alerts 20 | .alert-link { 21 | font-weight: $alert-link-font-weight; 22 | } 23 | 24 | 25 | // Dismissible alerts 26 | // 27 | // Expand the right padding and account for the close button's positioning. 28 | 29 | .alert-dismissible { 30 | padding-right: $close-font-size + $alert-padding-x * 2; 31 | 32 | // Adjust close link position 33 | .close { 34 | position: absolute; 35 | top: 0; 36 | right: 0; 37 | z-index: 2; 38 | padding: $alert-padding-y $alert-padding-x; 39 | color: inherit; 40 | } 41 | } 42 | 43 | 44 | // Alternate styles 45 | // 46 | // Generate contextual modifier classes for colorizing the alert. 47 | 48 | @each $color, $value in $theme-colors { 49 | .alert-#{$color} { 50 | @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /templates/partials/sidebar/featured.html.twig: -------------------------------------------------------------------------------- 1 | {# FEATURED SECTION - SIDEBAR #} 2 | 3 | {% set featured_posts = page.evaluate({'@taxonomy.tag': featuredposts_tag}).order('date', 'desc').slice(0, featuredposts_number) %} 4 | 5 | {% if featured_posts.count() > 0 %} 6 | 31 | {% endif %} 32 | -------------------------------------------------------------------------------- /templates/partials/shortcodes/button.html.twig: -------------------------------------------------------------------------------- 1 | {# SHORTCODE TEMPLATE FOR BOOTSTRAP BUTTONS #} 2 | 3 | {% set buttonUrl = shortcode.getParameter('url', '') %} 4 | {% set buttonTarget = shortcode.getParameter('target', '') %} 5 | {% set buttonType = shortcode.getParameter('type', '') %} 6 | {% set buttonSize = shortcode.getParameter('size', '') %} 7 | {% set buttonClasses = shortcode.getParameter('classes', '') %} 8 | {% set buttonLabel = shortcode.getParameter('label', '') %} 9 | {% set buttonOutline = shortcode.getParameter('outline', 'false') %} 10 | 11 | {% set buttonAttributes = 'btn' %} 12 | 13 | {% if buttonType %} 14 | {% if buttonOutline == 'true' %} 15 | {% set buttonAttributes = buttonAttributes ~ ' btn-outline-' ~ buttonType %} 16 | {% else %} 17 | {% set buttonAttributes = buttonAttributes ~ ' btn-' ~ buttonType %} 18 | {% endif %} 19 | {% endif %} 20 | 21 | {% if buttonSize %} 22 | {% set buttonAttributes = buttonAttributes ~ ' btn-' ~ buttonSize %} 23 | {% endif %} 24 | 25 | {% if buttonClasses %} 26 | {% set buttonAttributes = buttonAttributes ~ ' ' ~ buttonClasses %} 27 | {% endif %} 28 | 29 | {% set targetAttribute = buttonTarget ? 'target="_' ~ buttonTarget ~ '"' : '' %} 30 | 31 | {% if buttonUrl and buttonLabel %} 32 | {{ buttonLabel }} 33 | {% elseif buttonLabel %} 34 | 35 | {% endif %} 36 | -------------------------------------------------------------------------------- /templates/partials/simplesearch_searchbox.html.twig: -------------------------------------------------------------------------------- 1 | {% set min_chars = config.get('plugins.simplesearch.min_query_length', 3) %} 2 |
3 | 25 |
26 | -------------------------------------------------------------------------------- /assets/scss/vendor/bootstrap/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | display: flex; 3 | flex-wrap: wrap; 4 | padding: $breadcrumb-padding-y $breadcrumb-padding-x; 5 | margin-bottom: $breadcrumb-margin-bottom; 6 | @include font-size($breadcrumb-font-size); 7 | list-style: none; 8 | background-color: $breadcrumb-bg; 9 | @include border-radius($breadcrumb-border-radius); 10 | } 11 | 12 | .breadcrumb-item { 13 | // The separator between breadcrumbs (by default, a forward-slash: "/") 14 | + .breadcrumb-item { 15 | padding-left: $breadcrumb-item-padding; 16 | 17 | &::before { 18 | float: left; // Suppress inline spacings and underlining of the separator 19 | padding-right: $breadcrumb-item-padding; 20 | color: $breadcrumb-divider-color; 21 | content: escape-svg($breadcrumb-divider); 22 | } 23 | } 24 | 25 | // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built 26 | // without `