Compare commits

..

39 commits
tome ... main

Author SHA1 Message Date
6fa9b4fe21 Update menu links 2025-08-26 22:03:39 +01:00
604d54cae1 Publish blog page 2025-08-26 19:06:48 +01:00
3067d35497 Add pagination to the blog page 2025-08-26 19:06:48 +01:00
9d9795b64c Reorder packages 2025-08-25 20:20:54 +01:00
23cc6c99a0 Move custom packages 2025-08-25 18:59:53 +01:00
386c68813a Move publish script to Nix
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-08-25 18:20:11 +01:00
b4a233a20f Split flake.nix into separate flake-parts modules 2025-08-25 17:48:12 +01:00
c70e94ae27 Remove resources 2025-08-25 16:33:07 +01:00
4353453ede Add draft: Perpetually publishing
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-08-23 19:28:58 +01:00
76c8db7c52 Add draft: Using NixBook
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-08-23 18:10:38 +01:00
469049521d Add new-draft script 2025-08-22 21:16:03 +01:00
0f99141e8e Add draft: Nix for PHP Developers at PHP Thames Valley
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-08-22 20:53:20 +01:00
06689e3fae Allow for filtering drafts by directory
Allow for passing an argument to `drafts` which will be passed to
`grep`.

If no argument is passed, `source` will be used as the default value.
2025-08-22 12:25:04 +01:00
568ff7bc65 Remove new.md 2025-08-22 12:12:05 +01:00
a36f1b1dd8 Add drafts scripts 2025-08-22 00:42:54 +01:00
b438b27847 Copy daily emails from Tome 2025-08-21 23:34:05 +01:00
1b8441608f Move daily emails into the blog page 2025-08-21 00:28:11 +01:00
be69398931 Show post dates 2025-08-21 00:28:10 +01:00
763bbbcd3a Update post 2025-08-21 00:28:09 +01:00
a459d7d32f Fix old post 2025-08-20 23:20:08 +01:00
1fc4b6487e Move favicon.ico 2025-08-20 23:18:24 +01:00
5f1e2928d2 Remove cv.txt 2025-08-20 23:17:54 +01:00
0fe426be44 Remove daily email signup form from posts 2025-08-20 23:17:26 +01:00
3c818fb4fe Automatic Sculpin reloading with Browsersync 2025-08-20 23:17:13 +01:00
1c4506bd4b Re-add a temporary /blog page 2025-08-20 23:16:30 +01:00
a2132616d5 Add browser-sync 2025-08-20 23:15:08 +01:00
2ce6d04d2d Add PHP Thames Valley slides 2025-08-20 22:31:26 +01:00
116a65b38d Add /books to menu 2025-08-20 20:59:48 +01:00
a48cfb84c4 Add books page 2025-08-20 17:06:59 +01:00
92270ac7dd Automated commit
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-08-18 00:11:13 +01:00
c205ff34ae Automated commit
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-08-18 00:10:01 +01:00
2186aaf69c Fix deployment path 2025-08-18 00:07:27 +01:00
bedf08c833 Update heading
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-08-18 00:03:02 +01:00
3d877439d3 Add testimonial 2025-08-18 00:01:39 +01:00
8bc66e28b8 Add "Nix for PHP Developers" talk 2025-08-17 23:38:03 +01:00
7526638a3d Fix CSS 2025-08-17 23:21:42 +01:00
97ef8bde61 Remove deprecation notices 2025-08-17 15:42:05 +01:00
1dd6f82308 Add notes from zet.oliverdavies.uk 2025-08-04 01:09:00 +01:00
a59b05feb4 Add new podcast episodes 2025-08-04 00:57:53 +01:00
4324 changed files with 87435 additions and 140566 deletions

View file

@ -1,17 +0,0 @@
# Drupal editor configuration normalization
# @see http://editorconfig.org/
# This is the top-most .editorconfig file; do not search in parent directories.
root = true
# All files.
[*]
end_of_line = LF
indent_style = space
indent_size = 2
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[composer.{json,lock}]
indent_size = 4

64
.gitattributes vendored
View file

@ -1,64 +0,0 @@
# Drupal git normalization
# @see https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
# @see https://www.drupal.org/node/1542048
# Normally these settings would be done with macro attributes for improved
# readability and easier maintenance. However macros can only be defined at the
# repository root directory. Drupal avoids making any assumptions about where it
# is installed.
# Define text file attributes.
# - Treat them as text.
# - Ensure no CRLF line-endings, neither on checkout nor on checkin.
# - Detect whitespace errors.
# - Exposed by default in `git diff --color` on the CLI.
# - Validate with `git diff --check`.
# - Deny applying with `git apply --whitespace=error-all`.
# - Fix automatically with `git apply --whitespace=fix`.
*.config text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.dist text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.engine text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.html text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html
*.inc text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.install text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.lock text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.map text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.md text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.module text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.php text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.po text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.profile text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.script text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.sh text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.sql text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.svg text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.theme text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php linguist-language=php
*.twig text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.txt text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.xml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.yml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
# PHPStan's baseline uses tabs instead of spaces.
core/.phpstan-baseline.php text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tabwidth=2 diff=php linguist-language=php
# Define binary file attributes.
# - Do not treat them as text.
# - Include binary diff in patches instead of "binary files differ."
*.eot -text diff
*.exe -text diff
*.gif -text diff
*.gz -text diff
*.ico -text diff
*.jpeg -text diff
*.jpg -text diff
*.otf -text diff
*.phar -text diff
*.png -text diff
*.svgz -text diff
*.ttf -text diff
*.woff -text diff
*.woff2 -text diff

28
.gitignore vendored
View file

