style: reformat

This commit is contained in:
Oliver Davies 2023-04-19 18:00:00 +01:00
parent a33f269253
commit 23fafcbcf0
11 changed files with 130 additions and 61 deletions

2
.prettierignore Normal file
View file

@ -0,0 +1,2 @@
/src/content/
/src/data/

View file

@ -2,6 +2,6 @@
title: Page not found title: Page not found
--- ---
import Layout from '~/layouts/PageLayout.astro' import Layout from "~/layouts/PageLayout.astro";
<Layout title={frontmatter.title} /> <Layout title={frontmatter.title} />

View file

@ -7,13 +7,52 @@ title: Ansible email course
Register for my upcoming Ansible email course. Register for my upcoming Ansible email course.
<form class="mx-auto mt-8 max-w-md" action="https://app.convertkit.com/forms/3588392/subscriptions" method="post" data-sv-form="3588392" data-uid="f0c1d2b57f" data-format="inline" data-version="5" data-options="{&quot;settings&quot;:{&quot;after_subscribe&quot;:{&quot;action&quot;:&quot;message&quot;,&quot;success_message&quot;:&quot;Success! Now check your email to confirm your subscription.&quot;,&quot;redirect_url&quot;:&quot;&quot;},&quot;analytics&quot;:{&quot;google&quot;:null,&quot;fathom&quot;:null,&quot;facebook&quot;:null,&quot;segment&quot;:null,&quot;pinterest&quot;:null,&quot;sparkloop&quot;:null,&quot;googletagmanager&quot;:null},&quot;modal&quot;:{&quot;trigger&quot;:&quot;timer&quot;,&quot;scroll_percentage&quot;:null,&quot;timer&quot;:5,&quot;devices&quot;:&quot;all&quot;,&quot;show_once_every&quot;:15},&quot;powered_by&quot;:{&quot;show&quot;:true,&quot;url&quot;:&quot;https://convertkit.com/features/forms?utm_campaign=poweredby&amp;utm_content=form&amp;utm_medium=referral&amp;utm_source=dynamic&quot;},&quot;recaptcha&quot;:{&quot;enabled&quot;:false},&quot;return_visitor&quot;:{&quot;action&quot;:&quot;show&quot;,&quot;custom_content&quot;:&quot;&quot;},&quot;slide_in&quot;:{&quot;display_in&quot;:&quot;bottom_right&quot;,&quot;trigger&quot;:&quot;timer&quot;,&quot;scroll_percentage&quot;:null,&quot;timer&quot;:5,&quot;devices&quot;:&quot;all&quot;,&quot;show_once_every&quot;:15},&quot;sticky_bar&quot;:{&quot;display_in&quot;:&quot;top&quot;,&quot;trigger&quot;:&quot;timer&quot;,&quot;scroll_percentage&quot;:null,&quot;timer&quot;:5,&quot;devices&quot;:&quot;all&quot;,&quot;show_once_every&quot;:15}},&quot;version&quot;:&quot;5&quot;}" min-width="400"><div data-style="clean"><ul class="formkit-alert formkit-alert-error" data-element="errors" data-group="alert"></ul> <form
<div data-element="fields" data-stacked="false" class="seva-fields formkit-fields"><div class="formkit-field"> class="mx-auto mt-8 max-w-md"
<input class="block mt-1 w-full" name="email_address" style="color: rgb(0, 0, 0); border-color: rgb(227, 227, 227); border-radius: 4px; font-weight: 400;" aria-label="Email Address" placeholder="What is your best email address?" required="" type="email"/> action="https://app.convertkit.com/forms/3588392/subscriptions"
method="post"
data-sv-form="3588392"
data-uid="f0c1d2b57f"
data-format="inline"
data-version="5"
data-options='{"settings":{"after_subscribe":{"action":"message","success_message":"Success! Now check your email to confirm your subscription.","redirect_url":""},"analytics":{"google":null,"fathom":null,"facebook":null,"segment":null,"pinterest":null,"sparkloop":null,"googletagmanager":null},"modal":{"trigger":"timer","scroll_percentage":null,"timer":5,"devices":"all","show_once_every":15},"powered_by":{"show":true,"url":"https://convertkit.com/features/forms?utm_campaign=poweredby&amp;utm_content=form&amp;utm_medium=referral&amp;utm_source=dynamic"},"recaptcha":{"enabled":false},"return_visitor":{"action":"show","custom_content":""},"slide_in":{"display_in":"bottom_right","trigger":"timer","scroll_percentage":null,"timer":5,"devices":"all","show_once_every":15},"sticky_bar":{"display_in":"top","trigger":"timer","scroll_percentage":null,"timer":5,"devices":"all","show_once_every":15}},"version":"5"}'
min-width="400"
>
<div data-style="clean">
<ul
class="formkit-alert formkit-alert-error"
data-element="errors"
data-group="alert"
></ul>
<div
data-element="fields"
data-stacked="false"
class="seva-fields formkit-fields"
>
<div class="formkit-field">
<input
class="block mt-1 w-full"
name="email_address"
style="color: rgb(0, 0, 0); border-color: rgb(227, 227, 227); border-radius: 4px; font-weight: 400;"
aria-label="Email Address"
placeholder="What is your best email address?"
required=""
type="email"
/>
</div>
<div class="mt-4">
<button
data-element="submit"
class="inline-flex justify-center items-center py-3 px-6 w-full font-medium text-white no-underline rounded-md border duration-200 ease-in-out hover:bg-white focus:bg-white border-blue-primary bg-blue-primary transition-color hover:text-blue-primary focus:text-blue-primary"
>
<div class="formkit-spinner">
<div></div>
<div></div>
<div></div>
</div>
<span class="">Register for updates →</span>
</button>
</div>
</div>
</div> </div>
<div class="mt-4"> </form>
<button data-element="submit" class="inline-flex justify-center items-center py-3 px-6 w-full font-medium text-white no-underline rounded-md border duration-200 ease-in-out hover:bg-white focus:bg-white border-blue-primary bg-blue-primary transition-color hover:text-blue-primary focus:text-blue-primary">
<div class="formkit-spinner"><div></div><div></div><div></div></div><span class="">Register for updates →</span>
</button></div>
</div>
</div></form>

