diff --git a/.bowerrc b/.bowerrc
deleted file mode 100644
index 1885a4ea..00000000
--- a/.bowerrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "directory": "vendor/bower_components"
-}
diff --git a/app.yml b/app.yml
index f1148764..c325d993 100644
--- a/app.yml
+++ b/app.yml
@@ -3,7 +3,7 @@ api: '1'
sculpin:
theme:
build:
- bower: yes
+ bower: no
npm: no
type: gulp
yarn: yes
diff --git a/app/config/sculpin_site.yml b/app/config/sculpin_site.yml
index fe7900bf..57cf7f87 100644
--- a/app/config/sculpin_site.yml
+++ b/app/config/sculpin_site.yml
@@ -128,5 +128,5 @@ youtube:
channel_url: https://www.youtube.com/channel/UCkeK0qF9HHUPQH_fvn4ghqQ
work:
- role: Senior Drupal Developer
+ role: Senior Developer
company: microserve
diff --git a/assets/sass/blog-post.sass b/assets/sass/blog-post.sass
index 8ceb2bd1..5aae9333 100644
--- a/assets/sass/blog-post.sass
+++ b/assets/sass/blog-post.sass
@@ -1,4 +1,4 @@
-@import '../../vendor/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/clearfix'
+@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/clearfix'
.post-pager
clear: both
diff --git a/assets/sass/blog.sass b/assets/sass/blog.sass
index 674bdfc6..9a6c0478 100644
--- a/assets/sass/blog.sass
+++ b/assets/sass/blog.sass
@@ -1,4 +1,4 @@
-@import '../../vendor/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/clearfix'
+@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/clearfix'
.page--blog__list
ul.posts
diff --git a/assets/sass/experience.sass b/assets/sass/experience.sass
index 202ba3d6..99a7d764 100644
--- a/assets/sass/experience.sass
+++ b/assets/sass/experience.sass
@@ -1,5 +1,5 @@
-@import '../../vendor/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/clearfix'
-@import '../../vendor/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/variables'
+@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/clearfix'
+@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/variables'
@import 'mixins'
.experience-item
diff --git a/assets/sass/main.sass b/assets/sass/main.sass
index 7d476575..9f21df9b 100644
--- a/assets/sass/main.sass
+++ b/assets/sass/main.sass
@@ -1,4 +1,4 @@
-@import '../../vendor/bower_components/bootstrap-sass/assets/stylesheets/bootstrap'
+@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap'
@import 'base'
@import 'mixins'
diff --git a/assets/sass/project.sass b/assets/sass/project.sass
index 516cfd9c..25c7bd5f 100644
--- a/assets/sass/project.sass
+++ b/assets/sass/project.sass
@@ -1,4 +1,4 @@
-@import '../../vendor/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/variables'
+@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/variables'
@import 'mixins'
.project-company
diff --git a/assets/sass/talk.sass b/assets/sass/talk.sass
index 3c048396..eb7f9ad6 100644
--- a/assets/sass/talk.sass
+++ b/assets/sass/talk.sass
@@ -1,4 +1,4 @@
-@import '../../vendor/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/variables'
+@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/variables'
@import 'mixins'
.talk-full h1
diff --git a/assets/sass/testimonials.sass b/assets/sass/testimonials.sass
index 1cbaff0a..2e2da81f 100644
--- a/assets/sass/testimonials.sass
+++ b/assets/sass/testimonials.sass
@@ -1,5 +1,5 @@
-@import '../../vendor/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/clearfix'
-@import '../../vendor/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/variables'
+@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/clearfix'
+@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/variables'
@import 'mixins'
.testimonial
diff --git a/bower.json b/bower.json
deleted file mode 100644
index 12927282..00000000
--- a/bower.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "oliverdavies.uk",
- "devDependencies": {
- "bootstrap-sass": "~3.3.6",
- "font-awesome": "fontawesome#~4.5.0",
- "jquery2": "^2.0.0",
- "prism": "prismjs#^1.6.0"
- }
-}
diff --git a/gulpfile.js b/gulpfile.js
index b92db22b..4be68294 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -5,7 +5,6 @@ var plugins = require('gulp-load-plugins')();
var del = require('del');
var config = {
- bowerDir: 'vendor/bower_components',
fontsDir: 'source/assets/fonts',
js: {
sourceDir: 'assets/js',
@@ -46,14 +45,14 @@ app.sass = function (sourceFiles, filename) {
gulp.task('styles', function () {
app.sass([
- config.bowerDir + '/font-awesome/css/font-awesome.css',
+ 'node_modules/font-awesome/css/font-awesome.css',
config.sass.sourceDir + '/main.sass'
], 'main.css');
app.sass(config.sass.sourceDir + '/about.sass', 'about.css');
app.sass(config.sass.sourceDir + '/blog.sass', 'blog.css');
app.sass([
- config.bowerDir + '/prism/themes/prism-twilight.css',
+ 'node_modules/prism/themes/prism-twilight.css',
config.sass.sourceDir + '/blog-post.sass'
], 'blog-post.css');
app.sass(config.sass.sourceDir + '/experience.sass', 'experience.css');
@@ -65,10 +64,10 @@ gulp.task('styles', function () {
gulp.task('scripts', function () {
return gulp.src([
- config.bowerDir + '/jquery2/jquery.js',
- config.bowerDir + '/bootstrap-sass/assets/javascripts/bootstrap.js',
- config.bowerDir + '/prism/prism.js',
- config.bowerDir + '/prism/components/prism-{apacheconf,bash,css,diff,ini,json,nginx,php,sass,scss,sql,less,twig,xml,yaml}.js',
+ 'node_modules/jquery2/jquery.js',
+ 'node_modules/bootstrap-sass/assets/javascripts/bootstrap.js',
+ 'node_modules/prism/prism.js',
+ 'node_modules/prism/components/prism-{apacheconf,bash,css,diff,ini,json,nginx,php,sass,scss,sql,less,twig,xml,yaml}.js',
config.js.sourceDir + config.js.pattern
])
.pipe(plugins.plumber())
@@ -80,7 +79,7 @@ gulp.task('scripts', function () {
});
gulp.task('fonts', function () {
- return gulp.src(config.bowerDir + "/font-awesome/fonts/*")
+ return gulp.src('node_modules/font-awesome/fonts/*')
.pipe(gulp.dest(config.fontsDir));
});
diff --git a/package.json b/package.json
index e85b32da..f3a12277 100644
--- a/package.json
+++ b/package.json
@@ -21,5 +21,11 @@
"gulp-sourcemaps": "^1.6.0",
"gulp-uglify": "^1.5.3",
"gulp-util": "^3.0.7"
+ },
+ "dependencies": {
+ "bootstrap-sass": "^3.3.7",
+ "font-awesome": "^4.7.0",
+ "jquery.2": "^1.0.0",
+ "prismjs": "^1.6.0"
}
}
diff --git a/source/_posts/2017-06-09-introducing-the-drupal-meetups-twitterbot.md b/source/_posts/2017-06-09-introducing-the-drupal-meetups-twitterbot.md
new file mode 100644
index 00000000..f7cf973d
--- /dev/null
+++ b/source/_posts/2017-06-09-introducing-the-drupal-meetups-twitterbot.md
@@ -0,0 +1,27 @@
+---
+title: Introducing the Drupal Meetups Twitterbot
+tags:
+ - twitter
+ - php
+---
+{% block excerpt %}
+
+
+The [Drupal Meetups Twitterbot][0] is a small project that I worked on a few months ago, but hadn't got around to promoting yet. It’s intention is to provide [one Twitter account][1] where people can get the up to date news from various Drupal meetups.
+{% endblock %}
+
+{% block content %}
+
+
+The [Drupal Meetups Twitterbot][0] is a small project that I worked on a few months ago, but hadn't got around to promoting yet. It’s intention is to provide [one Twitter account][1] where people can get the up to date news from various Drupal meetups.
+
+It works by having a whitelist of [Twitter accounts and hashtags][2] to search for, uses [Codebird][3] to query the Twitter API and retweets any matching tweets on a scheduled basis.
+
+If you would like your meetup group to be added to the list of searched accounts, please [open an issue][4] on the GitHub repo.
+{% endblock %}
+
+[0]: https://github.com/opdavies/drupal-meetups-twitterbot
+[1]: https://twitter.com/drupal_meetups
+[2]: https://github.com/opdavies/drupal-meetups-twitterbot/blob/master/bootstrap/config.php
+[3]: https://www.jublo.net/projects/codebird/php
+[4]: https://github.com/opdavies/drupal-meetups-twitterbot/issues/new
diff --git a/source/assets/images/blog/drupal-meetups-twitterbot.png b/source/assets/images/blog/drupal-meetups-twitterbot.png
new file mode 100644
index 00000000..6b2ac07a
Binary files /dev/null and b/source/assets/images/blog/drupal-meetups-twitterbot.png differ
diff --git a/source/speaker-info.md b/source/speaker-info.md
index 87055b5f..092d99ef 100644
--- a/source/speaker-info.md
+++ b/source/speaker-info.md
@@ -10,9 +10,9 @@ use: [posts]
## Bio
-[Oliver Davies][1] ([@{{ site.twitter.name }}][2]) has been building websites since 2007, specialising in PHP and Drupal since 2008, and more recently also working with Symfony, Silex, Laravel and Sculpin. He is a {{ site.work.role }} at [{{ site.companies[site.work.company].name }}][0], a Drupal core contributor and open source advocate.
+[Oliver Davies][1] ([@{{ site.twitter.name }}][2]) has been building websites since 2007, specialising in PHP and Drupal since 2008, and more recently also working with Symfony, Silex, Laravel and Sculpin. He is a {{ site.work.role }} at [{{ site.companies[site.work.company].name }}][0], a Drupal core contributor and mentor, and an open source and contribution advocate.
-He regularly blogs and gives talks about web development and systems administration, maintains and contributes to various open source projects, and co-organises his local Drupal and PHP meetups and conferences.
+He regularly blogs and gives talks about web development and systems administration, maintains and contributes to various open source projects, and co-organises the Drupal Bristol and PHPSW meetups and DrupalCamp Bristol conference.
## Photo
diff --git a/yarn.lock b/yarn.lock
index c8eb43dc..8ad1c31b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -188,6 +188,10 @@ boom@2.x.x:
dependencies:
hoek "2.x.x"
+bootstrap-sass@^3.3.7:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/bootstrap-sass/-/bootstrap-sass-3.3.7.tgz#6596c7ab40f6637393323ab0bc80d064fc630498"
+
bower@^1.7.7:
version "1.7.9"
resolved "https://registry.yarnpkg.com/bower/-/bower-1.7.9.tgz#b7296c2393e0d75edaa6ca39648132dd255812b0"
@@ -296,6 +300,14 @@ clean-css@^4.0.4:
dependencies:
source-map "0.5.x"
+clipboard@^1.5.5:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-1.7.1.tgz#360d6d6946e99a7a1fef395e42ba92b5e9b5a16b"
+ dependencies:
+ good-listener "^1.2.2"
+ select "^1.1.2"
+ tiny-emitter "^2.0.0"
+
cliui@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
@@ -473,6 +485,10 @@ delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+delegate@^3.1.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.1.3.tgz#9a8251a777d7025faa55737bc3b071742127a9fd"
+
delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
@@ -679,6 +695,10 @@ flagged-respawn@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5"
+font-awesome@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
+
for-in@^0.1.5:
version "0.1.6"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8"
@@ -920,6 +940,12 @@ glogg@^1.0.0:
dependencies:
sparkles "^1.0.0"
+good-listener@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
+ dependencies:
+ delegate "^3.1.2"
+
graceful-fs@^3.0.0:
version "3.0.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818"
@@ -1402,6 +1428,16 @@ jodid25519@^1.0.0:
dependencies:
jsbn "~0.1.0"
+jquery.2@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/jquery.2/-/jquery.2-1.0.0.tgz#a8995f96fb804c335d08b90a57ec47db0faae6f8"
+ dependencies:
+ jquery "^2.0"
+
+jquery@^2.0:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-2.2.4.tgz#2c89d6889b5eac522a7eea32c14521559c6cbf02"
+
js-base64@^2.1.9:
version "2.1.9"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
@@ -2027,6 +2063,12 @@ pretty-hrtime@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.2.tgz#70ca96f4d0628a443b918758f79416a9a7bc9fa8"
+prismjs@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.6.0.tgz#118d95fb7a66dba2272e343b345f5236659db365"
+ optionalDependencies:
+ clipboard "^1.5.5"
+
process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
@@ -2254,6 +2296,10 @@ sass-graph@^2.1.1:
lodash "^4.0.0"
yargs "^4.7.1"
+select@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
+
semver@^4.1.0:
version "4.3.6"
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
@@ -2493,6 +2539,10 @@ time-stamp@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151"
+tiny-emitter@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.0.tgz#bad327adb1804b42a231afa741532bd884cd09ad"
+
tough-cookie@~2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.1.tgz#99c77dfbb7d804249e8a299d4cb0fd81fef083fd"