@ -1,9 +1,21 @@
/.editorconfig
/.gitattributes
/.pre-commit-config.yaml
/drush
/html
/recipes
/.phpunit.cache
/.phpunit.result.cache
/output_*/
/vendor/
/web
!/files
# Front-end assets.
node_modules
source/build
# ATDC pages
/source/atdc/*
# Direnv
/.direnv/
# Devenv
.devenv*
devenv.local.nix
# Pre-commit
.pre-commit-config.yaml

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "source/atdc"]
path = source/atdc
url = forgejo@ssh.oliverdavies.uk:opdavies/atdc-pages.git

View file

@ -1,3 +1 @@
/*.mp3
/.git/
/files/
*.mp3

1
.markdownlint.yaml Normal file
View file

@ -0,0 +1 @@
MD013: false

View file

@ -1,43 +0,0 @@
require("conform").setup {
formatters_by_ft = {
lua = { "stylua" },
nix = { "nixfmt" },
},
}
local cmp_nvim_lsp = require("cmp_nvim_lsp")
local capabilities = cmp_nvim_lsp.default_capabilities(vim.lsp.protocol.make_client_capabilities())
local lspconfig = require("lspconfig")
lspconfig.nixd.setup {
capabilities = capabilities,
settings = {
nixd = {
formatting = {
command = "nix fmt",
};
};
};
}
lspconfig.phpactor.setup({ capabilities = capabilities })
lspconfig.tailwindcss.setup({
capabilities = capabilities,
filetypes = { "html", "javascript", "twig" },
settings = {
init_options = {
userLanguages = {
["html.twig"] = "html",
},
},
},
})
require("lint").linters_by_ft = {
lua = { "luacheck" },
nix = { "nix" },
php = { "phpcs", "phpstan" },
}

View file

@ -3,10 +3,10 @@
PATH="${PATH}:./vendor/bin"
tmux new-window -dn scratch
tmux new-window -dn server
tmux new-window -dn tailwindcss -c "themes/opdavies"
tmux new-window -dn sculpin
tmux new-window -dn tailwind
tmux send-keys -t server "drush runserver" Enter
tmux send-keys -t tailwindcss "tailwindcss --input css/tailwind.css --output build/tailwind.css --watch" Enter
tmux send-keys -t sculpin "sculpin generate --server --watch" Enter
tmux send-keys -t tailwind "cd assets && tailwindcss --input css/tailwind.css --output ../source/build/tailwind.css --watch" Enter
nvim .

5
.yamlfmt.yaml Normal file
View file

@ -0,0 +1,5 @@
---
formatter:
include_document_start: true
retain_line_breaks_single: true
type: basic

27
README.md Normal file
View file

@ -0,0 +1,27 @@
# oliverdavies.uk
[My personal website][website], built with [Sculpin][] - a PHP-based static site generator.
It contains pages about my products, services, public speaking and training, as well as my daily email archive, podcast episodes and old blog posts from earlier versions of the website.
## Styling
The styling is done using [Tailwind CSS].
## BrowserSync
I have [BrowserSync][] installed and use it to watch for changes to files and [automatically refresh my browser][0] instead of using Sculpin's built-in development server.
## Hosting
The website is hosted on a 1GB DigitalOcean droplet alongside other static websites.
I'm using Apache as my web server so I can easily manage redirects using the `.htaccess` file within the `source` directory..
As it's a static website, no PHP or database are needed.
[0]: https://www.oliverdavies.uk/blog/sculpin-browsersync
[browsersync]: https://browsersync.io
[sculpin]: https://sculpin.io
[tailwind css]: https://tailwindcss.com
[website]: https://www.oliverdavies.uk

14
app/SculpinKernel.php Normal file
View file

@ -0,0 +1,14 @@
<?php
use Opdavies\Sculpin\Bundle\TwigMarkdownBundle\SculpinTwigMarkdownBundle;
use Sculpin\Bundle\SculpinBundle\HttpKernel\AbstractKernel;
class SculpinKernel extends AbstractKernel
{
protected function getAdditionalSculpinBundles(): array
{
return [
SculpinTwigMarkdownBundle::class,
];
}
}

View file

@ -0,0 +1,20 @@
---
sculpin_content_types:
pages:
permalink: /:basename/
podcast_episodes:
permalink: /podcast/:basename/
posts:
permalink: /blog/:basename/
presentations:
permalink: /presentations/:basename/
zets:
permalink: /zet/:basename-:title/
services:
App\Experience\TwigExtension\ExperienceTwigExtension:
tags:
- {name: twig.extension}
App\Presentation\TwigExtension\PresentationTwigExtension:
tags:
- {name: twig.extension}

354
app/config/sculpin_site.yml Normal file
View file

@ -0,0 +1,354 @@
---
name: Oliver Davies
slogan: Certified Drupal expert, Developer and Consultant
email: oliver+website@oliverdavies.uk
url: http://localhost:8000
assets:
url: '%url%'
version: 6
banner_text: ~
code:
url: https://code.oliverdavies.uk
username: opdavies
ctas:
call: |
Are you still using Drupal 7 and dont know whats involved to upgrade to Drupal 10? <a href="%site.url%/call">Book a Drupal 7 upgrade consultation call</a> or <a href="%site.url%/drupal-upgrade">an upgrade roadmap</a>.
d7eol: |
Are you stuck on Drupal 7? <a href="%site.url%/drupal-upgrade">Plan your upgrade to Drupal 10 now!</a>
module: |
If you're creating a new Drupal module, try my <a href="https://github.com/opdavies/drupal-module-template">free Drupal module template</a>.
sponsor: |
Do you want to contribute more to open source but don't have the time? <a href="%site.url%/sponsor">Sponsor me to do it for you</a>!
subscription: |
Do you need immediate access to an expert Drupal Developer? With my <a href="%site.url%/subscription">Drupal development subscription</a>, make unlimited requests for a fixed monthly price in less time than posting to a job board!
testing_course: |
Do you want to learn about automated testing in Drupal? Take my <a href="%site.url%/atdc">free 10-day email course</a> and get daily lessons straight to your inbox.
pair: |
Need help or want another pair of eyes on your code? Book a <a href="%site.url%/call">1-on-1 consulting call</a> or an <a href="%site.url%/pair">online pair programming session</a> with a 100% money-back guarantee.,
drupalorg:
url: https://www.drupal.org/u/%drupalorg.username%
username: opdavies
features:
new_css: false
github:
url: https://github.com/%github.username%
username: opdavies
mastodon:
username: opdavies
url: https://mastodon.social/@%mastodon.username%
menu_links:
- title: Home
url: /
- title: Presentations
url: /presentations
- title: Blog
url: /blog
- title: Podcast
url: /podcast
attributes:
title: The Beyond Blocks Podcast
- title: Books
url: /books
- title: Sponsor me
url: /sponsor
- title: Contact
url: 'mailto:%email%'
attributes:
title: Contact Oliver
meta:
description: |-
Oliver is an Acquia-certified Triple Drupal expert, core contributor, Developer, Consultant and multiple-time DrupalCon speaker.
testimonials:
- text: |
Oliver devised a creative and original approach to Drupal theme switching based on Tailwind and provided us with the building blocks and basic theming.
He gave several helpful mentoring sessions with our front end developer to support us to build this approach into our site.
name: Technical Director, European knowledge platform
image: ~
tags: [front]
- text: |
This course is really great and I've recommended it to my coworkers here at Palantir.net.
name: Daniel Davis-Boxleitner
title: Senior Engineer at Palantir.net
image:
url: /assets/images/recommendations/daniel-davis-boxleitner.jpg
tags: [testing, atdc]
- text: |
The course was very informative. One of the biggest pain points with Drupal testing was that there was no clear and definitive guide on setting up the php unit XML file to get functional and kernel tests working right away. Your guide was fantastic and I will definitely be using it going forward in my module development for work.
name: Frank Landry
title: ~
image:
url: /assets/images/recommendations/frank-landry.jpg
tags: [testing, atdc]
- text: |
Well done. You've created a really excellent resource here that has the potential to bring Drupal development forward a huge leap. Youve managed to simplify and share some often complex seeming issues.
name: Adam Nuttall
title: Drupal Engineer
image:
url: /assets/images/recommendations/adam-nuttall.jpg
tags: [testing, atdc]
- text: |
I'm liking your short emails. They're just the right length that isn't too distracting but I'm able to consume it in a single glance.
name: Kevin Coyle
title: Design System Engineering Consultant
url: https://www.coyledesign.co.uk
image:
url: /assets/images/recommendations/kevin-coyle.jpg
tags: [daily]
- text: |
I really love your daily posts. They are opinionated, and this gives room for thoughts, I appreciate this.
name: Boris Böhne
title: Drupal Developer
url: https://www.drupal.org/u/drubb
image:
url: /assets/images/recommendations/boris-bohne.jpg
tags: [daily]
- text: |
Following your "Automated tests" emails and they are great! Such a pleasant reading. I love how you start from the very beginning and keeping things simple, step by step.
Looking forward to more content!
name: Matthieu Scarset
title: Drupal Expert
url: https://matthieuscarset.com
image:
url: /assets/images/recommendations/matthieu-scarset.jpg
tags: [testing, atdc]
- text: |
Hi Oliver, we met briefly at the Tech Connect event in London last month. Been reading through a few of your latest posts and have found the messages valuable, especially as we spent the week learning about unit, integration and e2e testing. I have signed up to your mailing list to keep the good advice flowing!
name: Alexander Carr
title: Full Stack Software Engineer at School of Code
image:
url: /assets/images/recommendations/alexander-carr.jpg
tags: [daily]
- text: |
These emails are superb and make for very interesting reading. Thank you!
name: Adam Nuttall
title: Drupal Engineer
image:
url: /assets/images/recommendations/adam-nuttall.jpg
tags: [daily]
- text: Oliver's approach to testing is a continual reminder of his commitment to delivering high-quality, bug-free, software.
name: Mike Karthauser
title: Senior Software Engineer
image:
url: /assets/images/recommendations/mike-karthauser.jpg
tags: [daily, testing, coaching, atdc]
- text: |
I had the opportunity and good fortune to work with Oliver solving two problems that I was having on a Drupal Commerce site. I have done several Drupal sites using UberCart, but since it is deprecated, I chose to use Commerce. I had searched, posted to forums, and other normal means to find answers to my problems, to no response and to no avail.
I got a referral to Oliver and scheduled an appointment to discuss the problems on a Zoom call. After showing him via screen share where I was stumped, he offered different approaches to what I was doing, which I was fine with as long as it worked.
Once we solved the first problem, I was really elated and then focused on the second one, which was an easier fix. So in a short period of time, both problems were fixed and tested.
I found Oliver was affable and easy to work with. He has a strong work ethic and a desire to solve problems for his customers and can recommend working with him. I think one of his strengths is to find alternative solutions to problems.
name: Tom Evans
title: ~
image: ~
tags: [call]
- text: |
I am a big fan of your git approaches. I especially remember pairing with you and watching how many commands you run to solve many problems and how fast you were. It's a skill I believe not many have, particularly those who are used to working with a GUI like me, and personally I think it is quite valuable.
name: Marcos Duran
title: Senior Software Engineer
image:
url: /assets/images/recommendations/marcos-duran.jpg
tags: [git, daily, coaching]
- text: |
I like the "$ git log -S" and "$ git log --grep" commands, will definitely be using these, thanks!
name: Stephen Mulvihill
title: Solutions Architect
image:
url: /assets/images/recommendations/stephen-mulvihill.jpg
tags: [git, daily, coaching]
- text: |
Just wanted to say that your blog is amazing <3 I absolutely love it and usually share it with colleagues and some of the kids at my Code Club.
Thanks for contributing to the community with your amazing content!
name: Patty O'Callaghan
title: Tech Lead
url: https://pattyocallaghan.com
image:
url: /assets/images/recommendations/patty-ocallaghan.jpg
tags: [daily]
- text: |
I've wanted to explore testing for a while, but as a PHP developer with 10 years of Drupal experience who'd written next to no tests, I really needed guidance. Oliver's expertise in testing and TDD motivated me to seek his help.
Before our call, I'd started writing tests for my modules but needed direction, understanding the code to a degree but needing help with approach. Oliver clarified both unit and integration testing, providing solutions for my challenges, and shared his code for inspiration and help. He also gave me ideas on how to utilise contrib code to help me further.
Consulting with an expert, I gained the clarity and confidence I needed in tackling testing with structured, maintainable practices. Oliver's adaptability and tailored services make him highly recommendable.
Thanks, Oliver - I feel empowered and know exactly what approach to take now!
name: Tawny Bartlett
title: Senior Drupal Developer
url: https://www.playingwithpixels.co.uk
image:
url: /assets/images/recommendations/tawny.jpg
tags: [testing, coaching, call, atdc]
- text: |
I've worked with Oliver for a number of years on B2C and B2B web projects and he has always demonstrated himself to be an expert in his field.
As an insurance provider, some of our products and services don't naturally fit within a traditional ecommerce journey - but Oliver has always been able to come up with innovative ways to leverage core Drupal functionality and develop custom modules to meet our needs.
Friendly, flexible and diligent - I wouldn't hesitate to recommend Oliver to anyone looking for a Drupal developer to progress their next project.
name: Joe Howell
title: Director, Bastion Insurance
url: https://www.bastioninsurance.co.uk
image:
url: /assets/images/recommendations/joe-howell.jpg
tags: [front, subscription, coaching]
- text: |
We use Oliver for maintaining a couple of Drupal sites for which we no longer have the skills ourselves. We became aware of Oliver through his work in the Drupal community, and about a year ago we approached him to help us with the deep dive aspects of maintaining and developing Drupal sites. He's been really helpful and very responsive. Much appreciated!
name: Jon Hallett
title: Senior Systems Administrator at the University of Bristol
url: https://bristol.ac.uk
image:
url: /assets/images/recommendations/jon-hallett.jpeg
tags: [front, subscription]
- text: |
For over a decade we have worked with Oliver on a number of different projects. Initially our collaboration consisted of web maintenance and troubleshooting but we soon tapped Oliver to design, build and maintain a custom awards site which includes both submission and judging functionality. Oliver has deep and wide-ranging skills and I would certainly recommend his services!
name: Michael Itkoff
title: Cofounder
url: https://www.daylightbooks.org
image:
url: /assets/images/recommendations/michael-itkoff.jpg
tags: [front, subscription]
- text: |
Working with Oliver on the Seren website has been easy and beneficial.
As well as providing general maintenance support, he built a new Drupal module which integrated with our partners Glassboxx so that we could sell ebooks directly from our website. Oliver worked closely with the team at Glassboxx to create the integration which needed to communicate with the Glassboxx app so that users could download their purchases. He was able to resolve issues which came up along the way in order to create a functioning module which we now use on our site.
Oliver has extensive knowledge of Drupal and his familiarity with the Seren site meant he was able to fix problems quickly and efficiently as they arose.
He is reliable and has always been willing to discuss new ideas for how the site could function.
We would recommend working with him for his invaluable knowledge and ability to find solutions to problems at short notice. It has been a pleasure to work with him over the years.
name: Mick Felton
title: Publisher at Poetry Wales Press Ltd (Seren Books)
url: https://www.serenbooks.com
image:
url: /assets/images/recommendations/mick-felton.jpg
tags: [front, subscription, coaching]
- text: |
Oliver is a pleasure to work with, and I would engage him again without hesitation. He communicates regularly, ensures that he meets requirements, and suggests improvements to the potential solutions to the brief.
name: Duncan Davidson
title: Director at Rohallion
url: https://rohallion.agency
image:
url: /assets/images/recommendations/duncan.jpeg
tags: [front, subscription, coaching]
- text: |
We have only worked together for a short while but I can see Oliver is a Drupal expert.
His technical knowledge means we have been able to make improvements to the sites we manage quickly and efficiently.
If we have complex issues to contend with in the future I feel confident he will be able to deal with them.
name: Anonymous
title: Marketing Strategist
tags: [front, subscription]
- text: |
A fantastic and highly knowledgeable Drupal Developer. Oliver saved a struggling Drupal project with his wealth of Drupal experience.
name: Adam Cuddihy
title: Web Development Manager
url: ~
image:
url: /assets/images/recommendations/adam.jpeg
tags: [front, subscription]
- text: |
I had the pleasure of working with Oliver whilst building the first version of our drupal based intranet. His knowledge of Drupal and the wider infrastructure required to run a site was really invaluable.
At the time, we were very new to Drupal, so it gave us a great platform to learn from and expand our own knowledge.
He's the only external contractor that we've kept in touch with over the years, which goes to show how much we valued his input.
name: Huw Davies
title: Web Dev Manager / DevOps / Team Manager at Admiral Group Plc
url: https://admiral.com
image:
url: /assets/images/recommendations/huw.jpeg
tags: [front, subscription]
- text: |
Oliver really knows his stuff. Whether you are just starting out or looking to take your knowledge to the next level, his patient and clear way of explaining will help get you there.
name: Scott Euser
title: Head of Web Development
url: ~
image:
url: /assets/images/recommendations/scott-euser.jpg
tags: [testing, coaching]
- text: |
I have had the pleasure of working with Oliver on several projects at Microserve. He is a natural innovator and a great mentor who inspires others to explore new technologies and approaches. He is a highly knowledgeable professional with a passion for all things Drupal and the tenacity required to get the job done well.
name: Alan Hatch
title: Senior Drupal Developer at Microserve
url: ~
image:
url: /assets/images/recommendations/alan.jpeg
tags: [coaching]
- text: |
Oliver has been an outstanding contributor to the Drupal Association team. He is a talented developer who writes great code and applies his curiosity and love of learning to every project. He is also a fantastic team member, who gives to the team as much as he gets.
Oliver is the embodiment of everything good about the Drupal community.
name: Holly Ross
title: Executive Director at the Drupal Association
url: https://www.drupal.org/association
image:
url: /assets/images/recommendations/holly-ross.png
tags: [front, subscription]
- text: |
Oliver is a skilled Drupal developer with a passion for the Drupal community. As his direct supervisor, I was able to watch Oliver grow with the Drupal Association and contribute an amazing amount of effort and integrity to all of his work.
Everything we have thrown at Oliver, he has approached with an open and flexible mind that has allowed him to work on a wide range of projects and features for Drupal products.
name: Josh Mitchell
title: CTO at Drupal Association
url: https://joshuami.com
image:
url: /assets/images/recommendations/josh-mitchell.png
tags: [front, subscription]
- text: |
Oliver was great to work with. He has expert knowledge with Drupal and delivered exactly what we were looking for on time. He's understanding, friendly and easy to get along with. I would enjoy working with him again in the future.
name: Brian Hartwell
title: Interactive Creative Director
url: ~
image: ~
tags: [front, subscription]
- text: |
Oliver was fantastic to work with - pro-active and highly responsive, he worked well remotely and as part of a project team. His understanding of the project requirement(s) and ability to translate it into working code was essential and he delivered.
name: Brian Healy
title: Director of Business Development at Tincan
url: ~
image:
url: /assets/images/recommendations/brian-healy.png
tags: [front, subscription]
- text: |
Oliver is an amazing colleague, he's professional, full of knowledge and I could not recommend him more.
name: Chris Jarvis
title: Developer at Microserve
url: ~
image:
url: /assets/images/recommendations/chris-jarvis.jpg
- text: |
Oliver is seasoned Drupal and all round highly skilled and experienced web developer. I have worked with Oliver on an important project where he was reliable, prompt and ensured strict client deadline delivery and confidentiality at all times.
name: Daniel Easterbrook
title: Digital Strategy Consultant
tags: [front, subscription]
prose_classes: |
prose prose-p:text-black prose-a:font-light prose-a:text-blue-primary prose-p:text-lg prose-blockquote:border-blue-primary dark:marker:text-white prose-li:my-1 prose-li:text-lg prose-figcaption:text-white prose-li:text-black marker:text-black dark:prose-p:text-white dark:prose-invert dark:prose-a:text-blue-400 dark:prose-blockquote:border-blue-400 dark:prose-li:text-white hover:prose-a:no-underline prose-h2:text-xl prose-code:font-normal prose-h2:mb-4 prose-ul:my-3 dark:prose-hr:border-grey-400 prose-code:before:content-[''] prose-code:after:content-['']
transistor:
feed:
url: https://feeds.transistor.fm/beyond-blocks
share:
url: https://share.transistor.fm/e
youtube:
channel:
slug: opdavies
url: https://www.youtube.com/@%youtube.channel.slug%

View file

@ -0,0 +1,8 @@
---
imports:
- sculpin_site.yml
features:
new_css: false
url: https://www.oliverdavies.uk

11
assets/css/tailwind.css Normal file
View file

@ -0,0 +1,11 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
@font-face {
font-family: Roboto Condensed;
font-weight: 300 400 500 700;
src: url('../assets/fonts/RobotoCondensed-VariableFont_wght.ttf') format('truetype');
}
}

View file

@ -4,9 +4,10 @@ import formsPlugin from '@tailwindcss/forms';
import typographyPlugin from "@tailwindcss/typography";
export default {
// content: [
// "./templates/**/*.html.twig",
// ],
content: [
"../app/config/**/*.yml",
"../source/**/*.{md,twig}",
],
theme: {
colors: {
black: "#000",
@ -31,14 +32,6 @@ export default {
"sans-serif",
],
},
typography: ({ theme }) => ({
DEFAULT: {
css: {
// '--tw-prose-pre-bg': theme('colors.red.200'),
},
},
}),
},
},
plugins: [formsPlugin, typographyPlugin],

