Initial Drupal 11 with DDEV setup

This commit is contained in:
gluebox
2025-10-08 11:39:17 -04:00
commit 89ef74b305
25344 changed files with 2599172 additions and 0 deletions

View File

@ -0,0 +1,59 @@
{#
/**
* @file
* Theme override for the basic structure of a single Drupal page.
*
* Variables:
* - logged_in: A flag indicating if user is logged in.
* - root_path: The root path of the current page (e.g., node, admin, user).
* - node_type: The content type for the current node, if the page is a node.
* - head_title: List of text elements that make up the head_title variable.
* May contain one or more of the following:
* - title: The title of the page.
* - name: The name of the site.
* - slogan: The slogan of the site.
* - page_top: Initial rendered markup. This should be printed before 'page'.
* - page: The rendered page markup.
* - page_bottom: Closing rendered markup. This variable should be printed after
* 'page'.
* - db_offline: A flag indicating if the database is offline.
* - placeholder_token: The token for generating head, css, js and js-bottom
* placeholders.
* - olivero_path: Returns the path to an Olivero theme.
* - noscript_styles: <noscript> content.
*
* @see \Drupal\Core\Theme\ThemePreprocess::preprocessHtml()
*/
#}
{%
set body_classes = [
logged_in ? 'user-logged-in',
not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class,
node_type ? 'page-node-type-' ~ node_type|clean_class,
db_offline ? 'db-offline',
]
%}
<!DOCTYPE html>
<html{{ html_attributes }}>
<head>
<head-placeholder token="{{ placeholder_token }}">
<title>{{ head_title|safe_join(' | ') }}</title>
<css-placeholder token="{{ placeholder_token }}">
<js-placeholder token="{{ placeholder_token }}">
{% include '@olivero/includes/preload.twig' with {olivero_path: olivero_path} only %}
{{ noscript_styles }}
</head>
<body{{ attributes.addClass(body_classes) }}>
{#
Keyboard navigation/accessibility link to main content section in
page.html.twig.
#}
<a href="#main-content" class="visually-hidden focusable skip-link">
{{ 'Skip to main content'|t }}
</a>
{{ page_top }}
{{ page }}
{{ page_bottom }}
<js-bottom-placeholder token="{{ placeholder_token }}">
</body>
</html>

View File

@ -0,0 +1,135 @@
{#
/**
* @file
* Olivero's theme implementation to display a single page.
*
* The doctype, html, head and body tags are not in this template. Instead they
* can be found in the html.html.twig template normally located in the
* core/modules/system directory.
*
* Available variables:
*
* General utility variables:
* - base_path: The base URL path of the Drupal installation. Will usually be
* "/" unless you have installed Drupal in a sub-directory.
* - is_front: A flag indicating if the current page is the front page.
* - logged_in: A flag indicating if the user is registered and signed in.
* - is_admin: A flag indicating if the user has permission to access
* administration pages.
*
* Site identity:
* - front_page: The URL of the front page. Use this instead of base_path when
* linking to the front page. This includes the language domain or prefix.
*
* Page content (in order of occurrence in the default page.html.twig):
* - node: Fully loaded node, if there is an automatically-loaded node
* associated with the page and the node ID is the second argument in the
* page's path (e.g. node/12345 and node/12345/revisions, but not
* comment/reply/12345).
*
* Regions:
* - page.header: Items for the header region.
* - page.highlighted: Items for the highlighted region.
* - page.primary_menu: Items for the primary menu region.
* - page.secondary_menu: Items for the secondary menu region.
* - page.content: The main content of the current page.
* - page.sidebar: Items for the first sidebar.
* - page.featured_bottom_first: Items for the first featured bottom region.
* - page.featured_bottom_second: Items for the second featured bottom region.
* - page.footer_first: Items for the first footer column.
* - page.footer_second: Items for the second footer column.
* - page.breadcrumb: Items for the breadcrumb region.
* - page.social: Items for the social region.
*
* @see \Drupal\Core\Theme\ThemePreprocess::preprocessPage()
* @see html.html.twig
*/
#}
<div id="page-wrapper" class="page-wrapper">
<div id="page">
{% if page.header or page.primary_menu or page.secondary_menu %}
<header id="header" class="site-header" data-drupal-selector="site-header" role="banner">
{# Gets fixed by JavaScript at wide widths. #}
<div class="site-header__fixable" data-drupal-selector="site-header-fixable">
<div class="site-header__initial">
<button class="sticky-header-toggle" data-drupal-selector="sticky-header-toggle" role="switch" aria-controls="site-header__inner" aria-label="{{ 'Sticky header'|t }}" aria-checked="false">
<span class="sticky-header-toggle__icon">
<span></span>
<span></span>
<span></span>
</span>
</button>
</div>
{# Needs to extend full width so box shadow will also extend. #}
<div id="site-header__inner" class="site-header__inner" data-drupal-selector="site-header-inner">
<div class="container site-header__inner__container">
{{ page.header }}
{% if page.primary_menu or page.secondary_menu %}
<div class="mobile-buttons" data-drupal-selector="mobile-buttons">
<button class="mobile-nav-button" data-drupal-selector="mobile-nav-button" aria-label="{{ 'Main Menu'|t }}" aria-controls="header-nav" aria-expanded="false">
<span class="mobile-nav-button__label">{{ 'Menu'|t }}</span>
<span class="mobile-nav-button__icon"></span>
</button>
</div>
<div id="header-nav" class="header-nav" data-drupal-selector="header-nav">
{{ page.primary_menu }}
{{ page.secondary_menu }}
</div>
{% endif %}
</div>
</div>
</div>
</header>
{% endif %}
<div id="main-wrapper" class="layout-main-wrapper layout-container">
<div id="main" class="layout-main">
<div class="main-content">
<a id="main-content" tabindex="-1"></a>
{{ page.hero }}
<div class="main-content__container container">
{{ page.highlighted }}
{{ page.breadcrumb }}
{% if page.sidebar %}
<div class="sidebar-grid grid-full">
<main role="main" class="site-main">
{{ page.content_above }}
{{ page.content }}
</main>
{{ page.sidebar }}
</div>
{% else %}
<main role="main">
{{ page.content_above }}
{{ page.content }}
</main>
{% endif %}
{{ page.content_below }}
</div>
</div>
<div class="social-bar">
{{ page.social }}
</div>
</div>
</div>
<footer class="site-footer">
<div class="site-footer__inner container">
{{ page.footer_top }}
{{ page.footer_bottom }}
</div>
</footer>
<div class="overlay" data-drupal-selector="overlay"></div>
</div>
</div>

View File

@ -0,0 +1,29 @@
{#
/**
* @file
* Olivero's theme override to display the breadcrumb region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{%
set classes = [
'region',
'region--' ~ region|clean_class,
'grid-full',
'layout--pass--content-medium',
]
%}
{% if content %}
<div{{ attributes.addClass(classes) }}>
{{ content }}
</div>
{% endif %}

View File

@ -0,0 +1,29 @@
{#
/**
* @file
* Olivero's theme override to display the content above region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{%
set classes = [
'region',
'region--' ~ region|clean_class,
'grid-full',
'layout--pass--content-medium',
]
%}
{% if content %}
<div{{ attributes.addClass(classes) }}>
{{ content }}
</div>
{% endif %}

View File

@ -0,0 +1,28 @@
{#
/**
* @file
* Olivero's theme override to display the content below region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{%
set classes = [
'region',
'region--' ~ region|clean_class,
]
%}
{{ attach_library('olivero/content-below') }}
{% if content %}
<div{{ attributes.addClass(classes) }}>
{{ content }}
</div>
{% endif %}

View File

@ -0,0 +1,29 @@
{#
/**
* @file
* Olivero's theme override to display the content region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{%
set classes = [
'region',
'region--' ~ region|clean_class,
'grid-full',
'layout--pass--content-medium',
]
%}
{% if content %}
<div{{ attributes.addClass(classes) }} id="content">
{{ content }}
</div>
{% endif %}

View File

@ -0,0 +1,29 @@
{#
/**
* @file
* Olivero's theme override to display the footer bottom region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{%
set classes = [
'region',
'region--' ~ region|clean_class,
'grid-full',
'layout--pass--content-medium',
]
%}
{% if content %}
<div{{ attributes.addClass(classes) }}>
{{ content }}
</div>
{% endif %}

View File

@ -0,0 +1,31 @@
{#
/**
* @file
* Olivero's theme override to display the footer top region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{%
set classes = [
'region',
'region--' ~ region|clean_class,
'grid-full',
'layout--pass--content-medium',
]
%}
{% if content %}
<div{{ attributes.addClass(classes) }}>
<div class="region--{{ region }}__inner">
{{ content }}
</div>
</div>
{% endif %}

View File

@ -0,0 +1,17 @@
{#
/**
* @file
* Olivero's theme override to display the header region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{{ content }}
<div class="header-nav-overlay" data-drupal-selector="header-nav-overlay"></div>

View File

@ -0,0 +1,29 @@
{#
/**
* @file
* Olivero's theme override to display the content region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{%
set classes = [
'region',
'region--' ~ region|clean_class,
'grid-full',
'layout--pass--content-medium',
]
%}
{% if content %}
<div{{ attributes.addClass(classes) }}>
{{ content }}
</div>
{% endif %}

View File

@ -0,0 +1,16 @@
{#
/**
* @file
* Olivero's theme override to display the header region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{{ content }}

View File

@ -0,0 +1,27 @@
{#
/**
* @file
* Olivero's theme override to display the header region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{%
set classes = [
'region',
'region--' ~ region|clean_class,
]
%}
{% if content %}
<div{{ attributes.addClass(classes) }}>
{{ content }}
</div>
{% endif %}

View File

@ -0,0 +1,28 @@
{#
/**
* @file
* Olivero's theme override to display the sidebar region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{%
set classes = [
'region',
'region--' ~ region|clean_class,
]
%}
{{ attach_library('olivero/sidebar') }}
{% if content %}
<aside{{ attributes.addClass(classes) }}>
{{ content }}
</aside>
{% endif %}

View File

@ -0,0 +1,20 @@
{#
/**
* @file
* Olivero's theme override to display the social region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
<div class="social-bar__inner fixable">
<div class="rotate">
{{ content }}
</div>
</div>

View File

@ -0,0 +1,26 @@
{#
/**
* @file
* Olivero's theme override to display a region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*/
#}
{%
set classes = [
'region',
'region--' ~ region|clean_class,
]
%}
{% if content %}
<div{{ attributes.addClass(classes) }}>
{{ content }}
</div>
{% endif %}