Commit 03ee0df0 authored by Adam Hawkins's avatar Adam Hawkins

Configure jekyll-seo-tag gem

parent 4fb7f566
FROM ruby:2.2
FROM ruby:2.3
ENV LC_ALL C.UTF-8
......
......@@ -4,5 +4,8 @@ gem 'jekyll', '~> 3.3.0'
gem 'jekyll-sitemap', '~> 0.12.0'
gem 'html-proofer', '~> 3.3.1'
gem 'jekyll-seo-tag'
gem 'jekyll-minifier'
gem 'therubyracer'
gem 'minitest'
......@@ -45,6 +45,8 @@ GEM
uglifier (~> 2.7)
jekyll-sass-converter (1.4.0)
sass (~> 3.4)
jekyll-seo-tag (2.1.0)
jekyll (~> 3.3)
jekyll-sitemap (0.12.0)
jekyll (~> 3.3)
jekyll-watch (1.5.0)
......@@ -91,8 +93,10 @@ DEPENDENCIES
html-proofer (~> 3.3.1)
jekyll (~> 3.3.0)
jekyll-minifier
jekyll-seo-tag
jekyll-sitemap (~> 0.12.0)
minitest
therubyracer
BUNDLED WITH
1.13.2
1.13.6
......@@ -28,6 +28,8 @@ init: $(DOCKER_IMAGE)
.PHONY: dist
dist: $(DOCKER_IMAGE)
docker run --rm slashdeploy/blog \
ruby test/seo_test.rb src/_posts
mkdir -p dist tmp
docker create -i $(BUILD_ENV) slashdeploy/blog \
bundle exec jekyll build -d /data -s /usr/src/app/src > tmp/dist_container
......
......@@ -8,23 +8,30 @@
gems:
- jekyll-sitemap
- jekyll-minifier
- jekyll-seo-tag
jekyll-minifier:
exclude:
- '*.xml'
- '*.txt'
twitter:
username: slashdeploy
social:
name: Slashdeploy
links:
- https://twitter.com/adman65
- https://github.com/ahawkins
- https://gitlab.com/slashdeploy
# Site settings
title: /Deploy
title: Slashdeploy Blog
email: hi@slashdeploy.com
background: >
Blog on fearless deploys and automation. Topics include
infrastructure engineering, monitoring, orchestration, and popular technologies
such as Docker and AWS--essentially everything to make <code>/deploy production</code>
work as seamlessly as possible.
description: > # this means to ignore newlines until "baseurl:"
Blog on DevOps, infrastructure engineering, monitoring, automation,
and deploying software.
description: >
Blog on improving production through continuous deployment and DevOps.
Likely topics are AWS, Docker, Ansible, infrastructure engineering, and
deploy pipelines.
footer: >
Need help deploying, monitoring, or automating parts of
your system? Get in touch. We'd love to help you.
......
......@@ -3,13 +3,11 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title>
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
<meta name="google-site-verification" content="irSupWCBhz262CDzgCb_RuZaVHRaREJYfkrEp3Mtxw4" />
<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,300i,600">
{% seo %}
</head>
......@@ -25,7 +25,7 @@
</div>
<div class="post-author">
{% assign author = site.data.people[page.author] %}
{% assign author = site.data.authors[page.author] %}
<p>
<img src="{{ author.email | to_gravatar }}?s=70" alt="{{ author.name }}" class="author-avatar">
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
......
---
title: Bootstrapping DNS on AWS
layout: post
seo:
type: BlogPosting
author: ahawkins
description: Automate your DNS with CloudFormation.
---
Everything should be automated. Usually things are done manually until
......
......@@ -3,6 +3,13 @@ layout: post
title: Blogging with Continuous Delivery
author: ahawkins
hackernews: https://news.ycombinator.com/item?id=11566063
seo:
type: BlogPosting
links:
- https://news.ycombinator.com/item?id=11566063
description: >
Setting up continuous deployment for a Jekyll blog using AWS,
CloudFormation, CloudFront, S3, Docker, and deploy verification.
---
The SlashDeploy blog was previously deployed from my local machine. I
......
......@@ -2,6 +2,9 @@
layout: post
title: Docker and Ruby for TDD and Deployment
author: ahawkins
seo:
type: BlogPosting
description: How to use make and docker for a portable Ruby workflow.
---
{% revision %}
This post is outdated as of October 2016. Refer to the [Docker Project
......
......@@ -4,6 +4,14 @@ layout: post
author: ahawkins
reddit: https://www.reddit.com/r/devops/comments/4jmjfg/cron_data_scraping_with_aws_lambda_ansible_and/
hackernews: https://news.ycombinator.com/item?id=11708469
description: >
Building a cron style system with AWS Lambda and
continous deployment with CloudFormation and Ansible.
seo:
type: BlogPosting
links:
- https://www.reddit.com/r/devops/comments/4jmjfg/cron_data_scraping_with_aws_lambda_ansible_and/
- https://news.ycombinator.com/item?id=11708469
---
SlashDeploy has been slowly gathering momentum over the past two
......
......@@ -4,6 +4,12 @@ title: Docker and Node.js Boilerplate
author: ahawkins
hackernews: https://news.ycombinator.com/item?id=11722512
reddit: https://www.reddit.com/r/docker/comments/4jx534/docker_nodejs_boilerplate/
description: How to use make and docker for a portable Node workflow.
seo:
type: BlogPosting
links:
- https://news.ycombinator.com/item?id=11722512
- https://www.reddit.com/r/docker/comments/4jx534/docker_nodejs_boilerplate/
---
{% revision %}
......
......@@ -2,6 +2,11 @@
title: Automating Dev Environments
layout: post
author: ahawkins
seo:
type: BlogPosting
description: >
Using vagrant & vagrant-workstation to create fully automated
environments accessible via the CLI.
---
Development environments are a big part of every team's work. The
......
......@@ -2,6 +2,9 @@
title: Containerization & Docker Video
layout: post
author: ahawkins
seo:
type: BlogPosting
description: 5 minute video describing container techologies & Docker.
---
I put together a short video explaining containerization technologies
......
......@@ -2,6 +2,9 @@
title: "Docker on AWS: 1 Week In"
layout: post
author: ahawkins
seo:
type: BlogPosting
description: Initial impression on using Docker Data Center on AWS.
---
I've spent one week messing around with [Docker on AWS][]. "Docker on
......
......@@ -3,6 +3,11 @@ title: "Docker on AWS: 1 Month In"
layout: post
author: ahawkins
reddit: https://www.reddit.com/r/devops/comments/55bqar/docker_on_aws_1_month_in/
seo:
type: BlogPosting
description: >
Final impressions after using Docker Data Center on AWS
and recommendations for those condidering taking the jump.
---
_This post is a follow up to [Docker on AWS: 1 Week In][post]._
......
......@@ -2,6 +2,16 @@
title: "Devops Days India"
layout: post
author: ahawkins
seo:
type: BlogPosting
description: >
It was summer 2014. Docker just hit 1.0. The engineering team was
given a rare chance to rewrite the product from scratch. We
immediately moved to Docker from development and production. We
build our own orchestration tool to fit our unique requirements.
Things have changed a lot since 2016. Come with me and join for a 2
year wide retrospective on how we succeeded, failed, what we
learned, and how to better production Docker users in 2016.
---
I'm happy to announce that I'm speaking at [Devops Days India][link]!
......
......@@ -2,6 +2,12 @@
title: "Docker Webinar Series: From Dev to Production"
layout: post
author: ahawkins
seo:
type: BlogPosting
description: >
Outline and information for upcoming 3 part webinar series
on Docker. Part 1 covers the cpncept, part 2 covers production
deployments, and part 3 is open QA forum.
---
I'm happy to announce a three part webinar series on Docker for
......
......@@ -2,6 +2,12 @@
title: "Announcing the Rack Bootcamp"
layout: post
author: ahawkins
seo:
type: BlogPosting
description: >
The bootcamp's purpose to save your time by providing the highest
value information in one place. This way you don't need to spend time
scraping around the internet for tutorials or screencasts.
---
I'm happy to share that I've completed my work on the Rack Bootcamp!
......
......@@ -3,6 +3,11 @@ title: How I would DevOps at Work
layout: post
author: ahawkins
reddit: https://www.reddit.com/r/devops/comments/59j07r/how_i_would_devops_at_work/
seo:
type: BlogPosting
description: >
An 8 point plan for how to better align my organization
with DevOps principles.
---
I was browsing [r/devops][reddit] the other day and came across a good
......
......@@ -3,7 +3,7 @@ layout: default
---
<div class="home">
<p class="background">{{ site.background }}</p>
<p class="background">{{ site.description }}</p>
<ul class="post-list">
{% for post in site.posts %}
......
require 'bundler/setup'
require 'minitest/autorun'
require 'yaml'
class SEOTest < MiniTest::Test
attr_reader :posts
def setup
@posts = Dir["#{ARGV[0]}/*.md"]
end
def test_posts_have_descriptions
posts.each do |post|
data = YAML.load_file post
assert data.key?('description'), "#{post} missing description"
end
end
def test_posts_have_seo_type
posts.each do |post|
data = YAML.load_file post
assert_equal 'BlogPosting', data.dig('seo', 'type'), "#{post} missing description"
end
end
def test_posts_have_seo_links_are_valid_uris
posts.each do |post|
data = YAML.load_file post
seo = data.fetch('seo')
next unless seo.key?('links')
seo.fetch('links').each do |link|
assert URI(link), "#{link} is invalid"
end
end
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment