Refactor events and talks

This commit is contained in:
Oliver Davies 2017-07-09 09:15:27 +01:00
parent af663e2397
commit 20c8f2d834
29 changed files with 309 additions and 251 deletions

View file

@ -1,3 +1,6 @@
.bg-red
background: red
body body
padding-top: 60px padding-top: 60px

View file

@ -16,6 +16,6 @@
.list-style-none .list-style-none
list-style: none list-style: none
@each $value in 'block' 'inline' 'inline-block' @each $value in 'block', 'inline', 'inline-block'
.display-#{$value} .display-#{$value}
display: #{$value} display: #{$value}

View file

@ -3,13 +3,6 @@
& > tbody > tr > td & > tbody > tr > td
vertical-align: middle vertical-align: middle
.column-date,
.column-event
width: 200px
.column-feedback
width: 125px
.talk-type, .talk-type,
.event-location .event-location
display: block display: block

View file

@ -1,80 +1,191 @@
events: events:
drupal-bristol: events:
title: Drupal Bristol drupal-bristol:
location: 'Bristol, UK' name: Drupal Bristol
url: 'https://www.drupalbristol.org.uk' location: Bristol, UK
website: https://www.drupalbristol.org.uk
drupalcamp-brighton-15: drupalcamp-brighton-15:
title: DrupalCamp Brighton 2015 name: DrupalCamp Brighton 2015
location: 'Brighton, UK' location: Brighton, UK
url: ~ website: ~
drupalcamp-bristol-16: drupalcamp-bristol-16:
title: DrupalCamp Bristol 2016 name: DrupalCamp Bristol 2016
location: 'Bristol, UK' location: Bristol, UK
url: 'https://www.drupalcampbristol.org.uk' website: https://2016.drupalcampbristol.org.uk
drupalcamp-london-14: drupalcamp-london-14:
title: DrupalCamp London 2014 name: DrupalCamp London 2014
location: 'London, UK' location: London, UK
url: ~ website: ~
drupalcamp-london-15: drupalcamp-london-15:
title: DrupalCamp London 2015 name: DrupalCamp London 2015
location: 'London, UK' location: London, UK
url: ~ website: ~
drupalcamp-london-16: drupalcamp-london-16:
title: DrupalCamp London 2016 name: DrupalCamp London 2016
location: 'London, UK' location: London, UK
url: ~ website: ~
drupalcamp-london-17: drupalcamp-london-17:
title: DrupalCamp London 2017 name: DrupalCamp London 2017
location: 'London, UK' location: London, UK
url: 'https://drupalcamp.london' website: http://drupalcamp.london
drupalcamp-north-15: drupalcamp-north-15:
title: DrupalCamp North 2015 name: DrupalCamp North 2015
location: 'Sunderland, UK' location: Sunderland, UK
url: 'http://drupalcampnorth.org' website: http://drupalcampnorth.org
nomad_php: nomad-php:
title: Nomad PHP name: Nomad PHP
location: Online location: Online
url: 'https://nomadphp.com' website: https://nomadphp.com
nwdug: nwdug:
title: NWDUG name: NWDUG
location: 'Manchester, UK' location: Manchester, UK
url: 'http://nwdrupal.org.uk' website: http://nwdrupal.org.uk
phpnw-17: phpnw17:
title: PHP North West 2017 name: PHP North West 2017
location: 'Manchester, UK' location: Manchester, UK
url: 'http://conference.phpnw.org.uk/phpnw17' website: http://conference.phpnw.org.uk/phpnw17
phpsc-16: phpsc16:
title: PHP South Coast 2016 name: PHP South Coast 2016
location: 'Portsmouth, UK' location: Portsmouth, UK
url: 'http://2016.phpsouthcoast.co.uk' website: http://2016.phpsouthcoast.co.uk
phpsw: phpsw:
title: PHPSW name: PHPSW
location: 'Bristol, UK' location: Bristol, UK
url: 'https://phpsw.uk' website: https://phpsw.uk
swdug: swdug:
title: SWDUG name: SWDUG
location: 'Cardiff, UK' location: Cardiff, UK
url: ~ website: ~
udiff: umbristol:
title: Unified Diff name: umBristol
location: 'Cardiff, UK' location: Bristol, UK
url: 'http://unifieddiff.co.uk' website: http://umbristol.co.uk
umbristol: unifieddiff:
title: umBristol name: 'unified.diff'
location: 'Bristol, UK' location: Cardiff, UK
url: 'http://umbristol.co.uk' website: http://unifieddiff.co.uk
dates:
- event: unifieddiff
date: '2012-09-05'
talk: what-is-this-drupal-thing
- event: swdug
date: '2013-07-10'
talk:
title: Drupal and the LDAP Module
type: Talk
- event: drupalcamp-london-14
date: '2014-03-01'
talk: git-flow
- event: drupal-bristol
date: '2014-08-19'
talk: drush-make-drupalbristol
- event: swdug
date: '2014-08-19'
talk:
title: About the Drupal Association
type: Talk
- event: drupalcamp-brighton-15
date: '2015-01-18'
talk: drupalorg-2015
- event: drupalcamp-london-15
date: '2015-02-28'
talk: drupalorg-2015
- event: phpsw
date: '2015-04-08'
talk: drupal-8
- event: drupalcamp-north-15
date: '2015-07-25'
talk: test-drive-twig-with-sculpin
- event: umbristol
date: '2015-08-25'
talk: dancing-for-drupal
- event: phpsw
date: '2015-10-14'
talk: sculpin
feedback: https://joind.in/talk/view/15486
- event: drupalcamp-london-16
date: '2016-03-05'
talk: drupal-8-module-development
- event: nwdug
date: '2016-03-08'
talk: drupal-vm-generator
- event: drupal-bristol
date: '2016-04-02'
talk: drupal-vm-generator
- event: phpsc16
date: '2016-06-11'
talk: drupal-8-rejoining-the-herd
feedback: https://joind.in/talk/41d0f
- event: drupalcamp-bristol-16
date: '2016-07-23'
talk: drupal-vm-meet-symfony-console
- event: phpsw
date: '2016-11-09'
talk: drupal-development-with-composer
- event: drupal-bristol
date: '2016-11-17'
talk: goodbye-drush-make-hello-composer
- event: drupal-bristol
date: '2017-01-18'
talk: getting-your-data-into-drupal-8
- event: phpsw
date: '2016-02-08'
talk: it-all-started-with-a-patch
feedback: https://joind.in/event/phpsw-new-skills-february-17/it-started-with-a-patch
- event: drupalcamp-london-17
date: '2017-03-04'
time: '16:15 - 17:00'
talk: test-driven-drupal-simpletest-phpunit
- event: drupalcamp-london-17
date: '2017-03-04'
time: '12:05 - 12:50'
talk: getting-your-data-into-drupal-8
- event: nomad-php
date: '2017-04-20'
time: '19:00 (CET)'
talk:
id: deploying-php-with-fabric
type: Lightning talk
- event: phpnw17
date: '2017-10-01'
fuzzy_date: yes
talk: deploying-php-with-fabric