View file

@ -11,7 +11,12 @@ price: 199
- Once payment is received, youll obtain a link to schedule a meeting in my calendar. - Once payment is received, youll obtain a link to schedule a meeting in my calendar.
- The meeting will take place over Zoom. - The meeting will take place over Zoom.
<a class="inline-block py-2 px-5 my-4 text-lg text-white no-underline rounded-lg border-2 transition-colors duration-200 hover:bg-white border-blue-primary bg-blue-primary hover:text-blue-primary" href={frontmatter.link}>Book your call now &rarr;</a> <a
class="inline-block py-2 px-5 my-4 text-lg text-white no-underline rounded-lg border-2 transition-colors duration-200 hover:bg-white border-blue-primary bg-blue-primary hover:text-blue-primary"
href={frontmatter.link}
>
Book your call now &rarr;
</a>
If you dont find the call valuable, Ill refund 100% of the cost. If you dont find the call valuable, Ill refund 100% of the cost.

View file

@ -3,7 +3,7 @@ layout: ~/layouts/PageLayout.astro
title: Contact Oliver title: Contact Oliver
--- ---
export const email = 'oliver@oliverdavies.uk' export const email = "oliver@oliverdavies.uk";
The best way to get in touch with me is via email: <a href={`mailto:${email}`}>{email}</a>. I usually reply within one business day. The best way to get in touch with me is via email: <a href={`mailto:${email}`}>{email}</a>. I usually reply within one business day.

View file