5
build Executable file
View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -uexo pipefail
vendor/bin/sculpin generate --watch --server "$@"

View file

@ -1,147 +1,28 @@
{
"name": "drupal/recommended-project",
"description": "Project template for Drupal projects with a relocated document root",
"type": "project",
"license": "GPL-2.0-or-later",
"homepage": "https://www.drupal.org/project/drupal",
"support": {
"docs": "https://www.drupal.org/docs/user_guide/en/index.html",
"chat": "https://www.drupal.org/node/314178"
},
"repositories": [
{
"type": "composer",
"url": "https://packages.drupal.org/8"
}
],
"require": {
"composer/installers": "^2.3",
"cweagans/composer-patches": "^1.7",
"drupal/auto_entitylabel": "^3.4",
"drupal/bpmn_io": "^2.0.6",
"drupal/coffee": "^2",
"drupal/core": "^10.4 || ^11",
"drupal/core-composer-scaffold": "^11.1",
"drupal/core-recipe-unpack": "^11.2",
"drupal/core-recommended": "^11.1",
"drupal/dashboard": "^2",
"drupal/eca": "^2.1.4",
"drupal/field_group": "^3.6",
"drupal/focal_point": "^2.1",
"drupal/gin": "^4.0.6 || ^5",
"drupal/markdown_easy": "^1.0",
"drupal/metatag": "^2",
"drupal/paragraphs": "^1.19",
"drupal/pathauto": "^1.13",
"drupal/podcast": "^1.10",
"drupal/redirect": "^1.11",
"drupal/rel_to_abs": "^2.2",
"drupal/robotstxt": "^1.6",
"drupal/sam": "^1.2",
"drupal/seo_checklist": "^5.2.1",
"drupal/simple_sitemap": "^4.2.2",
"drupal/sitemap": "^2",
"drupal/tagify": "^1.2",
"drupal/token_or": "^2.2",
"drupal/tome": "^1.13",
"drupal/twig_tweak": "^3.4",
"drupal/weight": "^3.6",
"drupal/yoast_seo": "^2.1",
"drush/drush": "^13.5",
"mglaman/composer-drupal-lenient": "^1.0"
"opdavies/sculpin-twig-markdown-bundle": "^0.2.0",
"sculpin/sculpin": "^3.2"
},
"conflict": {
"drupal/drupal": "*"
},
"minimum-stability": "stable",
"prefer-stable": true,
"config": {
"allow-plugins": {
"composer/installers": true,
"cweagans/composer-patches": true,
"dealerdirect/phpcodesniffer-composer-installer": true,
"drupal/core-composer-scaffold": true,
"drupal/core-recipe-unpack": true,
"mglaman/composer-drupal-lenient": true,
"php-http/discovery": true,
"phpstan/extension-installer": true,
"tbachert/spi": true
},
"sort-packages": true
},
"extra": {
"drupal-scaffold": {
"locations": {
"web-root": "web/"
}
},
"installer-paths": {
"web/core": [
"type:drupal-core"
],
"web/libraries/{$name}": [
"type:drupal-library"
],
"web/modules/contrib/{$name}": [
"type:drupal-module"
],
"web/profiles/contrib/{$name}": [
"type:drupal-profile"
],
"web/themes/contrib/{$name}": [
"type:drupal-theme"
],
"drush/Commands/contrib/{$name}": [
"type:drupal-drush"
],
"web/modules/custom/{$name}": [
"type:drupal-custom-module"
],
"web/profiles/custom/{$name}": [
"type:drupal-custom-profile"
],
"web/themes/custom/{$name}": [
"type:drupal-custom-theme"
],
"recipes/{$name}": [
"type:drupal-recipe"
]
},
"drupal-lenient": {
"allowed-list": ["drupal/rel_to_abs"]
},
"patches": {
"drupal/rel_to_abs": {
"Automated Drupal 11 compatibility fixes for rel_to_abs": "https://www.drupal.org/files/issues/2024-03-24/rel_to_abs.2.2.5.rector.patch"
}
"sculpin/sculpin-theme-composer-plugin": true,
"phpstan/extension-installer": true
}
},
"scripts": {
"export": "drush tome:export --yes",
"import": "drush tome:import",
"generate": "drush tome:static --uri https://www.oliverdavies.uk",
"post-install-cmd": [
"@symlink"
],
"post-update-cmd": [
"@symlink"
],
"symlink": "./tools/scripts/symlink.sh",
"test": [
"composer validate --strict",
"phpstan analyze",
"phpunit --testdox"
]
},
"require-dev": {
"drupal/core-dev": "^11.1",
"phpat/phpat": "^0.10.20",
"phpstan/extension-installer": "^1.4",
"weitzman/drupal-test-traits": "^2.5"
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"Tools\\": "tools/"
"Tests\\": "tests/"
}
},
"require-dev": {
"phpunit/phpunit": "^12.1",
"phpstan/phpstan": "^2.1",
"phpstan/phpstan-strict-rules": "^2.0",
"phpstan/extension-installer": "^1.4"
}
}