View file

@ -1,75 +1,63 @@
<div class="table-responsive"> <div class="table-responsive">
<table class="talk-event-table table table-striped"> <table class="table table-striped">
<thead> <thead>
<tr> <tr>
<th class="column-date">Date</th> <th style="width: 20%">Date</th>
{% if not hide_talk %}<th>Talk</th>{% endif %} {% if not talk_page %}<th style="width: 40%">Talk</th>{% endif %}
<th class="column-event">Event</th> <th>Event</th>
{% if not hide_feedback %}<th class="column-feedback">Feedback</th>{% endif %} {% if not upcoming %}<th style="width: 10%">Feedback</th>{% endif %}
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for event in events %} {% for row in events %}
{% set talk = false %}
{% set key = row.date.talk.id ?: row.date.talk %}
{% for item in row.talks if key == item.filename|split('.')|first %}
{% set talk = item %}
{% endfor %}
<tr> <tr>
<td class="column-date"> <td>
<div class="event-date display-block"> {{ row.date.date|date(row.date.fuzzy_date ? 'F Y' : 'j F Y') }}
{% if event.fuzzy_date %} {% if row.date.time %}
{{ event.date|date('F Y') }} <small class="display-block">{{ row.date.time }}</small>
{% else %}
{{ event.date|date('j F Y') }}
{% endif %}
</div>
{% if event.time %}
<small class="talk-type">
{{ event.time }}
</small>
{% endif %} {% endif %}
</td> </td>
{% if not hide_talk %} {% if not talk_page %}
<td> <td>
<div class="display-block"> {% if row.date.talk.title is defined %}
{% if not event.talk.hide_page %} {{ row.date.talk.title }}
<a href="{{ event.talk.url }}"> {% else %}
{{ event.talk.title }} <a href="{{ talk.url }}">{{ talk.title }}</a>
</a>
{% else %}
{{ event.talk.title }}
{% endif %}
</div>
{% if event.talk.type %}
<small class="talk-type">
{{ event.talk.type }}
</small>
{% endif %} {% endif %}
<small class="display-block">
{{ row.date.talk.type ?: talk.type }}
</small>
</td> </td>
{% endif %} {% endif %}
<td class="column-event"> <td>
<div class="display-block"> {% if row.event.website %}
{% if event.url %}<a href="{{ event.url }}">{% endif %} <a href="{{ row.event.website }}">
{{ event.title }} {{ row.event.name }}
{% if event.url %}</a>{% endif %} </a>
</div> {% else %}
{{ row.event.name }}
{% if event.location %}
<small class="event-location">
{{- event.location -}}
</small>
{% endif %} {% endif %}
<small class="display-block">
{{ row.event.location }}
</small>
</td> </td>
{% if not hide_feedback -%} {% if not upcoming %}
<td class="column-feedback"> <td>
{% if event.talk.joindin %} {% if row.date.feedback %}
<a href="{{ event.talk.joindin }}" class="btn btn-primary" title="Read or leave feedback for this talk"> <a href="{{ row.date.feedback }}" class="btn btn-primary" title="Read or leave feedback for this talk">
<i class="fa fa-comment-o"></i> joind.in <i class="fa fa-comment-o"></i> joind.in
</a> </a>
{% endif %} {% endif %}
</td> </td>
{%- endif %} {% endif %}
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>

View file

@ -1,4 +1,5 @@
--- ---
id: dancing-for-drupal
title: Dancing for Drupal title: Dancing for Drupal
type: Talk type: Talk
slides: slides:
@ -6,8 +7,6 @@ slides:
embed: <script async class="speakerdeck-embed" data-id="ffa9b6dea6dc4a8eb207b9982ed6e1bd" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script> embed: <script async class="speakerdeck-embed" data-id="ffa9b6dea6dc4a8eb207b9982ed6e1bd" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script>
tags: [meetup, umbristol, drupal] tags: [meetup, umbristol, drupal]
tweets: yes tweets: yes
events:
- { id: umbristol, date: '2015-08-25' }
--- ---
As part of their [CMS Dance-Off][1], I was selected to speak about Drupal alongside other speakers representing Umbraco, Sitecore and Episerver. As part of their [CMS Dance-Off][1], I was selected to speak about Drupal alongside other speakers representing Umbraco, Sitecore and Episerver.

View file

@ -1,4 +1,5 @@
--- ---
id: deploying-php-with-fabric
title: Deploying PHP Applications with Fabric title: Deploying PHP Applications with Fabric
type: Talk type: Talk
slides: slides:
@ -18,9 +19,6 @@ meta:
width: 1280 width: 1280
height: 800 height: 800
type: image/png type: image/png
events:
- { id: nomad_php, date: '2017-04-20', time: '19:00 (CET)' }
- { id: phpnw-17, date: '2017-09', fuzzy_date: true }
--- ---
Youve built your application, and now you just need to deploy it. There are various ways that this could be done from (S)FTP, to SCP and rsync, to running commands like “git pull” and “composer install” directly on the server (not recommended). Youve built your application, and now you just need to deploy it. There are various ways that this could be done from (S)FTP, to SCP and rsync, to running commands like “git pull” and “composer install” directly on the server (not recommended).

View file

@ -1,4 +1,5 @@
--- ---
id: drupal-8-module-development
title: Getting Started with Drupal 8 Module Development title: Getting Started with Drupal 8 Module Development
type: Talk type: Talk
tags: [conference, php, drupal, drupalcamp, drupal-8] tags: [conference, php, drupal, drupalcamp, drupal-8]
@ -18,9 +19,6 @@ meta:
type: 'image/png' type: 'image/png'
height: 540 height: 540
width: 960 width: 960
events:
- { id: drupalcamp-london-16, date: '2016-03-05' }
--- ---
New to object-orientated PHP, Symfony or YAML, and want to get started building modules in Drupal 8? This is the session for you! New to object-orientated PHP, Symfony or YAML, and want to get started building modules in Drupal 8? This is the session for you!