@ -3,30 +3,30 @@ layout: ~/layouts/PageLayout.astro
title: Oliver's Daily List title: Oliver's Daily List
--- ---
import AboutMe from '~/components/AboutMe.astro'; import AboutMe from "~/components/AboutMe.astro";
import DailyEmailForm from '~/components/DailyEmailForm.astro'; import DailyEmailForm from "~/components/DailyEmailForm.astro";
import Markdown from '~/components/Markdown.astro'; import Markdown from "~/components/Markdown.astro";
import _ from 'lodash' import _ from "lodash";
export const testimonials = [ export const testimonials = [
{ {
name: "Patty O'Callaghan", name: "Patty O'Callaghan",
text: "<p>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.</p><p>Thanks for contributing to the community with your amazing content! :)</p>", text: "<p>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.</p><p>Thanks for contributing to the community with your amazing content! :)</p>",
image: "patty-ocallaghan.jpg" image: "patty-ocallaghan.jpg",
}, },
{ {
name: "Stephen Mulvihill", name: "Stephen Mulvihill",
text: "I like the \"$ git log -S\" and \"$ git log --grep\" commands, will definitely be using these, thanks!", text: 'I like the "$ git log -S" and "$ git log --grep" commands, will definitely be using these, thanks!',
image: "stephen-mulvihill.jpg" image: "stephen-mulvihill.jpg",
}, },
{ {
name: "Marcos Duran", name: "Marcos Duran",
text: "<p> 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.</p>", text: "<p> 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.</p>",
image: "marcos-duran.jpg" image: "marcos-duran.jpg",
} },
] ];
export const sortedTestimonials = _.reverse(testimonials) export const sortedTestimonials = _.reverse(testimonials);
A daily newsletter on software development, DevOps, community, and open-source. A daily newsletter on software development, DevOps, community, and open-source.
@ -62,6 +62,7 @@ A daily newsletter on software development, DevOps, community, and open-source.
</div> </div>
</section> </section>
)} )}
</div> </div>
<AboutMe /> <AboutMe />

View file

@ -3,7 +3,7 @@ layout: ~/layouts/PageLayout.astro
title: Oliver Davies - PHP Developer and Drupal Specialist title: Oliver Davies - PHP Developer and Drupal Specialist
--- ---
export const email = "oliver@oliverdavies.uk" export const email = "oliver@oliverdavies.uk";
I'm a long-time Web Developer and consultant. Ive led, delivered, and maintained PHP, Drupal, and Drupal Commerce based websites, have worked for some of the UKs largest and well-known PHP and Drupal agencies, and even for the Drupal Association - the nonprofit organisation behind the Drupal project - where I was employed to work on and improve the Drupal.org websites. I'm a long-time Web Developer and consultant. Ive led, delivered, and maintained PHP, Drupal, and Drupal Commerce based websites, have worked for some of the UKs largest and well-known PHP and Drupal agencies, and even for the Drupal Association - the nonprofit organisation behind the Drupal project - where I was employed to work on and improve the Drupal.org websites.

View file