13927
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,24 +0,0 @@
# Deny all requests from Apache 2.4+.
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
# Deny all requests from Apache 2.0-2.2.
<IfModule !mod_authz_core.c>
Deny from all
</IfModule>
# Turn off all options we don't need.
Options -Indexes -ExecCGI -Includes -MultiViews
# Set the catch-all handler to prevent scripts from being executed.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
<Files *>
# Override the handler again if we're run later in the evaluation list.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
</Files>
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php.c>
php_flag engine off
</IfModule>

View file

@ -1,5 +0,0 @@
_core:
default_config_hash: 0G5pZBcxbg8ONYzNLd1RJIsvuFFewm9htnS4I-ABKJ8
max_age: 86400
cron_interval: 21600
limit: 10

View file

@ -1,10 +0,0 @@
status: 1
pattern: '[node:field_topic] with [opd-podcast:guest-names]'
escape: false
preserve_titles: false
save: true
chunk: 50
dependencies:
config:
- node.type.podcast_episode
new_content_behavior: 0

View file

@ -1,3 +0,0 @@
_core:
default_config_hash: fUksROt4FfkAU9BV4hV2XvhTBSS2nTNrZS4U7S-tKrs
interval: 10800

View file

@ -1,22 +0,0 @@
uuid: f33c9603-b126-4b0d-b393-4aed1982afed
langcode: en
status: true
dependencies:
module:
- system
theme:
- claro
_core:
default_config_hash: NjcxOBrPOiK5-38t56DwFBDVY4yer7YSlbRWXFuHe7A
id: claro_breadcrumbs
theme: claro
region: breadcrumb
weight: 0
provider: null
plugin: system_breadcrumb_block
settings:
id: system_breadcrumb_block
label: Breadcrumbs
label_display: '0'
provider: system
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: 45e7f781-3819-4f7f-bf4a-8a5384bede34
langcode: en
status: true
dependencies:
module:
- system
theme:
- claro
_core:
default_config_hash: a0Yyx1GeyKarZ4T_yXQBR_ZFKnXiFLtxAb6gWLd8nr0
id: claro_content
theme: claro
region: content
weight: 0
provider: null
plugin: system_main_block
settings:
id: system_main_block
label: 'Main page content'
label_display: '0'
provider: system
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: 9f10450d-ff77-41fc-9166-c77c62eda335
langcode: en
status: true
dependencies:
module:
- help
theme:
- claro
_core:
default_config_hash: jccFSSVqV0WCDb6NtML1VWAWTtDbZ-zn5YgTRMgMrIM
id: claro_help
theme: claro
region: help
weight: 0
provider: null
plugin: help_block
settings:
id: help_block
label: Help
label_display: '0'
provider: help
visibility: { }

View file

@ -1,32 +0,0 @@
uuid: b4124fd4-6739-424e-b96d-3748cc47675f
langcode: en
status: true
dependencies:
module:
- search
- system
theme:
- claro
enforced:
config:
- search.page.help_search
_core:
default_config_hash: 2ToeZLvlHKTeFY74gpgu1PejLoFyCECLO_gw6rAZwqw
id: claro_help_search
theme: claro
region: help
weight: -4
provider: null
plugin: search_form_block
settings:
id: search_form_block
label: 'Search help'
label_display: visible
provider: search
page_id: help_search
visibility:
request_path:
id: request_path
negate: false
context_mapping: { }
pages: /admin/help

View file

@ -1,20 +0,0 @@
uuid: 557f3e9f-95b2-4ecf-ad25-0330e0786f8d
langcode: en
status: true
dependencies:
theme:
- claro
_core:
default_config_hash: CdXfDmRgAvms7EQovxxWPdYi0GitxeRbVtScYK16ZH0
id: claro_local_actions
theme: claro
region: content
weight: -10
provider: null
plugin: local_actions_block
settings:
id: local_actions_block
label: 'Primary admin actions'
label_display: '0'
provider: core
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: 2d0aa6ef-e0de-44b0-b474-5f5510953184
langcode: en
status: true
dependencies:
module:
- system
theme:
- claro
_core:
default_config_hash: '-Ac3ISpIT0PQ-whzD7_dw0SdKi6dAbRFNWdSjOiVDqg'
id: claro_messages
theme: claro
region: highlighted
weight: 0
provider: null
plugin: system_messages_block
settings:
id: system_messages_block
label: 'Status messages'
label_display: '0'
provider: system
visibility: { }

View file

@ -1,20 +0,0 @@
uuid: 33d29028-f85c-4011-857e-19fd24d81231
langcode: en
status: true
dependencies:
theme:
- claro
_core:
default_config_hash: fNwDdW063tk_ktzSWzZVeQS9wzvLooVO280BQ9WrsIs
id: claro_page_title
theme: claro
region: header
weight: -30
provider: null
plugin: page_title_block
settings:
id: page_title_block
label: 'Page title'
label_display: '0'
provider: core
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: 0225e9a4-bf40-4df6-aafc-4417a4b81a81
langcode: en
status: true
dependencies:
theme:
- claro
_core:
default_config_hash: ACjBZI5shAMiiUpsz-inLYVXDqNNXRnSzAWV3kV_8Hw
id: claro_primary_local_tasks
theme: claro
region: header
weight: 0
provider: null
plugin: local_tasks_block
settings:
id: local_tasks_block
label: 'Primary tabs'
label_display: '0'
provider: core
primary: true
secondary: false
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: 888318da-55e2-4447-abb6-c08ceee9f03d
langcode: en
status: true
dependencies:
theme:
- claro
_core:
default_config_hash: 2L0geP-ixCbCkEpW6BVF6H7vDUZN4ea07_Y9CociQm4
id: claro_secondary_local_tasks
theme: claro
region: pre_content
weight: 0
provider: null
plugin: local_tasks_block
settings:
id: local_tasks_block
label: 'Secondary tabs'
label_display: '0'
provider: core
primary: false
secondary: true
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: f615a68c-fdb9-40ab-bc79-f70c2a715eb3
langcode: en
status: true
dependencies:
module:
- system
theme:
- gin
_core:
default_config_hash: y9X3xgCsO59pQyzNLzY1D3SDJJxCHILLWkpPnmuTJ2E
id: gin_breadcrumbs
theme: gin
region: breadcrumb
weight: 0
provider: null
plugin: system_breadcrumb_block
settings:
id: system_breadcrumb_block
label: Breadcrumbs
label_display: '0'
provider: system
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: fbac89f2-160b-436c-99e6-48e2af3fa444
langcode: en
status: true
dependencies:
module:
- system
theme:
- gin
_core:
default_config_hash: erQSEZF2XUjNmgTl0uNRBzmg18ZGXwUcw2FhApoeuHk
id: gin_content
theme: gin
region: content
weight: -4
provider: null
plugin: system_main_block
settings:
id: system_main_block
label: 'Main page content'
label_display: '0'
provider: system
visibility: { }

View file

@ -1,20 +0,0 @@
uuid: 19f0e955-fc87-41af-8397-4eca8c33fd04
langcode: en
status: true
dependencies:
theme:
- gin
_core:
default_config_hash: OQ9aJ-4qVwK1x00o9EOYK4eFDjQr_HLpbPiJaPSVZiQ
id: gin_local_actions
theme: gin
region: content
weight: -10
provider: null
plugin: local_actions_block
settings:
id: local_actions_block
label: 'Primary admin actions'
label_display: '0'
provider: core
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: 10de17a1-3c2c-4ef9-8f7d-57062553d495
langcode: en
status: true
dependencies:
module:
- system
theme:
- gin
_core:
default_config_hash: BZ5tpW7H8X4PVGRm3MImTIHd2tN0eF7zOtp4SpRYUA0
id: gin_messages
theme: gin
region: highlighted
weight: -5
provider: null
plugin: system_messages_block
settings:
id: system_messages_block
label: 'Status messages'
label_display: '0'
provider: system
visibility: { }

View file

@ -1,20 +0,0 @@
uuid: 19321262-00d6-479a-81e4-2711a28a4737
langcode: en
status: true
dependencies:
theme:
- gin
_core:
default_config_hash: 6aOgWsNTXjqrDm98TXSAjP6qd2nCijD1xw45MrnbK-Y
id: gin_page_title
theme: gin
region: content
weight: -5
provider: null
plugin: page_title_block
settings:
id: page_title_block
label: 'Page title'
label_display: '0'
provider: core
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: f27b72ab-8a29-45a8-b39e-4bdeb49d73b5
langcode: en
status: true
dependencies:
theme:
- gin
_core:
default_config_hash: nGE3EoPQQaQCuqTUtZgw0-KIzmrqdKDzdNQf2JyPUt4
id: gin_primary_local_tasks
theme: gin
region: highlighted
weight: -4
provider: null
plugin: local_tasks_block
settings:
id: local_tasks_block
label: 'Primary tabs'
label_display: '0'
provider: core
primary: true
secondary: false
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: fa87b341-c9b2-4beb-81f3-5786ba3d7dc5
langcode: en
status: true
dependencies:
theme:
- gin
_core:
default_config_hash: ydSxdq7R66I8UMC460rOzlfzvlUL4VRbdwc6z9DWaUI
id: gin_secondary_local_tasks
theme: gin
region: highlighted
weight: -2
provider: null
plugin: local_tasks_block
settings:
id: local_tasks_block
label: 'Secondary tabs'
label_display: '0'
provider: core
primary: false
secondary: true
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: e331eb13-5e3c-498e-a25d-a7a6f5dd6f1b
langcode: en
status: true
dependencies:
module:
- system
theme:
- opdavies
_core:
default_config_hash: erQSEZF2XUjNmgTl0uNRBzmg18ZGXwUcw2FhApoeuHk
id: opdavies_content
theme: opdavies
region: content
weight: -4
provider: null
plugin: system_main_block
settings:
id: system_main_block
label: 'Main page content'
label_display: '0'
provider: system
visibility: { }

View file