View file

@ -1,13 +1,11 @@
--- ---
id: drupal-8-rejoining-the-herd
title: Drupal 8: Rejoining the Herd title: Drupal 8: Rejoining the Herd
type: Talk type: Talk
joindin: https://joind.in/talk/41d0f
tags: [conference, php, drupal, drupal-8] tags: [conference, php, drupal, drupal-8]
slides: slides:
url: https://speakerdeck.com/opdavies/drupal-rejoining-the-herd url: https://speakerdeck.com/opdavies/drupal-rejoining-the-herd
embed: <script async class="speakerdeck-embed" data-id="440fd6592f474741bc606c96bc32c104" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script> embed: <script async class="speakerdeck-embed" data-id="440fd6592f474741bc606c96bc32c104" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
events:
- { id: phpsc-16, date: '2016-06-11' }
--- ---
[Drupal 8][0] was (finally) released on November 19th 2015, after almost 4 years of work and code commits by over 3,200 different contributors. Whilst its pretty much the same as the Drupal that we know and, hopefully, love, a lot has changed behind the scenes and under the hood! [Drupal 8][0] was (finally) released on November 19th 2015, after almost 4 years of work and code commits by over 3,200 different contributors. Whilst its pretty much the same as the Drupal that we know and, hopefully, love, a lot has changed behind the scenes and under the hood!

View file

@ -1,4 +1,5 @@
--- ---
id: drupal-8
title: Drupal 8 title: Drupal 8
type: Lightning talk type: Lightning talk
slides: slides:
@ -7,11 +8,8 @@ slides:
video: video:
url: https://www.youtube.com/watch?v=36zCxPrOOzM url: https://www.youtube.com/watch?v=36zCxPrOOzM
embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/36zCxPrOOzM" frameborder="0" allowfullscreen></iframe> embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/36zCxPrOOzM" frameborder="0" allowfullscreen></iframe>
joindin: https://joind.in/talk/view/14380
tags: [meetup, phpsw, drupal, drupal-8] tags: [meetup, phpsw, drupal, drupal-8]
tweets: yes tweets: yes
events:
- { id: phpsw, date: '2015-04-08' }
--- ---
This was a ten minute lightning talk, designed to highlight the major changes coming in Drupal 8. This was a ten minute lightning talk, designed to highlight the major changes coming in Drupal 8.

View file