@ -3,24 +3,24 @@ layout: ~/layouts/PageLayout.astro
title: Introduction to Automated Testing and Test-Driven Development with Drupal title: Introduction to Automated Testing and Test-Driven Development with Drupal
--- ---
export const drupalVersions = '9 and 10' export const drupalVersions = "9 and 10";
export const prices = { export const prices = {
early: "395.00", early: "395.00",
full: "495.00", full: "495.00",
} };
export const isEarlyBird = true export const isEarlyBird = true;
export const nextDate = '2022-04-04' export const nextDate = "2022-04-04";
export const testimonials = [ export const testimonials = [
{ {
name: 'Scott Euser, Head of Web Development', name: "Scott Euser, Head of Web Development",
image: '/images/scott-euser.jpg', image: "/images/scott-euser.jpg",
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.', 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.",
}, },
] ];
Are you a Drupal Developer who wants to learn about automated testing and test-driven development, or do you manage a development team that you'd like to train? Are you a Drupal Developer who wants to learn about automated testing and test-driven development, or do you manage a development team that you'd like to train?
@ -30,15 +30,15 @@ I offer an interactive full-day workshop (previously presented at DrupalCamp Lon
## Contents ## Contents
* What is automated testing, and why write tests? - What is automated testing, and why write tests?
* What types of tests are available in Drupal? - What types of tests are available in Drupal?
* Outside-in vs. inside-out testing. - Outside-in vs. inside-out testing.
* Configuring Drupal and PHPUnit to run tests locally. - Configuring Drupal and PHPUnit to run tests locally.
* Exercise: writing tests for existing Drupal core functionality. - Exercise: writing tests for existing Drupal core functionality.
* Exercise: adding tests to an existing custom module. - Exercise: adding tests to an existing custom module.
* What is test-driven development? - What is test-driven development?
* Exercise: writing a new Drupal module from scratch with test-driven development. - Exercise: writing a new Drupal module from scratch with test-driven development.
* Q&A - Q&A
<hr /> <hr />
@ -49,7 +49,10 @@ The workshop is currently only available remotely, and the next available date i
Seats are available at <span class="font-bold">{isEarlyBird ? `an early bird price of £${prices.early}` : `a price of £${prices.full}`}</span>, with a 10% discount for bulk orders of 5 or more seats. Seats are available at <span class="font-bold">{isEarlyBird ? `an early bird price of £${prices.early}` : `a price of £${prices.full}`}</span>, with a 10% discount for bulk orders of 5 or more seats.
<div class="mt-6"> <div class="mt-6">
<a class="inline-flex items-center py-3 px-6 text-base font-medium text-white no-underline rounded-md duration-200 ease-in-out hover:bg-white focus:bg-white bg-blue-primary transition-color hover:text-blue-primary focus:text-blue-primary" href="https://buy.stripe.com/6oE3cW4Su7DA1t6144"> <a
class="inline-flex items-center py-3 px-6 text-base font-medium text-white no-underline rounded-md duration-200 ease-in-out hover:bg-white focus:bg-white bg-blue-primary transition-color hover:text-blue-primary focus:text-blue-primary"
href="https://buy.stripe.com/6oE3cW4Su7DA1t6144"
>
Book your seat &rarr; Book your seat &rarr;
</a> </a>
</div> </div>
@ -59,6 +62,7 @@ Seats are available at <span class="font-bold">{isEarlyBird ? `an early bird pri
## Testimonials ## Testimonials
{testimonials.map(testimonial => ( {testimonials.map(testimonial => (
<div> <div>
<blockquote class="mt-4"> <blockquote class="mt-4">
{testimonial.text} {testimonial.text}
@ -70,5 +74,6 @@ Seats are available at <span class="font-bold">{isEarlyBird ? `an early bird pri
<img width="40" height="40" class="w-10 h-10 rounded-full border" src={testimonial.image} /> <img width="40" height="40" class="w-10 h-10 rounded-full border" src={testimonial.image} />
</span> </span>
</footer> </footer>
</div> </div>
))} ))}

View file

@ -4,26 +4,33 @@ title: Links
--- ---
export const links = [ export const links = [
{ title: 'My daily email list', url: '/daily' }, { title: "My daily email list", url: "/daily" },
{ title: 'Twitter', url: 'https://twitter.com/opdavies' }, { title: "Twitter", url: "https://twitter.com/opdavies" },
{ title: 'YouTube', url: 'https://www.youtube.com/channel/UCkeK0qF9HHUPQH_fvn4ghqQ' }, {
{ title: 'LinkedIn', url: 'https://www.linkedin.com/in/opdavies' }, title: "YouTube",
{ title: 'Drupal.org', url: 'https://www.drupal.org/u/opdavies' }, url: "https://www.youtube.com/channel/UCkeK0qF9HHUPQH_fvn4ghqQ",
{ title: 'GitHub', url: 'https://github.com/opdavies' }, },
{ title: 'GitHub Gists', url: 'https://gist.github.com/opdavies' }, { title: "LinkedIn", url: "https://www.linkedin.com/in/opdavies" },
{ title: 'Packagist', url: 'https://packagist.org/packages/opdavies' }, { title: "Drupal.org", url: "https://www.drupal.org/u/opdavies" },
{ title: 'Speakerdeck', url: 'https://speakerdeck.com/opdavies' }, { title: "GitHub", url: "https://github.com/opdavies" },
{ title: 'PHP South Wales', url: 'https://www.phpsouthwales.uk' }, { title: "GitHub Gists", url: "https://gist.github.com/opdavies" },
{ title: "Packagist", url: "https://packagist.org/packages/opdavies" },
{ title: "Speakerdeck", url: "https://speakerdeck.com/opdavies" },
{ title: "PHP South Wales", url: "https://www.phpsouthwales.uk" },
]; ];
<div class="mx-auto max-w-md"> <div class="mx-auto max-w-md">
<ul class="p-0 space-y-4 list-none"> <ul class="p-0 space-y-4 list-none">
{links && links.map(link => ( {links &&
links.map((link) => (
<li> <li>
<a class="block p-2 w-full text-center text-black no-underline border transition duration-200 ease-in-out dark:text-white hover:text-white focus:text-white dark:hover:text-black dark:focus:text-black dark:hover:bg-white dark:focus:bg-white hover:bg-blue-primary focus:bg-blue-primary" href={link.url}> <a
class="block p-2 w-full text-center text-black no-underline border transition duration-200 ease-in-out dark:text-white hover:text-white focus:text-white dark:hover:text-black dark:focus:text-black dark:hover:bg-white dark:focus:bg-white hover:bg-blue-primary focus:bg-blue-primary"
href={link.url}
>
{link.title} {link.title}
</a> </a>
</li> </li>
))} ))}
</ul> </ul>
</div> </div>