@ -1,25 +0,0 @@
uuid: 99c8b757-57b6-4c44-81ac-46063b0bacac
langcode: en
status: true
dependencies:
config:
- system.menu.main
module:
- system
theme:
- opdavies
id: opdavies_mainnavigation
theme: opdavies
region: footer
weight: 0
provider: null
plugin: 'system_menu_block:main'
settings:
id: 'system_menu_block:main'
label: 'Main navigation'
label_display: '0'
provider: system
level: 1
depth: 0
expand_all_items: false
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: dc18abda-479d-48fd-aab8-9527f4bf7b6b
langcode: en
status: true
dependencies:
module:
- system
theme:
- opdavies
_core:
default_config_hash: BZ5tpW7H8X4PVGRm3MImTIHd2tN0eF7zOtp4SpRYUA0
id: opdavies_messages
theme: opdavies
region: highlighted
weight: -5
provider: null
plugin: system_messages_block
settings:
id: system_messages_block
label: 'Status messages'
label_display: '0'
provider: system
visibility: { }

View file

@ -1,20 +0,0 @@
uuid: 006f6848-b783-4fe2-99d2-14c1c2cf5a48
langcode: en
status: true
dependencies:
theme:
- opdavies
_core:
default_config_hash: 6aOgWsNTXjqrDm98TXSAjP6qd2nCijD1xw45MrnbK-Y
id: opdavies_page_title
theme: opdavies
region: content
weight: -5
provider: null
plugin: page_title_block
settings:
id: page_title_block
label: 'Page title'
label_display: '0'
provider: core
visibility: { }

View file

@ -1,20 +0,0 @@
uuid: c7aad9c5-effd-4d91-8407-f1a284f40023
langcode: en
status: true
dependencies:
theme:
- opdavies
_core:
default_config_hash: Q9_2whdOj1YIomfvsIfopROW4FT_X5pY0DjdOiOaQ5U
id: opdavies_primary_admin_actions
theme: opdavies
region: highlighted
weight: -5
provider: null
plugin: local_actions_block
settings:
id: local_actions_block
label: 'Primary admin actions'
label_display: '0'
provider: core
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: 90c299c7-fe36-4c33-be1e-bf4cc7bac500
langcode: en
status: true
dependencies:
theme:
- opdavies
_core:
default_config_hash: nGE3EoPQQaQCuqTUtZgw0-KIzmrqdKDzdNQf2JyPUt4
id: opdavies_primary_local_tasks
theme: opdavies
region: highlighted
weight: -4
provider: null
plugin: local_tasks_block
settings:
id: local_tasks_block
label: 'Primary tabs'
label_display: '0'
provider: core
primary: true
secondary: false
visibility: { }

View file

@ -1,22 +0,0 @@
uuid: c98156cb-27a4-4be4-8e73-78610a383330
langcode: en
status: true
dependencies:
theme:
- opdavies
_core:
default_config_hash: ydSxdq7R66I8UMC460rOzlfzvlUL4VRbdwc6z9DWaUI
id: opdavies_secondary_local_tasks
theme: opdavies
region: highlighted
weight: -2
provider: null
plugin: local_tasks_block
settings:
id: local_tasks_block
label: 'Secondary tabs'
label_display: '0'
provider: core
primary: false
secondary: true
visibility: { }

View file

@ -1,10 +0,0 @@
uuid: 2646e684-c917-4dd0-b502-1a73b9c10131
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: pQP5iQy4SdhAMVcjDUncCfkJmTofnHVtXrsMzx4k6Yk
id: basic
label: 'Basic block'
revision: false
description: 'A basic block contains a title and a body.'

View file

@ -1,3 +0,0 @@
third_party_settings:
shortcut:
module_link: true

View file

@ -1,3 +0,0 @@
coffee_menus:
admin: admin
max_results: 7

View file

@ -1,3 +0,0 @@
_core:
default_config_hash: YNUW2Ij5uE7a4oaXp3i_2lvaFdYM1zNKPPfnEjB0jEc
log_ip_addresses: false

View file

@ -1,10 +0,0 @@
uuid: 7d683aeb-fc1a-48fd-8104-48c03dabd9b1
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: bqZsN31T2n0UjcbyCpOPi9D2iO0sAOHR7FnEs9qMvaA
id: comment
label: 'Default comments'
target_entity_type_id: node
description: 'Allows commenting on content'

View file

@ -1,14 +0,0 @@
uuid: af7d7cf1-4eb6-42b1-9a17-c99f6b9a76f6
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: vymHlgJy26BuI5GGj9-IXjwR3dRC5C0tij4BpWJnoqw
id: feedback
label: 'Website feedback'
recipients:
- admin@example.com
reply: ''
weight: 0
message: 'Your message has been sent.'
redirect: ''

View file

@ -1,13 +0,0 @@
uuid: 996094c6-a0b8-4130-8858-6dfd556c2c9e
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: jonvgt3CkUM2eMLTFwWfHileWWDC4YtXCuIlCahTk_I
id: personal
label: 'Personal contact form'
recipients: { }
reply: ''
weight: 0
message: 'Your message has been sent.'
redirect: ''

View file

@ -1,7 +0,0 @@
_core:
default_config_hash: U69DBeuvXuNVOC15rVNaBjDPK2fWFbo9v4takdYSSO8
default_form: feedback
flood:
limit: 5
interval: 3600
user_default_enabled: true

View file

@ -1,22 +0,0 @@
uuid: 5ec4728f-20c6-4a8c-aa84-a8fc79667a66
langcode: en
status: true
dependencies:
config:
- node.type.daily_email
id: node.daily_email.promote
field_name: promote
entity_type: node
bundle: daily_email
label: 'Promoted to front page'
description: ''
required: false
translatable: true
default_value:
-
value: 0
default_value_callback: ''
settings:
on_label: 'On'
off_label: 'Off'
field_type: boolean

View file

@ -1,22 +0,0 @@
uuid: 125295f6-32ba-473d-a114-64b2f30a74a2
langcode: en
status: true
dependencies:
config:
- node.type.daily_email_cta
id: node.daily_email_cta.promote
field_name: promote
entity_type: node
bundle: daily_email_cta
label: 'Promoted to front page'
description: ''
required: false
translatable: true
default_value:
-
value: 0
default_value_callback: ''
settings:
on_label: 'On'
off_label: 'Off'
field_type: boolean

View file

@ -1,24 +0,0 @@
uuid: b65dbe93-851c-4315-b74b-03130d12f796
langcode: en
status: true
dependencies:
config:
- node.type.page
_core:
default_config_hash: fPUEnm4T5zfZRr3ttDUqq7yCDd2uW3clWD-pvos4tlQ
id: node.page.promote
field_name: promote
entity_type: node
bundle: page
label: 'Promoted to front page'
description: ''
required: false
translatable: false
default_value:
-
value: 0
default_value_callback: ''
settings:
on_label: 'On'
off_label: 'Off'
field_type: boolean

View file

@ -1,22 +0,0 @@
uuid: da2b4a0c-5fc1-4003-9a41-e6e598e3e2bf
langcode: en
status: true
dependencies:
config:
- node.type.podcast_episode
id: node.podcast_episode.promote
field_name: promote
entity_type: node
bundle: podcast_episode
label: 'Promoted to front page'
description: ''
required: false
translatable: true
default_value:
-
value: 0
default_value_callback: ''
settings:
on_label: 'On'
off_label: 'Off'
field_type: boolean

View file

@ -1,22 +0,0 @@
uuid: 51817376-775f-47f8-8b17-12f115480252
langcode: en
status: true
dependencies:
config:
- node.type.presentation
id: node.presentation.promote
field_name: promote
entity_type: node
bundle: presentation
label: 'Promoted to front page'
description: ''
required: false
translatable: true
default_value:
-
value: 0
default_value_callback: ''
settings:
on_label: 'On'
off_label: 'Off'
field_type: boolean

View file

@ -1,22 +0,0 @@
uuid: 592e2538-47ff-4ab9-a213-d0657f975bae
langcode: en
status: true
dependencies:
config:
- node.type.testimonial
id: node.testimonial.promote
field_name: promote
entity_type: node
bundle: testimonial
label: 'Promoted to front page'
description: ''
required: false
translatable: true
default_value:
-
value: 0
default_value_callback: ''
settings:
on_label: 'On'
off_label: 'Off'
field_type: boolean

View file

@ -1,18 +0,0 @@
uuid: bfc7affd-f035-4412-ac31-1bf84d11fc52
langcode: en
status: true
dependencies:
config:
- node.type.testimonial
id: node.testimonial.title
field_name: title
entity_type: node
bundle: testimonial
label: Name
description: ''
required: true
translatable: true
default_value: { }
default_value_callback: ''
settings: { }
field_type: string

View file

@ -1,10 +0,0 @@
uuid: e22481d7-c05e-4fff-bdea-0c04367236c6
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: iIBLu1j9n6Oo5PW-wpu5gdyNs9Kvv4LMRqtQUdJjRz8
id: fallback
label: 'Fallback date format'
locked: true
pattern: 'D, j M Y - H:i'

View file

@ -1,10 +0,0 @@
uuid: b8c42d04-2533-4901-8e99-808bb231964a
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: EOQltUQPmgc6UQ2rcJ4Xi_leCEJj5ui0TR-12duS-Tk
id: html_date
label: 'HTML Date'
locked: true
pattern: Y-m-d

View file

@ -1,10 +0,0 @@
uuid: 08bfe549-b9b8-492d-8b46-93412f1a46d3
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: jxfClwZIRXIdcvMrE--WkcZxDGUVoOIE3Sm2NRZlFuE
id: html_datetime
label: 'HTML Datetime'
locked: true
pattern: 'Y-m-d\TH:i:sO'

View file

@ -1,10 +0,0 @@
uuid: f8940adf-2999-46bf-a691-340b7b83d817
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: Z7KuCUwM_WdTNvLcoltuX3_8d-s-8FZkTN6KgNwF0eM
id: html_month
label: 'HTML Month'
locked: true
pattern: Y-m

View file

@ -1,10 +0,0 @@
uuid: 35cffa48-12a2-49c7-90d2-9eb2a681d9a1
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: M7yqicYkU36hRy5p9drAaGBBihhUD1OyujFrAaQ93ZE
id: html_time
label: 'HTML Time'
locked: true
pattern: 'H:i:s'

View file

@ -1,10 +0,0 @@
uuid: a8f81240-b69c-4a59-925e-85f4f781701f
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: wKD4WsoV_wFgv2vgI4mcAAFSIzrye17ykzdwrnApkfY
id: html_week
label: 'HTML Week'
locked: true
pattern: Y-\WW

