This commit is contained in:
Oliver Davies 2017-09-04 17:55:53 +01:00
parent 04b28136df
commit 62b1dc15d2
30 changed files with 286 additions and 347 deletions

View file

@ -1,68 +1 @@
testimonials: testimonials:
- name: Ed Welsby
image: ed-welsby.png
role: >
Senior Developer at [Proctor & Stevenson](http://www.proctors.co.uk)
text: |
Oliver was great to work with, he has a solid knowledge of the various aspects of web development and never minded helping me out with Linux commands!
- name: Brian Healy
image: brian-healy.png
role: >
Director of Business Development at [Tincan](http://tincan.co.uk)
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: Marlon Duncanson
role: 'Brand & Web Specialist'
text: |
Oliver is a great guy and really easy to work with. He really goes the extra mile to make sure the project is done properly. I would recommend him and will not hesitate to use him again in future.
- name: Brian Hartwell
role: Interactive Creative Director
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: Daniel Easterbrook
role: Digital Strategy Consultant
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: James Chapman
role: >
Director at [Development Done Right](http://www.developmentdoneright.co.uk)
image: james-chapman.png
text: |
We used Oliver on a number of occasions throughout 2012 and I have to say we've been delighted with his work. His skills working with Drupal are excellent particularly with custom module development and we wouldnt hesitate to recommend him others.
- name: Léonie Watson
role: >
Director of Accessibility at [Nomensa](http://www.nomensa.com)
image: leonie-watson.jpg
text: |
Oliver is a flexible and hardworking developer, with a terrific knowledge of Drupal. He promotes accessibility best practice within the Drupal community, and is always happy to share his knowledge with other people.
- name: Holly Ross
role: >
Executive Director at the [Drupal Association](https://assoc.drupal.org)
image: holly-ross.png
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: Josh Mitchell
role: >
CTO at the [Drupal Association](https://assoc.drupal.org)
image: josh-mitchell.png
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: Chris Jarvis
image: chris-jarvis.jpg
role: >
Developer at [Microserve](https://microserve.io)
text: |
Oliver is an amazing colleague, he's professional, full of knowledge and I could not recommend him more.

View file

@ -1,35 +0,0 @@
// =from($device)
// @media screen and (min-width: $device)
// @content
// =until($device)
// @media screen and (max-width: $device - 1px)
// @content
// =mobile
// @media screen and (max-width: $screen-tablet - 1px)
// @content
// =tablet
// @media screen and (min-width: $screen-tablet)
// @content
// =tablet-only
// @media screen and (min-width: $screen-tablet) and (max-width: $screen-desktop - 1px)
// @content
// =touch
// @media screen and (max-width: $screen-desktop - 1px)
// @content
// =desktop
// @media screen and (min-width: $screen-desktop)
// @content
// =desktop-only
// @media screen and (min-width: $screen-desktop) and (max-width: $screen-lg - 1px)
// @content
// =widescreen
// @media screen and (min-width: $screen-lg)
// @content

View file

@ -1,6 +1,3 @@
@import "node_modules/bulma/sass/utilities/initial-variables"
@import "node_modules/bulma/sass/utilities/mixins"
.experience-item-website .experience-item-website
margin-bottom: 2px margin-bottom: 2px

View file

@ -1,21 +1,22 @@
@import 'node_modules/bulma/sass/utilities/initial-variables' @import "node_modules/tachyons-sass/scss/colors";
$family-sans-serif: "Helvetica Neue", Arial, sans-serif $blue: #0678be
$body-size: 14px
$blue: #0678BE @import "node_modules/tachyons-sass/tachyons";
$primary: $blue p,
li,
td
a
color: $blue
@import 'node_modules/bulma/bulma' .video
padding: 56.25% 0 0
@import 'base' .video iframe,
@import 'mixins' .video embed
height: 100%
@import 'base/layout' left: 0
@import 'base/utilities' position: absolute
top: 0
@import 'components/availability' width: 100%
@import 'components/badges'
@import 'components/footer'
@import 'components/meetups'

24
assets/sass/main.scss Normal file
View file

@ -0,0 +1,24 @@
@import "node_modules/tachyons-sass/tachyons";
$blue1: #0678be;
p,
li,
td {
a { color: $blue1; }
}
.blue1 { color: $blue1; }
.video {
padding: 56.25% 0 0;
}
.video iframe,
.video embed {
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
}

View file

@ -54,17 +54,17 @@ gulp.task('styles', function () {
config.sass.sourceDir + '/main.sass' config.sass.sourceDir + '/main.sass'
], 'main.css'); ], 'main.css');
app.sass([ // app.sass([
'node_modules/prismjs/themes/prism-twilight.css', // 'node_modules/prismjs/themes/prism-twilight.css',
config.sass.sourceDir + '/post.sass' // config.sass.sourceDir + '/post.sass'
], 'post.css') // ], 'post.css')
app.sass(config.sass.sourceDir + '/about.sass', 'about.css'); // app.sass(config.sass.sourceDir + '/about.sass', 'about.css');
app.sass(config.sass.sourceDir + '/blog.sass', 'blog.css'); // app.sass(config.sass.sourceDir + '/blog.sass', 'blog.css');
app.sass(config.sass.sourceDir + '/experience.sass', 'experience.css'); // app.sass(config.sass.sourceDir + '/experience.sass', 'experience.css');
app.sass(config.sass.sourceDir + '/project.sass', 'project.css'); // app.sass(config.sass.sourceDir + '/project.sass', 'project.css');
app.sass(config.sass.sourceDir + '/talk.sass', 'talk.css'); // app.sass(config.sass.sourceDir + '/talk.sass', 'talk.css');
app.sass(config.sass.sourceDir + '/testimonials.sass', 'testimonials.css'); // app.sass(config.sass.sourceDir + '/testimonials.sass', 'testimonials.css');
}); });
gulp.task('scripts', function () { gulp.task('scripts', function () {

View file

@ -18,6 +18,6 @@
"gulp-util": "^3.0.8", "gulp-util": "^3.0.8",
"jquery.2": "^1.0.0", "jquery.2": "^1.0.0",
"prismjs": "^1.6.0", "prismjs": "^1.6.0",
"tachyons": "^4.8.1" "tachyons-sass": "^4.7.4"
} }
} }

View file

@ -1,11 +1,9 @@
<div class="availability panel panel-default"> <div class="lh-copy">
<div class="panel-heading">Availability</div> <h2>Availability</h2>
<div class="panel-block"> <ul class="list pa0">
<div> {% for key, availability in site.availability %}
{% for key, availability in site.availability %} {% include 'availability/' ~ availability with { value: key } %}
{% include 'availability/' ~ availability with { value: key } %} {% endfor %}
{% endfor %} </ul>
</div>
</div>
</div> </div>

View file

@ -1,8 +1,6 @@
<p> <li>
<span class="icon is-small"> <i class="mr1 fa fa-thumbs-o-up orange"></i>
<i class="fa fa-thumbs-o-up is-warning"></i>
</span>
{{ value == 'full' ? 'Currently have limited full-time capacity' }} {{ value == 'full' ? 'Currently have limited full-time capacity' }}
{{ value == 'part' ? 'Currently have limited part-time capacity' }} {{ value == 'part' ? 'Currently have limited part-time capacity' }}
</p> </li>

View file

@ -1,8 +1,6 @@
<p> <li>
<span class="icon is-small"> <i class="mr1 fa fa-thumbs-o-down dark-red"></i>
<i class="fa fa-thumbs-o-down is-danger"></i>
</span>
{{ value == 'full' ? 'Currently no spare full-time capacity.' }} {{ value == 'full' ? 'Currently no spare full-time capacity.' }}
{{ value == 'part' ? 'Currently no spare part-time capacity.' }} {{ value == 'part' ? 'Currently no spare part-time capacity.' }}
</p> </li>

View file

@ -1,8 +1,6 @@
<p> <li>
<span class="icon is-small"> <i class="mr1 fa fa-thumbs-o-up dark-green"></i>
<i class="fa fa-thumbs-o-up is-success"></i>
</span>
{{ value == 'full' ? 'Currently have available full-time capacity' }} {{ value == 'full' ? 'Currently have available full-time capacity' }}
{{ value == 'part' ? 'Currently have available part-time capacity' }} {{ value == 'part' ? 'Currently have available part-time capacity' }}
</p> </li>

View file

@ -1,5 +1,5 @@
<div class="panel badges has-text-centered"> <div>
<a href="https://assoc.drupal.org/membership" title="Im a Drupal Association member." class="is-block"> <a href="https://assoc.drupal.org/membership" title="Im a Drupal Association member." class="db mb3 tc">
<img <img
src="{{ site.images_url }}/assets/images/badges/da-individual-member.png" src="{{ site.images_url }}/assets/images/badges/da-individual-member.png"
alt="Drupal Association Individual Member" alt="Drupal Association Individual Member"
@ -7,23 +7,21 @@
/> />
</a> </a>
<div class="acquia-badges"> <div class="db mb3 dt">
<div class="badge"> {% for badge in [
<img { image: 'acquia-d8-developer.png', alt: 'Acquia Certified Developer - Drupal 8 Exam Badge' },
src="{{ site.images_url }}/assets/images/badges/acquia-d8-developer.png" { image: 'acquia-d8-back-end.png', alt: 'Acquia Certified Back End Specialist - Drupal 8 Exam Badge' }
alt="Acquia Certified Developer - Drupal 8 Exam Badge" ] %}
/> <div class="dtc">
</div> <img
src="{{ site.images_url }}/assets/images/badges/{{ badge.image }}"
<div class="badge"> alt="{{ badge.alt }}"
<img />
src="{{ site.images_url }}/assets/images/badges/acquia-d8-back-end.png" </div>
alt="Acquia Certified Back End Specialist - Drupal 8 Exam Badge" {% endfor %}
/>
</div>
</div> </div>
<a href="http://conference.phpnw.org.uk/phpnw17" class="is-block"> <a href="http://conference.phpnw.org.uk/phpnw17" class="db">
<img src="{{ site.images_url }}/assets/images/badges/phpnw17.png" alt=""> <img src="{{ site.images_url }}/assets/images/badges/phpnw17.png" alt="">
</a> </a>
</div> </div>

View file

@ -1,12 +1,17 @@
<div class="meetups"> <div class="mt4">
<h2>Things that I organise</h2> <h2 class="mb3">Things that I organise</h2>
<ul>
<ul class="list flex pa0 mt0">
{% for meetup in site.meetups %} {% for meetup in site.meetups %}
<li class="meetups--{{ meetup.name|lower|replace({ ' ': '-' }) }}"> <li>
<a href="{{ meetup.url }}" title="{{ meetup.name }}"> <a
href="{{ meetup.url }}"
title="{{ meetup.name }}"
class="dib {% if not loop.last %}mr2{% endif %}">
<img <img
src="{{ site.images_url }}/assets/images/meetups/{{ meetup.logo }}" src="{{ site.images_url }}/assets/images/meetups/{{ meetup.logo }}"
alt="{{ meetup.name }} logo" alt="{{ meetup.name }} logo"
class="h3"
> >
</a> </a>
</li> </li>

View file

@ -1,45 +1,31 @@
<nav class="nav has-shadow" id="top"> <header class="w-100 pa3 ph5-ns bg-white">
<div class="container"> <div class="db dt-ns mw9 center w-100">
<div class="nav-left"> <div class="db dtc-ns v-mid tl w-50">
<a class="nav-item"> <a href="/" class="dib f5 f4-ns mt0 mb1 link black-70" title="Home">
<div class="nav-item"> {{ site.title }}
<a href="{{ site.url }}">
{{ site.title }}
</a>
</div>
</a> </a>
</div> </div>
<span class="nav-toggle"> <nav class="db dtc-ns v-mid w-100 tl tr-ns mt2 mt0-ns">
<span></span> <a href="/" class="f6 hover-blue link black-70 ml2 ml-m ml4-l dib">
<span></span> About
<span></span> </a>
</span>
<div class="nav-right nav-menu"> <a href="/components/" class="f6 hover-blue link black-70 ml2 ml-m ml4-l dib">
<a class="nav-item is-tab {{ page.url == '/.' ? 'is-active' }}" href="/"> Experience
About </a>
</a>
<a class="nav-item is-tab {{ page.url == '/experience' ? 'is-active' }}" href="/experience"> <a href="/gallery/" class="f6 hover-blue link black-70 ml2 ml-m ml4-l dib">
Experience Testimonials
</a> </a>
<a class="nav-item is-tab {{ page.url == '/testimonials' ? 'is-active' }}" href="/testimonials"> <a href="/resources/" class="f6 hover-blue link black-70 ml2 ml-m ml4-l dib">
Testimonials Talks
</a> </a>
<a class="nav-item is-tab {{ page.url == '/talks' or '/talks/' in page.url ? 'is-active' }}" href="/talks"> <a href="http://github.com/tachyons-css/tachyons/" class="f6 hover-blue link black-70 ml2 ml-m ml4-l dn dib-l">
Talks Contact
</a> </a>
</nav>
<a class="nav-item is-tab {{ page.url == '/blog' or '/blog/' in page.url ? 'is-active' }}" href="/blog">
Blog
</a>
<a class="nav-item is-tab {{ page.url == '/contact' or '/contact/' in page.url ? 'is-active' }}" href="/contact">
Contact
</a>
</div>
</div> </div>
</nav> </header>

View file

@ -1,7 +1,7 @@
<div class="about-author is-clearfix mt-2"> <div class="cf mt2">
<h2>About the Author</h2> <h2>About the Author</h2>
<img src="{{ site.images_url }}{{ site.avatar.url }}" alt="Picture of Oliver" class="is-circle is-pulled-left mr-1 mb-1"> <img src="{{ site.images_url }}{{ site.avatar.url }}" alt="Picture of Oliver" class="w3 mr3 br-100 fl">
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a {{ site.work.role }} at <a href="{{ site.companies[site.work.company].url }}">{{ site.companies[site.work.company].name }}</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p> <p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a {{ site.work.role }} at <a href="{{ site.companies[site.work.company].url }}">{{ site.companies[site.work.company].name }}</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
</div> </div>

View file

@ -1,4 +1,8 @@
{% set title_tag = title_tag ?: 'h1' %} {% set title_tag = title_tag ?: 'h1' %}
<{{ title_tag }}>{{ page.title }}</{{ title_tag }}> <{{ title_tag }} class="mb1">
{{ page.title }}
</{{ title_tag }}>
<p class="posted">{{ page.date|date('jS F Y') }}</p> <p class="mt0 black-50">
{{ page.date|date('jS F Y') }}
</p>

View file

@ -1,5 +1,5 @@
{% if page.blocks.intro_image %} {% if page.blocks.intro_image %}
<div class="has-text-centered"> <div class="mv3 tc">
{{ page.blocks.intro_image|raw }} {{ page.blocks.intro_image|raw }}
</div> </div>
{% endif %} {% endif %}

View file

@ -1,15 +1,15 @@
<div class="post-pager is-clearfix is-flex mt-2"> <div class="flex mt3">
{% if page.previous_post %} {% if page.previous_post %}
<div class="is-half flex"> <div class="w-50-ns">
<a href="{{ page.previous_post.url }}"> <a href="{{ page.previous_post.url }}" class="blue1">
&laquo; {{ page.previous_post.title }} &laquo; {{ page.previous_post.title }}
</a> </a>
</div> </div>
{% endif %} {% endif %}
{% if page.next_post %} {% if page.next_post %}
<div class="is-half flex has-text-right"> <div class="w-50-ns tr">
<a href="{{ page.next_post.url }}"> <a href="{{ page.next_post.url }}" class="blue1">
{{ page.next_post.title }} &raquo; {{ page.next_post.title }} &raquo;
</a> </a>
</div> </div>

View file

@ -1,18 +1,15 @@
{% if data.posts and page.url != '/blog' %} {% if data.posts and page.url != '/blog' %}
<div class="latest-posts panel panel-default"> <div class="lh-copy">
<div class="latest-posts__heading panel-heading">Latest blog posts</div> <h2>Latest blog posts</h2>
{% for post in data.posts|slice(0, site.latest_posts) %} <ul class="list pa0">
<div class="post panel-block"> {% for post in data.posts|slice(0, site.latest_posts) %}
<div> <li>
<span class="post__title"> <a href="{{ post.url }}">
<a href="{{ post.url }}"> {{ post.title }}
{{ post.title }} </a>
</a> </li>
</span> - {% endfor %}
<span class="post__date">{{ post.date|date(site.default_date_format) }}</span> </ul>
</div>
</div>
{% endfor %}
</div> </div>
{% endif %} {% endif %}

View file

@ -1,17 +1,17 @@
<div class="table-responsive"> <div class="table-responsive">
<table class="talks-table table is-striped"> <table class="w-100 ba b--moon-gray">
<thead> <thead>
<tr> <tr class="striped--light-gray">
<th style="width: 20%">Date</th> <th class="w-20 pa2 tl">Date</th>
{% if not talk_page %} {% if not talk_page %}
<th style="width: 40%">Talk</th> <th class="w-40 pa2 tl">Talk</th>
{% endif %} {% endif %}
<th>Event</th> <th class="pa2 tl">Event</th>
{% if not upcoming %} {% if not upcoming %}
<th style="width: 10%">Feedback</th> <th class="w-12 pa2 tl">Feedback</th>
{% endif %} {% endif %}
</tr> </tr>
</thead> </thead>
@ -23,54 +23,52 @@
{% for item in row.talks if key == item.filename|split('.')|first %} {% for item in row.talks if key == item.filename|split('.')|first %}
{% set talk = item %} {% set talk = item %}
{% endfor %} {% endfor %}
<tr> <tr class="striped--near-white">
<td class="vertical-middle"> <td class="pa2">
{{ row.date.date|date(row.date.fuzzy_date ? 'F Y' : 'j F Y') }} {{ row.date.date|date(row.date.fuzzy_date ? 'F Y' : 'j F Y') }}
{% if row.date.time %} {% if row.date.time %}
<small class="is-block">{{ row.date.time }}</small> <small class="db">{{ row.date.time }}</small>
{% endif %} {% endif %}
</td> </td>
{% if not talk_page %} {% if not talk_page %}
<td> <td class="pa2">
{% if row.date.talk.title is defined %} {% if row.date.talk.title is defined %}
{{ row.date.talk.title }} {{ row.date.talk.title }}
{% else %} {% else %}
<a href="{{ talk.url }}">{{ talk.title }}</a> <a href="{{ talk.url }}" class="blue">{{ talk.title }}</a>
{% endif %} {% endif %}
<small class="is-block"> <small class="db">
{{ row.date.talk.type ?: talk.type }} {{ row.date.talk.type ?: talk.type }}
</small> </small>
</td> </td>
{% endif %} {% endif %}
<td class="vertical-middle"> <td class="pa2">
{% if row.event.website %} {% if row.event.website %}
<a href="{{ row.event.website }}"> <a href="{{ row.event.website }}" class="blue">
{{ row.event.name }} {{ row.event.name }}
</a> </a>
{% else %} {% else %}
{{ row.event.name }} {{ row.event.name }}
{% endif %} {% endif %}
<small class="is-block"> <small class="db">
{{ row.event.location }} {{ row.event.location }}
</small> </small>
</td> </td>
{% if not upcoming %} {% if not upcoming %}
<td class="vertical-middle"> <td class="">
{% if row.date.feedback %} {% if row.date.feedback %}
<a <a
href="{{ row.date.feedback }}" href="{{ row.date.feedback }}"
class="button is-primary" class="bg-blue br2 pa2 white-90 no-underline dib dim"
title="Read or leave feedback for this talk" title="Read or leave feedback for this talk"
> >
<!-- <span class="icon is-small"> <i class="fa fa-comment-o mr1"></i>
<i class="fa fa-comment-o" style="margin-right: 8px"></i>
</span> -->
joind.in joind.in
</a> </a>
{% endif %} {% endif %}

View file

@ -24,20 +24,20 @@
<link rel="icon" href="{{ site.avatar.url }}?s={{ size }}" sizes="{{ size }}x{{ size }}"> <link rel="icon" href="{{ site.avatar.url }}?s={{ size }}" sizes="{{ size }}x{{ size }}">
{% endfor %} {% endfor %}
</head> </head>
<body class="{{ page.blocks.body_classes }}"> <body class="helvetica black-90 {{ page.blocks.body_classes }}">
{% include 'nav' %} {% include 'nav' %}
<section class="section"> <div class="ph3 ph5-l">
<div class="container"> <div class="f6">
<div class="columns"> <div class="flex-l">
<main class="content column is-9"> <main class="w-75-l pr4 lh-copy">
{% block content_top %}{% endblock %} {% block content_top %}{% endblock %}
{% block content_wrapper %}{% block content %}{% endblock %}{% endblock %} {% block content_wrapper %}{% block content %}{% endblock %}{% endblock %}
{% block content_bottom %}{% endblock %} {% block content_bottom %}{% endblock %}
</main> </main>
{% block sidebar_wrapper %} {% block sidebar_wrapper %}
<div class="column is-3"> <div class="w-25-l ph3">
{% block sidebar %} {% block sidebar %}
{% include 'badges' %} {% include 'badges' %}
{% include 'availability' %} {% include 'availability' %}
@ -45,20 +45,17 @@
{% endblock %} {% endblock %}
</div> </div>
{% endblock %} {% endblock %}
</div>
</div>
</div>{# .row #} <footer class="mt4 bt b--moon-gray">
</div>{# .container #} <p class="f6">
</section>
<section class="section">
<footer class="container content">
<p class="copyright">
&copy; 2010-{{ 'now'|date('Y') }} {{ site.title }}. Built with <a href="https://sculpin.io">Sculpin</a>, <a href="http://bulma.io">Bulma</a> and <a href="https://gulpjs.com">Gulp</a>. &copy; 2010-{{ 'now'|date('Y') }} {{ site.title }}. Built with <a href="https://sculpin.io">Sculpin</a>, <a href="http://bulma.io">Bulma</a> and <a href="https://gulpjs.com">Gulp</a>.
</p> </p>
{% include 'meetups' %} {% include 'meetups' %}
</footer> </footer>
</section> </div>
<script src="{{ site.url }}/assets/js/main.js"></script> <script src="{{ site.url }}/assets/js/main.js"></script>

View file

@ -8,7 +8,7 @@
</div> </div>
{% if page.slides.embed %} {% if page.slides.embed %}
<div class="mt-2"> <div class="mt2">
<h2>Slides</h2> <h2>Slides</h2>
<div class="talk-slides"> <div class="talk-slides">
{{ page.slides.embed|raw }} {{ page.slides.embed|raw }}
@ -17,15 +17,16 @@
{% endif %} {% endif %}
{% if page.video.embed %} {% if page.video.embed %}
<div class="mt-2"> <div class="mt2">
<h2>Video</h2> <h2>Video</h2>
<div class="embed-container">
<div class="video w-100 relative">
{{ page.video.embed|raw }} {{ page.video.embed|raw }}
</div> </div>
</div> </div>
{% endif %} {% endif %}
<div class="mt-3"> <div class="mt4">
<h2>Events</h2> <h2>Events</h2>
{% set events = [] %} {% set events = [] %}

View file

@ -16,9 +16,7 @@ meta:
slug: drupalcamp-bristol-early-bird-tickets-sessions-sponsors slug: drupalcamp-bristol-early-bird-tickets-sessions-sponsors
--- ---
{% block intro_image %} {% block intro_image %}
<div class="has-text-centered"> <img src="/assets/images/blog/drupalcamp-bristol-17-logo.jpg" alt="DrupalCamp Bristol 2017 logo">
<img src="/assets/images/blog/drupalcamp-bristol-17-logo.jpg" alt="DrupalCamp Bristol 2017 logo">
</div>
{% endblock %} {% endblock %}
{% block excerpt %} {% block excerpt %}

View file

@ -11,11 +11,7 @@ meta:
width: 451 width: 451
--- ---
{% block intro_image %} {% block intro_image %}
<img <img src="/assets/images/blog/jackson-octocat.png" alt="">
src="/assets/images/blog/jackson-octocat.png"
alt=""
class="mb-2"
>
{% endblock %} {% endblock %}
{% block excerpt %} {% block excerpt %}

View file

@ -9,9 +9,9 @@ use: [posts]
{% block content %} {% block content %}
<h1>Blog</h1> <h1>Blog</h1>
<ul class="posts list-style-none"> <ul class="list pa0 ma0">
{% for post in page.pagination.items %} {% for post in page.pagination.items %}
<li class="post is-clearfix mb-2 pb-3"> <li class="cf mb2 pb4 bb b--light-silver">
{{ include('post/header', { {{ include('post/header', {
page: post, page: post,
title_tag: 'h2' title_tag: 'h2'
@ -42,8 +42,6 @@ use: [posts]
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block body_classes 'page--blog page--blog__list' %}
{% block stylesheets %} {% block stylesheets %}
<link rel="stylesheet" href="{{ site.url }}/assets/css/blog.css"> <link rel="stylesheet" href="{{ site.url }}/assets/css/blog.css">
{% endblock %} {% endblock %}

View file

@ -7,42 +7,21 @@ use: [posts]
<p>To send me an email, complete the form below.</p> <p>To send me an email, complete the form below.</p>
<form action="https://formspree.io/{{ site.email }}" method="POST"> <form action="https://formspree.io/{{ site.email }}" method="POST">
<div class="form__name field"> <label for="name" class="db mb1">Name</label>
<label for="name">Name</label> <input type="text" class="w-100 pa2 mb3 ba b--black-50" name="name" required>
<div class="control">
<input type="text" class="input" name="name" required>
</div>
</div>
<div class="form__email field"> <label for="email" class="db mb1">Email</label>
<label for="email">Email</label> <input type="email" class="w-100 pa2 mb3 ba b--black-50" name="email" required>
<div class="control">
<input type="email" class="input" name="email" required>
</div>
</div>
<div class="form__subject field"> <label for="subject" class="db mb1">Subject</label>
<label for="subject">Subject</label> <input type="text" class="w-100 pa2 mb3 ba b--black-50" name="subject" required>
<div class="control">
<input type="text" class="input" name="subject" required>
</div>
</div>
<div class="field"> <label for="message" class="db mb1">Message</label>
<div class="control"> <textarea name="message" class="w-100 pa2 mb3 ba b--black-50" rows="5" required></textarea>
<label for="message">Message</label>
<textarea name="message" class="textarea" rows="5" required></textarea>
</div>
</div>
<div class="form__actions"> <button class="b ph3 pv2 input-reset ba b--black bg-transparent pointer f6" type="submit">
<button class="button is-primary" type="submit"> Send email
<span class="icon is-small" style="margin-right: 5px"> </button>
<i class="fa fa-send"></i>
</span>
Send email
</button>
</div>
<input type="hidden" name="_next" value="{{ site.url }}/contact-thanks/" /> <input type="hidden" name="_next" value="{{ site.url }}/contact-thanks/" />

View file

@ -12,29 +12,31 @@ redirect:
{% for experience in site.experiences|reverse %} {% for experience in site.experiences|reverse %}
{% set company = site.companies[experience.company] %} {% set company = site.companies[experience.company] %}
<div class="experience-item{% if company.logo %} has-logo{% endif %} mb-3"> <div class="mb4">
{% if company.logo %} {% if company.logo %}
<div class="experience-item-logo"> <div class="fr mb3 ml3 mt2">
<img src="{{ site.images_url }}/assets/images/experience/{{ company.logo }}" alt="{{ company.name }} logo"> <img src="{{ site.images_url }}/assets/images/experience/{{ company.logo }}" alt="{{ company.name }} logo" class="mw4">
</div> </div>
{% endif %} {% endif %}
<div class="experience-item-inner"> <div class="experience-item-inner">
<h2 class="is-marginless">{{ company.name }}</h2> <h2 class="mb0">{{ company.name }}</h2>
{% if company.url -%} <div class="mb3">
<a class="experience-item-website is-inline-block" href="{{ company.url }}"> {% if company.url -%}
{{- company.url -}} <a class="dib mb1 blue1" href="{{ company.url }}">
</a> {{- company.url -}}
{%- endif %} </a>
{%- endif %}
<div class="experience-item-role text-light"> <div class="black-50">
{{- experience.role }} {{- experience.role }}
from from
{{ experience.start }} {{ experience.start }}
to to
{{ experience.end|default('Present') -}} {{ experience.end|default('Present') -}}
{%- if experience.location %} ({{ experience.location }}){% endif %}. {%- if experience.location %} ({{ experience.location }}){% endif %}.
</div>
</div> </div>
{% if experience.description %} {% if experience.description %}

View file

@ -10,12 +10,11 @@ meta:
use: [posts, testimonials] use: [posts, testimonials]
redirect: redirect:
- about/ - about/
- consulting/
--- ---
{% block content %} {% block content %}
# About Me # About Me
<img src="{{ site.images_url }}{{ site.avatar.url }}" alt="Picture of Oliver" class="me is-circle is-marginless"> <img src="{{ site.images_url }}{{ site.avatar.url }}" alt="Picture of Oliver" class="br-100 mw4">
My name is Oliver Davies (aka [opdavies][1]) - a full-stack Web Developer and System Administrator based in Wales, UK. My name is Oliver Davies (aka [opdavies][1]) - a full-stack Web Developer and System Administrator based in Wales, UK.

View file

@ -2,27 +2,90 @@
layout: page layout: page
title: Testimonials title: Testimonials
use: [posts] use: [posts]
testimonials:
- name: Ed Welsby
image: ed-welsby.png
role: Senior Developer at <a class="blue1 hover-blue2" href="http://www.proctors.co.uk">Proctor & Stevenson</a>
text: |
Oliver was great to work with, he has a solid knowledge of the various aspects of web development and never minded helping me out with Linux commands!
- name: Brian Healy
image: brian-healy.png
role: Director of Business Development at <a class="blue1 hover-blue2" href="http://tincan.co.uk">Tincan</a>.
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: Marlon Duncanson
role: 'Brand & Web Specialist'
text: |
Oliver is a great guy and really easy to work with. He really goes the extra mile to make sure the project is done properly. I would recommend him and will not hesitate to use him again in future.
- name: Brian Hartwell
role: Interactive Creative Director
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: Daniel Easterbrook
role: Digital Strategy Consultant
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: James Chapman
role: Director at <a class="blue1 hover-blue2" href="http://www.developmentdoneright.co.uk">Development Done Right</a>
image: james-chapman.png
text: |
We used Oliver on a number of occasions throughout 2012 and I have to say we've been delighted with his work. His skills working with Drupal are excellent particularly with custom module development and we wouldnt hesitate to recommend him others.
- name: Léonie Watson
role: >
Director of Accessibility at <a class="blue1 hover-blue2" href="http://www.nomensa.com">Nomensa</a>
image: leonie-watson.jpg
text: |
Oliver is a flexible and hardworking developer, with a terrific knowledge of Drupal. He promotes accessibility best practice within the Drupal community, and is always happy to share his knowledge with other people.
- name: Holly Ross
role: >
Executive Director at the <a class="blue1 hover-blue2" href="https://assoc.drupal.org">Drupal Association</a>
image: holly-ross.png
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: Josh Mitchell
role: CTO at the <a class="blue1 hover-blue2" href="https://assoc.drupal.org">Drupal Association</a>
image: josh-mitchell.png
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: Chris Jarvis
image: chris-jarvis.jpg
role: Developer at <a class="blue1 hover-blue2" href="https://microserve.io">Microserve</a>
text: |
Oliver is an amazing colleague, he's professional, full of knowledge and I could not recommend him more.
--- ---
{% block content %} {% block content %}
{% for testimonial in site.testimonials|reverse %} {% for testimonial in page.testimonials|reverse %}
<article class="is-clearfix mb-3"> <article class="cf mb4">
<h2 class="is-marginless">{{ testimonial.name }}</h2> <h2 class="mb1 mt0">{{ testimonial.name }}</h2>
{% if testimonial.image %} {% if testimonial.image %}
<img <img
src="{{ site.url }}/assets/images/testimonials/{{ testimonial.image }}" src="{{ site.url }}/assets/images/testimonials/{{ testimonial.image }}"
class="testimonial-image is-pulled-right is-circle ml-2 mb-1" class="fr mw3 br-100 ml4 mb4"
alt="{{ testimonial.name }}" alt="{{ testimonial.name }}"
> >
{% endif %} {% endif %}
{% if testimonial.role %} {% if testimonial.role %}
<div class="text-light"> <div class="black-50 mt0">
{{ testimonial.role|markdown }} {{ testimonial.role|raw }}
</div> </div>
{% endif %} {% endif %}
<div class="mt-1"> <div>
{{ testimonial.text|markdown }} {{ testimonial.text|markdown }}
</div> </div>
</article> </article>

View file

@ -2819,7 +2819,13 @@ supports-color@^4.2.0:
dependencies: dependencies:
has-flag "^2.0.0" has-flag "^2.0.0"
tachyons: tachyons-sass:
version "4.7.4"
resolved "https://registry.yarnpkg.com/tachyons-sass/-/tachyons-sass-4.7.4.tgz#47199472f444f1451692ec4509c5da700569ea57"
dependencies:
tachyons "^4.7.4"
tachyons@^4.7.4:
version "4.8.1" version "4.8.1"
resolved "https://registry.yarnpkg.com/tachyons/-/tachyons-4.8.1.tgz#9a3183feecb3240c4dcefee7feecc8259acd7381" resolved "https://registry.yarnpkg.com/tachyons/-/tachyons-4.8.1.tgz#9a3183feecb3240c4dcefee7feecc8259acd7381"