View file

@ -5,7 +5,12 @@ title: Speaker Information
## Bio ## Bio
<a href="https://www.oliverdavies.uk">Oliver Davies</a> (<a href="https://twitter.com/opdavies">@opdavies</a>) has been building websites since 2007, and speaking at meetups and conferences since 2012. He is a Full Stack Developer and a certified Drupal expert who also has experience developing with Symfony, Laravel, Sculpin and Vue.js, as well as with DevOps and systems administration. <a href="https://www.oliverdavies.uk">Oliver Davies</a> (<a href="https://twitter.com/opdavies">
@opdavies
</a>) has been building websites since 2007, and speaking at meetups and conferences
since 2012. He is a Full Stack Developer and a certified Drupal expert who also has
experience developing with Symfony, Laravel, Sculpin and Vue.js, as well as with
DevOps and systems administration.
He is a Lead Software Developer at <a href="https://tfw.wales/?%20utm_source=oliverdavies.uk&utm_medium=speaker-information">Transport for Wales</a>, a Drupal core contributor and mentor, and an open source and contribution advocate. He is a Lead Software Developer at <a href="https://tfw.wales/?%20utm_source=oliverdavies.uk&utm_medium=speaker-information">Transport for Wales</a>, a Drupal core contributor and mentor, and an open source and contribution advocate.

View file

@ -3,7 +3,7 @@ layout: ~/layouts/PageLayout.astro
title: Things you should know about PHP title: Things you should know about PHP
--- ---
export const email = "oliver@oliverdavies.uk" export const email = "oliver@oliverdavies.uk";
Thanks for attending my [Things you should know about PHP](/talks/things-you-should-know-about-php) talk. Thanks for attending my [Things you should know about PHP](/talks/things-you-should-know-about-php) talk.
@ -58,5 +58,10 @@ Do you want to introduce PHP to your company or team, or add one of these tools
I offer consulting calls and services to reduce your onboarding time and get you up and running quicker and easier. I offer consulting calls and services to reduce your onboarding time and get you up and running quicker and easier.
<div class="mt-6"> <div class="mt-6">
<a class="inline-flex items-center py-3 px-6 text-base font-medium text-white no-underline rounded-md duration-200 ease-in-out hover:bg-white focus:bg-white bg-blue-primary transition-color hover:text-blue-primary focus:text-blue-primary" href={`mailto:${email}?subject=Book in my call`}>Book in your call →</a> <a
class="inline-flex items-center py-3 px-6 text-base font-medium text-white no-underline rounded-md duration-200 ease-in-out hover:bg-white focus:bg-white bg-blue-primary transition-color hover:text-blue-primary focus:text-blue-primary"
href={`mailto:${email}?subject=Book in my call`}
>
Book in your call →
</a>
</div> </div>