View file

@ -1,10 +0,0 @@
uuid: afbd3e79-d08b-49be-99a3-af33a8813fea
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: OjekiQuX9RbVQ2_8jOHBL94RgYLePqX7wpfNGgcQzrk
id: html_year
label: 'HTML Year'
locked: true
pattern: 'Y'

View file

@ -1,10 +0,0 @@
uuid: a78e6d59-8184-47cf-adc0-96b2ebcf87e1
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: 5VpawMrKPEPCkoO4YpPa0TDFO2dgiIHfTziJtwlmUxc
id: html_yearless_date
label: 'HTML Yearless date'
locked: true
pattern: m-d

View file

@ -1,10 +0,0 @@
uuid: 79bbcadb-d88e-4828-961f-7ac7462dc99c
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: 5B4_r5Vd0_9UaJwtAC5yFCm9-k8NNvp1xiQNhFFkknU
id: long
label: 'Default long date'
locked: false
pattern: 'l, j F Y - H:i'

View file

@ -1,10 +0,0 @@
uuid: 224614a9-beee-4410-81a1-4fb5a37e4ecb
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: q7pDV2d9qFh1IVqvymOxUUYGSziZDeg961wURC0cSLs
id: medium
label: 'Default medium date'
locked: false
pattern: 'D, j M Y - H:i'

View file

@ -1,10 +0,0 @@
uuid: 58a02b53-b131-4541-b9c2-dbda35fdd828
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: SAeixlV7Djy_Ggv_1P95TiqD4KUihA5icvU521tA84Y
id: short
label: 'Default short date'
locked: false
pattern: 'F jS, Y'

View file

@ -1,42 +0,0 @@
uuid: effde481-0cf5-4124-b89e-34ce15872be5
langcode: en
status: true
dependencies:
config:
- block_content.type.basic
- field.field.block_content.basic.body
- field.field.block_content.basic.field_text_alignment
module:
- text
_core:
default_config_hash: jAps3FCxvKecABS_tgExbhCZrBLQB3bNPWw18WjE3ss
id: block_content.basic.default
targetEntityType: block_content
bundle: basic
mode: default
content:
body:
type: text_textarea_with_summary
weight: -4
region: content
settings:
rows: 9
summary_rows: 3
placeholder: ''
show_summary: false
third_party_settings: { }
field_text_alignment:
type: options_select
weight: 26
region: content
settings: { }
third_party_settings: { }
info:
type: string_textfield
weight: -5
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden: { }

View file

@ -1,36 +0,0 @@
uuid: 93e5cd61-e9b0-4f7d-a0fc-8e80c61fb0fa
langcode: en
status: true
dependencies:
config:
- comment.type.comment
- field.field.comment.comment.comment_body
module:
- text
_core:
default_config_hash: I0Pa0aQvT_jawlPo9oz4FE3h_ickc55dYKTPl6gILes
id: comment.comment.default
targetEntityType: comment
bundle: comment
mode: default
content:
author:
weight: -2
region: content
comment_body:
type: text_textarea
weight: 11
region: content
settings:
rows: 5
placeholder: ''
third_party_settings: { }
subject:
type: string_textfield
weight: 10
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden: { }

View file

@ -1,57 +0,0 @@
uuid: 8cda3aaa-76e2-4500-9232-e3abd804c440
langcode: en
status: true
dependencies:
config:
- field.field.media.image.field_media_image
- image.style.thumbnail
- media.type.image
module:
- image
- path
_core:
default_config_hash: N2Imq6kLhAPzzFt_VZQCkWItt-UfqPOkcQlyC-3yTgM
id: media.image.default
targetEntityType: media
bundle: image
mode: default
content:
created:
type: datetime_timestamp
weight: 10
region: content
settings: { }
third_party_settings: { }
field_media_image:
type: image_image
weight: 0
region: content
settings:
progress_indicator: throbber
preview_image_style: thumbnail
third_party_settings: { }
path:
type: path
weight: 30
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
weight: 100
region: content
settings:
display_label: true
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 5
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
hidden:
name: true

View file

@ -1,32 +0,0 @@
uuid: 22ff7161-ad01-4c89-acf9-6ef0915b46d2
langcode: en
status: true
dependencies:
config:
- core.entity_form_mode.media.media_library
- field.field.media.image.field_media_image
- image.style.thumbnail
- media.type.image
module:
- image
_core:
default_config_hash: BMLrK4zKp8-FFnMseBdT_6h6YipUsKRfbDf_3WUB5HA
id: media.image.media_library
targetEntityType: media
bundle: image
mode: media_library
content:
field_media_image:
type: image_image
weight: 1
region: content
settings:
progress_indicator: throbber
preview_image_style: thumbnail
third_party_settings: { }
hidden:
created: true
name: true
path: true
status: true
uid: true

View file

@ -1,60 +0,0 @@
uuid: 3a408fca-9414-4982-902a-5735309d9cac
langcode: en
status: true
dependencies:
config:
- field.field.media.podcast_recording.field_media_audio_file
- media.type.podcast_recording
module:
- file
- path
id: media.podcast_recording.default
targetEntityType: media
bundle: podcast_recording
mode: default
content:
created:
type: datetime_timestamp
weight: 10
region: content
settings: { }
third_party_settings: { }
field_media_audio_file:
type: file_generic
weight: 0
region: content
settings:
progress_indicator: throbber
third_party_settings: { }
name:
type: string_textfield
weight: -5
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
path:
type: path
weight: 30
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
weight: 100
region: content
settings:
display_label: true
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 5
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
hidden: { }

View file

@ -1,27 +0,0 @@
uuid: a9050af9-e59d-4c69-b6dd-e631faf10574
langcode: en
status: true
dependencies:
config:
- core.entity_form_mode.media.media_library
- field.field.media.podcast_recording.field_media_audio_file
- media.type.podcast_recording
id: media.podcast_recording.media_library
targetEntityType: media
bundle: podcast_recording
mode: media_library
content:
name:
type: string_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden:
created: true
field_media_audio_file: true
path: true
status: true
uid: true

View file

@ -1,175 +0,0 @@
uuid: fa83fcf5-873a-48c1-9b39-63790479aa2e
langcode: en
status: true
dependencies:
config:
- field.field.node.article.body
- field.field.node.article.comment
- field.field.node.article.field_image
- field.field.node.article.field_seo_analysis
- field.field.node.article.field_seo_description
- field.field.node.article.field_seo_image
- field.field.node.article.field_seo_title
- field.field.node.article.field_tags
- image.style.thumbnail
- node.type.article
module:
- comment
- field_group
- image
- media_library
- path
- text
- yoast_seo
third_party_settings:
field_group:
group_seo:
children:
- field_seo_title
- field_seo_description
- field_seo_image
- field_seo_analysis
label: 'Search Engine Optimization (SEO) Information'
region: content
parent_name: ''
weight: 50
format_type: details
format_settings:
classes: ''
show_empty_fields: false
id: group_seo
label_as_html: false
open: false
description: ''
required_fields: false
_core:
default_config_hash: ewbd6G2uX456-bgwseM2Q-KQG3RkASoyHmTh-XR3oLU
id: node.article.default
targetEntityType: node
bundle: article
mode: default
content:
body:
type: text_textarea_with_summary
weight: 2
region: content
settings:
rows: 9
summary_rows: 3
placeholder: ''
show_summary: false
third_party_settings: { }
comment:
type: comment_default
weight: 20
region: content
settings: { }
third_party_settings: { }
created:
type: datetime_timestamp
weight: 10
region: content
settings: { }
third_party_settings: { }
field_image:
type: image_image
weight: 1
region: content
settings:
progress_indicator: throbber
preview_image_style: thumbnail
third_party_settings: { }
field_seo_analysis:
type: yoast_seo_widget
weight: 18
region: content
settings:
edit_title: false
edit_description: false
render_theme: null
render_view_mode: default
third_party_settings: { }
field_seo_description:
type: string_textarea
weight: 16
region: content
settings:
rows: 5
placeholder: ''
third_party_settings: { }
field_seo_image:
type: media_library_widget
weight: 17
region: content
settings:
media_types: { }
third_party_settings: { }
field_seo_title:
type: string_textfield
weight: 15
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
field_tags:
type: entity_reference_autocomplete_tags
weight: 3
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
path:
type: path
weight: 30
region: content
settings: { }
third_party_settings: { }
promote:
type: boolean_checkbox
weight: 15
region: content
settings:
display_label: true
third_party_settings: { }
simple_sitemap:
weight: 10
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
weight: 120
region: content
settings:
display_label: true
third_party_settings: { }
sticky:
type: boolean_checkbox
weight: 16
region: content
settings:
display_label: true
third_party_settings: { }
title:
type: string_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 5
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
hidden: { }

View file

@ -1,98 +0,0 @@
uuid: 591ce9fc-ab71-4b4d-b776-b4291759f47f
langcode: en
status: true
dependencies:
config:
- field.field.node.daily_email.body
- field.field.node.daily_email.field_daily_email_cta
- node.type.daily_email
module:
- path
- text
id: node.daily_email.default
targetEntityType: node
bundle: daily_email
mode: default
content:
body:
type: text_textarea_with_summary
weight: 2
region: content
settings:
rows: 9
summary_rows: 3
placeholder: ''
show_summary: false
third_party_settings: { }
created:
type: datetime_timestamp
weight: 10
region: content
settings: { }
third_party_settings: { }
field_daily_email_cta:
type: entity_reference_autocomplete
weight: 121
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
path:
type: path
weight: 30
region: content
settings: { }
third_party_settings: { }
promote:
type: boolean_checkbox
weight: 15
region: content
settings:
display_label: true
third_party_settings: { }
simple_sitemap:
weight: 10
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
weight: 120
region: content
settings:
display_label: true
third_party_settings: { }
sticky:
type: boolean_checkbox
weight: 16
region: content
settings:
display_label: true
third_party_settings: { }
title:
type: string_textfield
weight: -5
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 5
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
url_redirects:
weight: 50
region: content
settings: { }
third_party_settings: { }
hidden: { }

View file