@ -1,10 +0,0 @@
---
title: About the Drupal Association
type: Talk
tags: [meetup, swdug, drupal, drupal-association]
slug: drupal-association
events:
- { id: swdug, date: '2014-08-19' }
hide_page: true
---
An impromptu talk about the [Drupal Association](https://association.drupal.org), and what Ive been working on since joining the Engineering team earlier in the year.

View file

@ -1,4 +1,5 @@
--- ---
id: drupal-development-with-composer
title: Modern Drupal Development with Composer title: Modern Drupal Development with Composer
type: Lightning talk type: Lightning talk
tags: ['meetups', 'phpsw', 'drupal', 'composer'] tags: ['meetups', 'phpsw', 'drupal', 'composer']
@ -8,8 +9,6 @@ slides:
video: video:
url: https://www.youtube.com/watch?v=Yi_FPI3xHwc url: https://www.youtube.com/watch?v=Yi_FPI3xHwc
embed: '<iframe width="560" height="315" src="https://www.youtube.com/embed/Yi_FPI3xHwc" frameborder="0" allowfullscreen></iframe>' embed: '<iframe width="560" height="315" src="https://www.youtube.com/embed/Yi_FPI3xHwc" frameborder="0" allowfullscreen></iframe>'
events:
- { id: phpsw, date: '2016-11-09' }
--- ---
Building a Drupal application? You no longer need to download archives to add new modules or update core, or deal with Drupal specific tools to manage your codebase. Building a Drupal application? You no longer need to download archives to add new modules or update core, or deal with Drupal specific tools to manage your codebase.

View file

@ -1,10 +0,0 @@
---
title: Drupal and the LDAP Module
type: Talk
tags: [meetup, swdug, drupal, ldap]
slug: drupal-ldap
logo: assets/images/talks/logos/swdug.png
events:
- { id: swdug, date: '2013-07-10' }
hide_page: true
---

View file

@ -1,4 +1,5 @@
--- ---
id: drupal-vm-generator
title: Drupal VM Generator title: Drupal VM Generator
type: Lightning talk type: Lightning talk
code: https://github.com/opdavies/drupal-vm-generator code: https://github.com/opdavies/drupal-vm-generator
@ -9,9 +10,6 @@ slides:
video: video:
url: https://youtu.be/U1pbKAAO2Wo?t=3696 url: https://youtu.be/U1pbKAAO2Wo?t=3696
embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/U1pbKAAO2Wo?start=3696" frameborder="0" allowfullscreen></iframe> embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/U1pbKAAO2Wo?start=3696" frameborder="0" allowfullscreen></iframe>
events:
- { id: nwdug, date: '2016-03-08' }
- { id: drupal-bristol, date: '2016-04-02' }
--- ---
An short talk about the [Drupal VM Generator][1] project. An short talk about the [Drupal VM Generator][1] project.

View file

@ -1,4 +1,5 @@
--- ---
id: drupal-vm-meet-symfony-console
title: Drupal VM, Meet Symfony Console title: Drupal VM, Meet Symfony Console
type: Talk type: Talk
tags: [conference, php, drupal-vm, symfony] tags: [conference, php, drupal-vm, symfony]
@ -6,8 +7,6 @@ slides:
url: https://speakerdeck.com/opdavies/drupal-vm-meet-symfony-console url: https://speakerdeck.com/opdavies/drupal-vm-meet-symfony-console
embed: <script async class="speakerdeck-embed" data-id="56c79770f73f4e47a542a30243437c49" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script> embed: <script async class="speakerdeck-embed" data-id="56c79770f73f4e47a542a30243437c49" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
image: drupal-vm-meet-symfony-console.png image: drupal-vm-meet-symfony-console.png
events:
- { id: drupalcamp-bristol-16, date: '2016-07-23' }
--- ---
_TL;DR - Come and learn about Symfony Console, with examples from a real-world project._ _TL;DR - Come and learn about Symfony Console, with examples from a real-world project._

View file

@ -1,11 +1,9 @@
--- ---
id: drupalorg-2015
title: Drupal.org in 2015: What's Coming Next title: Drupal.org in 2015: What's Coming Next
type: Talk type: Talk
tags: [conference, drupalcamp, drupalcamp-london, drupal-association] tags: [conference, drupalcamp, drupalcamp-london, drupal-association]
slides: slides:
url: https://speakerdeck.com/opdavies/drupal-dot-org-in-15 url: https://speakerdeck.com/opdavies/drupal-dot-org-in-15
embed: <script async class="speakerdeck-embed" data-id="0cf8d7b647c94ae289e9db2b46a9e8f2" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script> embed: <script async class="speakerdeck-embed" data-id="0cf8d7b647c94ae289e9db2b46a9e8f2" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
events:
- { id: drupalcamp-brighton-15, date: '2015-01-18' }
- { id: drupalcamp-london-15, date: '2015-02-28' }
--- ---

View file

@ -1,10 +1,9 @@
--- ---
id: drush-make-drupalbristol
title: drush make drupalbristol title: drush make drupalbristol
type: Talk type: Talk
slides: slides:
url: https://speakerdeck.com/opdavies/drush-make-drupalbristol url: https://speakerdeck.com/opdavies/drush-make-drupalbristol
embed: <script async class="speakerdeck-embed" data-id="42605700f102013198de5a5f6f23ab67" data-ratio="1.29456384323641" src="//speakerdeck.com/assets/embed.js"></script> embed: <script async class="speakerdeck-embed" data-id="42605700f102013198de5a5f6f23ab67" data-ratio="1.29456384323641" src="//speakerdeck.com/assets/embed.js"></script>
tags: [meetup, drupal, drupal-bristol, drush, drush-make] tags: [meetup, drupal, drupal-bristol, drush, drush-make]
events:
- { id: drupal-bristol, date: '2014-07-02' }
--- ---

View file

@ -1,4 +1,5 @@
--- ---
id: getting-your-data-into-drupal-8
title: Getting (Your Data) Into Drupal 8 title: Getting (Your Data) Into Drupal 8
type: Talk type: Talk
slides: slides:
@ -18,9 +19,6 @@ meta:
width: 2560 width: 2560
height: 1440 height: 1440
type: image/png type: image/png
events:
- { id: drupal-bristol, date: '2017-01-18' }
- { id: drupalcamp-london-17, date: '2017-03-04', time: '12:05 - 12:50' }
--- ---
If youve moved a site from Drupal 6 to 7, the chances are that youve either used the upgrade path to update your old site in-place, or you built a new site from scratch and used the Migrate module from contrib to migrate your data from the old database. If youve moved a site from Drupal 6 to 7, the chances are that youve either used the upgrade path to update your old site in-place, or you built a new site from scratch and used the Migrate module from contrib to migrate your data from the old database.

View file

@ -1,4 +1,5 @@
--- ---
id: git-flow
title: Never Commit to Master - An Introduction to Git Flow title: Never Commit to Master - An Introduction to Git Flow
type: Talk type: Talk
slides: slides:
@ -10,6 +11,4 @@ video:
tags: [conference, drupalcamp, drupalcamp-london, git, git-flow] tags: [conference, drupalcamp, drupalcamp-london, git, git-flow]
slug: git-flow slug: git-flow
tweets: yes tweets: yes
events:
- { id: drupalcamp-london-14, date: '2014-03-01' }
--- ---

View file

@ -1,12 +1,11 @@
--- ---
id: goodbye-drush-make-hello-composer
title: Goodbye Drush Make. Hello Composer! title: Goodbye Drush Make. Hello Composer!
type: Talk type: Talk
tags: ['meetup', 'drupal', 'composer'] tags: ['meetup', 'drupal', 'composer']
slides: slides:
url: http://bit.ly/slides-goodbye-drush-make-hello-composer2 url: http://bit.ly/slides-goodbye-drush-make-hello-composer2
embed: '<script async class="speakerdeck-embed" data-id="1c1e0e129ab34816bd4c4edb5f6642c2" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>' embed: '<script async class="speakerdeck-embed" data-id="1c1e0e129ab34816bd4c4edb5f6642c2" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>'
events:
- { id: drupal-bristol, date: '2016-11-17' }
--- ---
One of the main outcomes of Drupal 8 was “getting off the island” with third-party code included in core and adopting modern best practices from the wider PHP ecosystem - including [Composer][1], PHPs dependency manager. One of the main outcomes of Drupal 8 was “getting off the island” with third-party code included in core and adopting modern best practices from the wider PHP ecosystem - including [Composer][1], PHPs dependency manager.

View file

@ -1,4 +1,5 @@
--- ---
id: it-all-started-with-a-patch
title: It All Started With A Patch title: It All Started With A Patch
type: Lightning talk type: Lightning talk
tags: [meetup, phpsw, open-source] tags: [meetup, phpsw, open-source]
@ -8,8 +9,5 @@ slides:
video: video:
url: https://www.youtube.com/watch?v=5FYMRR61sdo url: https://www.youtube.com/watch?v=5FYMRR61sdo
embed: '<iframe width="560" height="315" src="https://www.youtube.com/embed/5FYMRR61sdo" frameborder="0" allowfullscreen></iframe>' embed: '<iframe width="560" height="315" src="https://www.youtube.com/embed/5FYMRR61sdo" frameborder="0" allowfullscreen></iframe>'
joindin: https://joind.in/event/phpsw-new-skills-february-17/it-started-with-a-patch
events:
- { id: phpsw, date: '2017-02-08' }
--- ---
A crash course of why and how to get involved with open source. A crash course of why and how to get involved with open source.

View file

@ -1,18 +1,16 @@
--- ---
id: sculpin
title: Building Static Websites with Sculpin title: Building Static Websites with Sculpin
type: Lightning talk type: Lightning talk
slides: slides:
url: https://speakerdeck.com/opdavies/building-static-websites-with-sculpin url: https://speakerdeck.com/opdavies/building-static-websites-with-sculpin
embed: <script async class="speakerdeck-embed" data-id="6c9c4be1a1344f1291ff13a391674a66" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script> embed: <script async class="speakerdeck-embed" data-id="6c9c4be1a1344f1291ff13a391674a66" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
code: https://github.com/opdavies/sculpin-demo code: https://github.com/opdavies/sculpin-demo
joindin: https://joind.in/talk/view/15486
tags: [meetups, phpsw, sculpin] tags: [meetups, phpsw, sculpin]
tweets: yes tweets: yes
video: video:
embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/aN53arCKZAU" frameborder="0" allowfullscreen></iframe> embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/aN53arCKZAU" frameborder="0" allowfullscreen></iframe>
url: https://www.youtube.com/watch?v=aN53arCKZAU url: https://www.youtube.com/watch?v=aN53arCKZAU
events:
- { id: phpsw, date: '2015-10-14' }
--- ---
[Sculpin][0] is a static site generator written in PHP. It converts Markdown files, Twig templates and standard HTML into a static HTML site that can be easily deployed. [Sculpin][0] is a static site generator written in PHP. It converts Markdown files, Twig templates and standard HTML into a static HTML site that can be easily deployed.

View file

@ -1,4 +1,5 @@
--- ---
id: test-drive-twig-with-sculpin
title: Test Drive Twig with Sculpin title: Test Drive Twig with Sculpin
type: Talk type: Talk
slides: slides:
@ -7,8 +8,6 @@ slides:
code: https://github.com/opdavies/sculpin-demo code: https://github.com/opdavies/sculpin-demo
tags: [conference, drupalcamp, drupalcamp-north, sculpin, twig] tags: [conference, drupalcamp, drupalcamp-north, sculpin, twig]
tweets: yes tweets: yes
events:
- { id: drupalcamp-north-15, date: '2015-07-25' }
--- ---
[Sculpin][1] is a static site generator written in PHP, and based on [Symfony components][2]. It uses [YAML][3] and [Twig][4], which makes it very appealing to Drupal people wanting to learn these in preparation for Drupal 8. [Sculpin][1] is a static site generator written in PHP, and based on [Symfony components][2]. It uses [YAML][3] and [Twig][4], which makes it very appealing to Drupal people wanting to learn these in preparation for Drupal 8.

View file

@ -18,8 +18,6 @@ meta:
width: 2560 width: 2560
height: 1440 height: 1440
type: image/png type: image/png
events:
- { id: drupalcamp-london-17, date: '2017-03-04', time: '16:15 - 17:00' }
--- ---
Testing is important. Why? It allows developers to add new features and edit and refactor existing code without the worry of adding regressions, reduces the reliance on manual testing to discover bugs, and by taking a test driven approach, your implementation code is leaner as you only write what is needed for your tests to pass. Testing is important. Why? It allows developers to add new features and edit and refactor existing code without the worry of adding regressions, reduces the reliance on manual testing to discover bugs, and by taking a test driven approach, your implementation code is leaner as you only write what is needed for your tests to pass.

View file

@ -1,10 +1,9 @@
--- ---
id: what-is-this-drupal-thing
title: So, what is this Drupal thing? title: So, what is this Drupal thing?
type: Talk type: Talk
video: video:
url: https://vimeo.com/49827006 url: https://vimeo.com/49827006
embed: <iframe src="https://player.vimeo.com/video/49827006" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> embed: <iframe src="https://player.vimeo.com/video/49827006" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
tags: [meetup, drupal, unified-diff] tags: [meetup, drupal, unified-diff]
events:
- { id: udiff, date: '2012-09-05' }
--- ---

View file

@ -33,12 +33,21 @@
<h2>Events</h2> <h2>Events</h2>
{% set events = [] %} {% set events = [] %}
{% for event in page.events %} {% for date in site.events.dates %}
{% set event = event|merge({ talk: page })|merge(site.events[event.id]) %} {% set key = (date.talk.id is defined) ? date.talk.id : date.talk %}
{% set events = events|merge([event]) %} {% set talk = (page.id is defined) ? page.id : page.url|split('/')|last %}
{% if key == talk %}
{% set events = events|merge([{
date: date,
event: site.events.events[date.event],
}]) %}
{% endif %}
{% endfor %} {% endfor %}
{% include "talks-table" with { events: events, hide_talk: true } %} {% include 'talks-table' with {
events: events,
talk_page: true,
} %}
</div>{# .talk-events #} </div>{# .talk-events #}
{% endblock %} {% endblock %}

54
source/talks.md Normal file
View file

@ -0,0 +1,54 @@
---
layout: default
title: Talks
meta:
description: 'Information about previous and upcoming talks that Oliver has presented at conferences and user groups'
use: [talks, posts]
---
{% block content %}
# Talks
I regularly speak at conferences and user groups about a range of subjects including Drupal, Sculpin and Git. If you would like to me to speak at your group or conference, please [get in touch][0].
There is also information about events that Ive attended and spoken at on my [Lanyrd][1] and []Joind.in][2] profiles.
{% set upcoming_events = [] %}
{% set past_events = [] %}
{% for date in site.events.dates %}
{% if date.date >= 'today'|date('Y-m-d') %}
{% set upcoming_events = upcoming_events|reverse|merge([{
date: date,
event: site.events.events[date.event],
talks: data.talks,
}]) %}
{% else %}
{% set past_events = past_events|merge([{
date: date,
event: site.events.events[date.event],
talks: data.talks,
}]) %}
{% endif %}
{% endfor %}
{% if upcoming_events is not empty %}
## Upcoming Talks
{% include 'talks-table' with { events: upcoming_events, upcoming: true } %}
{% endif %}
## Last 5 Talks
{% include 'talks-table' with { events: past_events|reverse[:5] } %}
You can view more talks in the [talks archive][3].
{% endblock %}
{% block stylesheets %}
<link rel="stylesheet" href="{{ site.url }}/assets/css/talks-table.css">
{% endblock %}
[0]: {{site.url}}/contact
[1]: {{site.lanyrd.url}}
[2]: {{site.joindin.url}}
[3]: {{site.url}}/talks/archive

View file

@ -1,50 +0,0 @@
---
layout: default
title: Talks
meta:
description: 'Information about previous and upcoming talks that Oliver has presented at conferences and user groups'
use: [talks, posts]
---
{% block content %}
<h1>Talks</h1>
<p>I regularly speak at conferences and user groups about a range of subjects including Drupal, Sculpin and Git. If you would like to me to speak at your group or conference, please <a href="/contact/">get in touch</a>.</p>
<p>There is also information about events that Ive attended and spoken at on my <a href="{{ site.lanyrd.url }}">Lanyrd</a> and <a href="{{ site.joindin.url }}">Joind.in</a> profiles.</p>
{% set upcoming_events = [] %}
{% set past_events = [] %}
{% for talk in data.talks %}
{% for event in talk.events if event.date >= 'today'|date('Y-m-d') %}
{% set event = event|merge({ talk: talk })|merge(site.events[event.id]) %}
{% set upcoming_events = upcoming_events|merge([event]) %}
{% endfor %}
{% for event in talk.events if event.date < 'today'|date('Y-m-d') %}
{% set event = event|merge({ talk: talk })|merge(site.events[event.id]) %}
{% set past_events = past_events|merge([event]) %}
{% endfor %}
{% endfor %}
{% if upcoming_events is not empty %}
<h2>Upcoming Talks</h2>
{% include "talks-table" with {
events: upcoming_events|sortbyfield('date'),
hide_feedback: true,
} %}
{% endif %}
<h2>Last 5 Talks</h2>
{% include "talks-table" with {
events: past_events|sortbyfield('date')|reverse[:5]
} %}
<p>You can view more talks in the <a href="/talks/archive">talks archive</a>.</p>
{% endblock %}
{% block stylesheets %}
<link rel="stylesheet" href="{{ site.url }}/assets/css/talks-table.css">
{% endblock %}

View file

@ -4,15 +4,13 @@ layout: page
use: [talks] use: [talks]
--- ---
{% set events = [] %} {% set events = [] %}
{% for talk in data.talks %}
{% for event in talk.events if event.date < 'today'|date('Y-m-d') %} {% for date in site.events.dates|reverse if date.date < "today"|date("Y-m-d") %}
{% set event = event|merge({ talk: talk })|merge(site.events[event.id]) %} {% set events = events|merge([{
{% set events = events|merge([event]) %} date: date,
{% endfor %} event: site.events.events[date.event],
talks: data.talks,
}]) %}
{% endfor %} {% endfor %}
{% include "talks-table" with { {% include 'talks-table' with { events: events } %}
events: events|sortbyfield('date')|reverse,
show_feedback: true,
show_talk: true
} %}