@ -1,87 +0,0 @@
uuid: 66add161-1d42-41b4-9eb3-adf47de3b200
langcode: en
status: true
dependencies:
config:
- field.field.node.daily_email_cta.body
- node.type.daily_email_cta
module:
- path
- text
id: node.daily_email_cta.default
targetEntityType: node
bundle: daily_email_cta
mode: default
content:
body:
type: text_textarea_with_summary
weight: 2
region: content
settings:
rows: 9
summary_rows: 3
placeholder: ''
show_summary: false
third_party_settings: { }
created:
type: datetime_timestamp
weight: 10
region: content
settings: { }
third_party_settings: { }
path:
type: path
weight: 30
region: content
settings: { }
third_party_settings: { }
promote:
type: boolean_checkbox
weight: 15
region: content
settings:
display_label: true
third_party_settings: { }
simple_sitemap:
weight: 10
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
weight: 120
region: content
settings:
display_label: true
third_party_settings: { }
sticky:
type: boolean_checkbox
weight: 16
region: content
settings:
display_label: true
third_party_settings: { }
title:
type: string_textfield
weight: -5
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 5
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
url_redirects:
weight: 50
region: content
settings: { }
third_party_settings: { }
hidden: { }

View file

@ -1,147 +0,0 @@
uuid: a969c6e9-2018-4b62-89ab-74e34c04d447
langcode: en
status: true
dependencies:
config:
- field.field.node.page.body
- field.field.node.page.field_seo_analysis
- field.field.node.page.field_seo_description
- field.field.node.page.field_seo_image
- field.field.node.page.field_seo_title
- field.field.node.page.layout_builder__layout
- node.type.page
module:
- field_group
- media_library
- path
- text
- yoast_seo
third_party_settings:
field_group:
group_seo:
children:
- field_seo_title
- field_seo_description
- field_seo_image
- field_seo_analysis
label: 'Search Engine Optimization (SEO) Information'
region: content
parent_name: ''
weight: 50
format_type: details
format_settings:
classes: ''
show_empty_fields: false
id: group_seo
label_as_html: false
open: false
description: ''
required_fields: false
_core:
default_config_hash: SfpLhPExzvR0MgFp0Wp7CrmgEnhcqQ-fXIWFhbf4ue0
id: node.page.default
targetEntityType: node
bundle: page
mode: default
content:
body:
type: text_textarea_with_summary
weight: 31
region: content
settings:
rows: 9
summary_rows: 3
placeholder: ''
show_summary: false
third_party_settings: { }
created:
type: datetime_timestamp
weight: 10
region: content
settings: { }
third_party_settings: { }
field_seo_analysis:
type: yoast_seo_widget
weight: 18
region: content
settings:
edit_title: false
edit_description: false
render_theme: null
render_view_mode: default
third_party_settings: { }
field_seo_description:
type: string_textarea
weight: 16
region: content
settings:
rows: 5
placeholder: ''
third_party_settings: { }
field_seo_image:
type: media_library_widget
weight: 17
region: content
settings:
media_types: { }
third_party_settings: { }
field_seo_title:
type: string_textfield
weight: 15
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
path:
type: path
weight: 30
region: content
settings: { }
third_party_settings: { }
promote:
type: boolean_checkbox
weight: 15
region: content
settings:
display_label: true
third_party_settings: { }
simple_sitemap:
weight: 10
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
weight: 120
region: content
settings:
display_label: true
third_party_settings: { }
sticky:
type: boolean_checkbox
weight: 16
region: content
settings:
display_label: true
third_party_settings: { }
title:
type: string_textfield
weight: -5
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 5
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
hidden:
layout_builder__layout: true

View file

@ -1,124 +0,0 @@
uuid: 64df3284-e9fd-41c2-b59e-e6d256a1308f
langcode: en
status: true
dependencies:
config:
- field.field.node.podcast_episode.body
- field.field.node.podcast_episode.field_episode_number
- field.field.node.podcast_episode.field_episode_recording
- field.field.node.podcast_episode.field_podcast_guests
- field.field.node.podcast_episode.field_topic
- node.type.podcast_episode
module:
- media_library
- path
- text
id: node.podcast_episode.default
targetEntityType: node
bundle: podcast_episode
mode: default
content:
body:
type: text_textarea_with_summary
weight: 2
region: content
settings:
rows: 9
summary_rows: 3
placeholder: ''
show_summary: false
third_party_settings: { }
created:
type: datetime_timestamp
weight: 4
region: content
settings: { }
third_party_settings: { }
field_episode_number:
type: number
weight: 12
region: content
settings:
placeholder: ''
third_party_settings: { }
field_episode_recording:
type: media_library_widget
weight: 11
region: content
settings:
media_types: { }
third_party_settings: { }
field_podcast_guests:
type: entity_reference_autocomplete
weight: 13
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
field_topic:
type: string_textfield
weight: 1
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
path:
type: path
weight: 8
region: content
settings: { }
third_party_settings: { }
promote:
type: boolean_checkbox
weight: 6
region: content
settings:
display_label: true
third_party_settings: { }
simple_sitemap:
weight: 5
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
weight: 10
region: content
settings:
display_label: true
third_party_settings: { }
sticky:
type: boolean_checkbox
weight: 7
region: content
settings:
display_label: true
third_party_settings: { }
title:
type: string_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 3
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
url_redirects:
weight: 9
region: content
settings: { }
third_party_settings: { }
hidden: { }

View file

@ -1,109 +0,0 @@
uuid: 0bd43f8f-5a30-432b-8e6a-a99013b15593
langcode: en
status: true
dependencies:
config:
- field.field.node.presentation.body
- field.field.node.presentation.field_events
- node.type.presentation
module:
- paragraphs
- path
- text
id: node.presentation.default
targetEntityType: node
bundle: presentation
mode: default
content:
body:
type: text_textarea_with_summary
weight: 2
region: content
settings:
rows: 9
summary_rows: 3
placeholder: ''
show_summary: false
third_party_settings: { }
created:
type: datetime_timestamp
weight: 2
region: content
settings: { }
third_party_settings: { }
field_events:
type: paragraphs
weight: 9
region: content
settings:
title: Paragraph
title_plural: Paragraphs
edit_mode: open
closed_mode: summary
autocollapse: none
closed_mode_threshold: 0
add_mode: dropdown
form_display_mode: default
default_paragraph_type: event
features:
add_above: '0'
collapse_edit_all: '0'
convert: '0'
duplicate: '0'
third_party_settings: { }
path:
type: path
weight: 6
region: content
settings: { }
third_party_settings: { }
promote:
type: boolean_checkbox
weight: 4
region: content
settings:
display_label: true
third_party_settings: { }
simple_sitemap:
weight: 3
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
weight: 7
region: content
settings:
display_label: true
third_party_settings: { }
sticky:
type: boolean_checkbox
weight: 5
region: content
settings:
display_label: true
third_party_settings: { }
title:
type: string_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 1
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
url_redirects:
weight: 50
region: content
settings: { }
third_party_settings: { }
hidden: { }

View file

@ -1,140 +0,0 @@
uuid: b20a3539-3067-458a-b0ee-28b7d79f37db
langcode: en
status: true
dependencies:
config:
- field.field.node.testimonial.body
- field.field.node.testimonial.field_image
- field.field.node.testimonial.field_role
- field.field.node.testimonial.field_testimonial_type
- field.field.node.testimonial.field_url
- field.field.node.testimonial.field_weight
- image.style.thumbnail
- node.type.testimonial
module:
- image
- link
- path
- tagify
- text
- weight
id: node.testimonial.default
targetEntityType: node
bundle: testimonial
mode: default
content:
body:
type: text_textarea_with_summary
weight: 2
region: content
settings:
rows: 9
summary_rows: 3
placeholder: ''
show_summary: false
third_party_settings: { }
created:
type: datetime_timestamp
weight: 10
region: content
settings: { }
third_party_settings: { }
field_image:
type: image_image
weight: 1
region: content
settings:
progress_indicator: throbber
preview_image_style: thumbnail
third_party_settings: { }
field_role:
type: string_textfield
weight: 121
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
field_testimonial_type:
type: tagify_entity_reference_autocomplete_widget
weight: 124
region: content
settings:
match_operator: CONTAINS
match_limit: 10
placeholder: ''
suggestions_dropdown: 1
show_entity_id: 0
show_info_label: 0
info_label: ''
third_party_settings: { }
field_url:
type: link_default
weight: 122
region: content
settings:
placeholder_url: ''
placeholder_title: ''
third_party_settings: { }
field_weight:
type: weight_selector
weight: 123
region: content
settings: { }
third_party_settings: { }
path:
type: path
weight: 30
region: content
settings: { }
third_party_settings: { }
promote:
type: boolean_checkbox
weight: 15
region: content
settings:
display_label: true
third_party_settings: { }
simple_sitemap:
weight: 10
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
weight: 120
region: content
settings:
display_label: true
third_party_settings: { }
sticky:
type: boolean_checkbox
weight: 16
region: content
settings:
display_label: true
third_party_settings: { }
title:
type: string_textfield
weight: -5
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 5
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
url_redirects:
weight: 50
region: content
settings: { }
third_party_settings: { }
hidden: { }

View file

@ -1,49 +0,0 @@
uuid: 8c6aad6f-2b1b-4ac4-8064-45e75a079d78
langcode: en
status: true
dependencies:
config:
- field.field.paragraph.event.field_date
- field.field.paragraph.event.field_event_name
- field.field.paragraph.event.field_location
- field.field.paragraph.event.field_online
- paragraphs.paragraphs_type.event
module:
- datetime
id: paragraph.event.default
targetEntityType: paragraph
bundle: event
mode: default
content:
field_date:
type: datetime_default
weight: 1
region: content
settings: { }
third_party_settings: { }
field_event_name:
type: string_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
field_location:
type: string_textfield
weight: 2
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
field_online:
type: boolean_checkbox
weight: 3
region: content
settings:
display_label: true
third_party_settings: { }
hidden:
created: true
status: true

View file

@ -1,38 +0,0 @@
uuid: a3909c1d-6c4d-4218-95cf-a19cb19d8855
langcode: en
status: true
dependencies:
config:
- field.field.user.user.user_picture
- image.style.thumbnail
module:
- image
- user
_core:
default_config_hash: FaQ9Ptcpxpg30AtiqRDtl_8zbJArHP1LPfug_s59TOA
id: user.user.default
targetEntityType: user
bundle: user
mode: default
content:
account:
weight: -10
region: content
contact:
weight: 5
region: content
language:
weight: 0
region: content
timezone:
weight: 6
region: content
user_picture:
type: image_image
weight: -1
region: content
settings:
progress_indicator: throbber
preview_image_style: thumbnail
third_party_settings: { }
hidden: { }

View file

@ -1,16 +0,0 @@
uuid: 4c6369c6-2f8a-46c8-bf1b-6c1768a72c4c
langcode: en
status: true
dependencies:
module:
- media
enforced:
module:
- media_library
_core:
default_config_hash: 04_dAqpWYP1WmsXZ7IXJ7-yarCvNddD10EUkBDtIFy4
id: media.media_library
label: 'Media library'
description: ''
targetEntityType: media
cache: true

View file

@ -1,13 +0,0 @@
uuid: b06e0687-31eb-49ee-a42d-7da8b381c129
langcode: en
status: true
dependencies:
module:
- user
_core:
default_config_hash: 5pE_4hurqtIlZN3XDi7eTo5RG13BMG0Rh9HYlRI3h8U
id: user.register
label: Register
description: ''
targetEntityType: user
cache: true

View file

@ -1,33 +0,0 @@
uuid: 42078119-8f86-41cb-8ad8-e2d5c02e77d6
langcode: en
status: true
dependencies:
config:
- block_content.type.basic
- field.field.block_content.basic.body
- field.field.block_content.basic.field_text_alignment
module:
- options
- text
_core:
default_config_hash: hBNNDTFwakREOTa6GGMqN899Iyrii0hInwSJtQ7Kj30
id: block_content.basic.default
targetEntityType: block_content
bundle: basic
mode: default
content:
body:
type: text_default
label: hidden
settings: { }
third_party_settings: { }
weight: 0
region: content
field_text_alignment:
type: list_default
label: above
settings: { }
third_party_settings: { }
weight: 1
region: content
hidden: { }

View file

@ -1,27 +0,0 @@
uuid: 94e49367-2e5c-4898-8799-ab6d40546f32
langcode: en
status: true
dependencies:
config:
- comment.type.comment
- field.field.comment.comment.comment_body
module:
- text
_core:
default_config_hash: aBQUGsQ46M4048fIlFuTXwl2zV0j2cJX89CTUobh9hA
id: comment.comment.default
targetEntityType: comment
bundle: comment
mode: default
content:
comment_body:
type: text_default
label: hidden
settings: { }
third_party_settings: { }
weight: 0
region: content
links:
weight: 100
region: content
hidden: { }

View file

@ -1,33 +0,0 @@
uuid: b222569c-7c4c-48d7-bdb8-fc6a0adfe262
langcode: en
status: true
dependencies:
config:
- field.field.media.image.field_media_image
- image.style.large
- media.type.image
module:
- image
_core:
default_config_hash: t2YAVeSqMs3Gpnfp_plCnQ2TsoC0u57VCUWl8e2jMMM
id: media.image.default
targetEntityType: media
bundle: image
mode: default
content:
field_media_image:
type: image
label: visually_hidden
settings:
image_style: large
image_link: ''
image_loading:
attribute: lazy
third_party_settings: { }
weight: 1
region: content
hidden:
created: true
name: true
thumbnail: true
uid: true

View file

@ -1,34 +0,0 @@
uuid: 8e4a6f81-d80f-468c-b43a-7b2e981f0a2d
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.media.media_library
- field.field.media.image.field_media_image
- image.style.medium
- media.type.image
module:
- image
_core:
default_config_hash: ILLWu5KFvbsX6J7sh2Itd4w8-lBBRhR_H8ZrmQiN2yo
id: media.image.media_library
targetEntityType: media
bundle: image
mode: media_library
content:
thumbnail:
type: image
label: hidden
settings:
image_link: ''
image_style: medium
image_loading:
attribute: lazy
third_party_settings: { }
weight: 0
region: content
hidden:
created: true
field_media_image: true
name: true
uid: true

View file

@ -1,30 +0,0 @@
uuid: 3e04767f-3d30-419d-a12a-2e6425e92f11
langcode: en
status: true
dependencies:
config:
- field.field.media.podcast_recording.field_media_audio_file
- media.type.podcast_recording
module:
- file
id: media.podcast_recording.default
targetEntityType: media
bundle: podcast_recording
mode: default
content:
field_media_audio_file:
type: file_audio
label: visually_hidden
settings:
controls: true
autoplay: false
loop: false
multiple_file_display_type: tags
third_party_settings: { }
weight: 0
region: content
hidden:
created: true
name: true
thumbnail: true
uid: true

View file

@ -1,32 +0,0 @@
uuid: 0ca77936-0041-4ffc-8b34-3a159442c584
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.media.media_library
- field.field.media.podcast_recording.field_media_audio_file
- image.style.medium
- media.type.podcast_recording
module:
- image
id: media.podcast_recording.media_library
targetEntityType: media
bundle: podcast_recording
mode: media_library
content:
thumbnail:
type: image
label: hidden
settings:
image_link: ''
image_style: medium
image_loading:
attribute: lazy
third_party_settings: { }
weight: 0
region: content
hidden:
created: true
field_media_audio_file: true
name: true
uid: true

View file

@ -1,73 +0,0 @@
uuid: 5318a3b5-846d-4ae5-b82f-3cbf667262b2
langcode: en
status: true
dependencies:
config:
- core.entity_view_display.comment.comment.default
- field.field.node.article.body
- field.field.node.article.comment
- field.field.node.article.field_image
- field.field.node.article.field_seo_analysis
- field.field.node.article.field_seo_description
- field.field.node.article.field_seo_image
- field.field.node.article.field_seo_title
- field.field.node.article.field_tags
- image.style.wide
- node.type.article
module:
- comment
- image
- text
- user
_core:
default_config_hash: br6izr-iGEu--JvNbCJNtOBpRnxpFLXfoV5y61U9Nqc
id: node.article.default
targetEntityType: node
bundle: article
mode: default
content:
body:
type: text_default
label: hidden
settings: { }
third_party_settings: { }
weight: 0
region: content
comment:
type: comment_default
label: above
settings:
view_mode: default
pager_id: 0
third_party_settings: { }
weight: 110
region: content
field_image:
type: image
label: hidden
settings:
image_link: ''
image_style: wide
image_loading:
attribute: eager
third_party_settings: { }
weight: -1
region: content
field_tags:
type: entity_reference_label
label: above
settings:
link: true
third_party_settings: { }
weight: 10
region: content
links:
settings: { }
third_party_settings: { }
weight: 100
region: content
hidden:
field_seo_analysis: true
field_seo_description: true
field_seo_image: true
field_seo_title: true

View file

@ -1,36 +0,0 @@
uuid: dad55854-035a-4d28-910a-73331de0674d
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.rss
- field.field.node.article.body
- field.field.node.article.comment
- field.field.node.article.field_image
- field.field.node.article.field_seo_analysis
- field.field.node.article.field_seo_description
- field.field.node.article.field_seo_image
- field.field.node.article.field_seo_title
- field.field.node.article.field_tags
- node.type.article
module:
- user
_core:
default_config_hash: 2rIr6K5Q0UQ9khg0zE_CK-PtJH76UL-BDDZcZnZzwCc
id: node.article.rss
targetEntityType: node
bundle: article
mode: rss
content:
links:
weight: 100
region: content
hidden:
body: true
comment: true
field_image: true
field_seo_analysis: true
field_seo_description: true
field_seo_image: true
field_seo_title: true
field_tags: true

View file

@ -1,63 +0,0 @@
uuid: a99f221d-fab8-4ce4-9a72-9a25d1e8157b
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.teaser
- field.field.node.article.body
- field.field.node.article.comment
- field.field.node.article.field_image
- field.field.node.article.field_seo_analysis
- field.field.node.article.field_seo_description
- field.field.node.article.field_seo_image
- field.field.node.article.field_seo_title
- field.field.node.article.field_tags
- image.style.medium
- node.type.article
module:
- image
- text
- user
_core:
default_config_hash: O8PxzfG8DOHHRu6M23kwR6TDPq_MNfYQ10Mp367ICUQ
id: node.article.teaser
targetEntityType: node
bundle: article
mode: teaser
content:
body:
type: text_summary_or_trimmed
label: hidden
settings:
trim_length: 600
third_party_settings: { }
weight: 0
region: content
field_image:
type: image
label: hidden
settings:
image_link: content
image_style: medium
image_loading:
attribute: lazy
third_party_settings: { }
weight: -1
region: content
field_tags:
type: entity_reference_label
label: above
settings:
link: true
third_party_settings: { }
weight: 10
region: content
links:
weight: 100
region: content
hidden:
comment: true
field_seo_analysis: true
field_seo_description: true
field_seo_image: true
field_seo_title: true

View file

@ -1,73 +0,0 @@
uuid: 9e0c0e1c-fd1b-46ef-82cc-17e248b39748
langcode: en
status: true
dependencies:
config:
- field.field.node.daily_email.body
- field.field.node.daily_email.field_daily_email_cta
- node.type.daily_email
module:
- layout_builder
- layout_discovery
- opd_daily_emails
- text
- user
third_party_settings:
layout_builder:
enabled: true
allow_custom: false
sections:
-
layout_id: layout_onecol
layout_settings:
label: ''
components:
5f64dbd7-4d0e-4ac0-ae42-a1698b66931a:
uuid: 5f64dbd7-4d0e-4ac0-ae42-a1698b66931a
region: content
configuration:
id: 'field_block:node:daily_email:body'
label_display: '0'
context_mapping:
entity: layout_builder.entity
formatter:
type: text_default
label: hidden
settings: { }
third_party_settings: { }
weight: 0
additional: { }
third_party_settings: { }
-
layout_id: layout_onecol
layout_settings:
label: ''
context_mapping: { }
components:
fe7184b1-4b65-4fc2-bb42-3bdbb81287c7:
uuid: fe7184b1-4b65-4fc2-bb42-3bdbb81287c7
region: content
configuration:
id: opd_daily_emails_kit_subscription_block
label: 'Was this interesting?'
label_display: visible
provider: opd_daily_emails
context_mapping: { }
weight: 0
additional: { }
third_party_settings: { }
id: node.daily_email.default
targetEntityType: node
bundle: daily_email
mode: default
content:
body:
type: text_default
label: hidden
settings: { }
third_party_settings: { }
weight: 0
region: content
hidden:
field_daily_email_cta: true
links: true

View file

@ -1,32 +0,0 @@
uuid: fa37d7a0-718a-45df-9142-e32e47a15e1f
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.rss
- field.field.node.daily_email.body
- field.field.node.daily_email.field_daily_email_cta
- node.type.daily_email
module:
- layout_builder
- text
- user
third_party_settings:
layout_builder:
enabled: false
allow_custom: false
id: node.daily_email.rss
targetEntityType: node
bundle: daily_email
mode: rss
content:
body:
type: text_default
label: hidden
settings: { }
third_party_settings: { }
weight: 0
region: content
hidden:
field_daily_email_cta: true
links: true

Some files were not shown because too many files have changed in this diff Show more