Skip to content

solrevdev/solrevdev.github.io

Repository files navigation

solrevdev.github.io

GitHub last commit Build Status CircleCI Twitter Follow

Static Jekyll driven website to replace solrevdev.com blogger account

Testing the site locally

bundle install
bundle update github-pages
bundle exec jekyll serve --baseurl ''
bundle exec jekyll serve --drafts --baseurl ''
bundle exec jekyll serve --drafts --baseurl '' 2>/dev/null

bundle exec jekyll serve --drafts 2>/dev/null

To get rid of warnings you can use this

bundle exec jekyll serve --drafts --baseurl '' 2>/dev/null

bundle exec jekyll serve --drafts 2>/dev/null

Now open your browser and go to : http://localhost:4000 http://localhost:4000

gem install github-pages
gem update github-pages
jekyll build
jekyll serve

Now open your browser and go to http://localhost:4000

Testing on Apple Silicon

I had to add gem 'webrick' to the GemFile plus had to update nokogiri gem update nokogiri and had to remove the Gemfile.lock file to get it working but then all seems well for testing again.

bundle install
bundle update github-pages

bundle exec jekyll build

# this is what I tested with
bundle exec jekyll serve

# these are from before and do not know if they work but am leaving them here for now
bundle exec jekyll serve --drafts --baseurl '' 2>/dev/null
bundle exec jekyll serve --drafts 2>/dev/null

Live reload

Via the docs

bundle exec jekyll serve --livereload

Now open your browser and go to : http://localhost:4000 http://localhost:4000

Testing imgur hosted images

For some reason images served from the default default server address http://127.0.0.1:4000/ does not load imgur images. However localhost will work so http://localhost:4000/ will work

The fix is:

bundle exec jekyll serve --host=localhost

Then your images will load

Current full site testing example:

So, a full example that works on my Apple Silicon MacMini 2020 is:

bundle install
bundle update github-pages
bundle exec jekyll build
bundle exec jekyll serve --host=localhost

SEO Improvements

To enhance SEO and address Google Search Console issues, we've implemented the ability to control the canonical URL and robots meta tags on a per-post basis using Jekyll front matter.

Canonical URL

A canonical URL is specified to prevent duplicate content issues and to consolidate page ranking for similar content. In the _includes/head.html file, we've added the following snippet to insert a canonical link element when the canonical_url variable is set in a post's front matter:

{% if page.canonical_url %}
<link rel="canonical" href="{{ page.canonical_url }}" />
{% endif %}

This allows individual posts to define their canonical URL in the front matter like so:

---
canonical_url: 'https://solrevdev.com/2011/10/10/amazoncom-really-want-me-don-they.html'
---

Robots Tag

To further direct search engine indexing behavior, the robots meta tag can be included. This is useful for specifying pages that should not be indexed or followed by search engine crawlers. The following snippet in _includes/head.html checks for a robots variable:

{% if page.robots %}
<meta name="robots" content="{{ page.robots }}">
{% endif %}

In a post's front matter, you can control the robots tag like this:

---
robots: "noindex, follow"
---

Updating Old Content

For outdated content that no longer provides SEO value, we've introduced a standard update notice. This notice directs users to more relevant sections of the site and is included at the top of such posts:

<h3>Update</h3>
<p>This page's content is no longer relevant. However, we have plenty of updated information on some other topics you may find useful. Make a start looking
    through the <a href="/archive/">archive</a> :</p>
<ul>
    <li><a href="/">Home</a></li>
    <li><a href="/about">About</a></li>
    <li><a href="/archive/">Archive</a></li>
    <li><a href="/uses/">Uses</a></li>
    <li><a href="https://github.com/solrevdev/solrevdev.github.io">GitHub project</a></li>
</ul>

These changes aim to improve the overall SEO of the site and resolve specific issues flagged by Google Search Console.

Hyde theme

It is a brazen two-column theme that pairs a prominent sidebar with uncomplicated content. It's based on Poole, the Jekyll butler.

Hyde screenshot

Contents

Usage

Hyde is a theme built on top of Poole, which provides a fully furnished Jekyll setup—just download and start the Jekyll server. See the Poole usage guidelines for how to install and use Jekyll.

Options

Hyde includes some customizable options, typically applied via classes on the <body> element.

Sidebar menu

Create a list of nav links in the sidebar by assigning each Jekyll page the correct layout in the page's front-matter.

---
layout: page
title: About
---

Why require a specific layout? Jekyll will return all pages, including the atom.xml, and with an alphabetical sort order. To ensure the first link is Home, we exclude the index.html page from this list by specifying the page layout.

Sticky sidebar content

By default Hyde ships with a sidebar that affixes it's content to the bottom of the sidebar. You can optionally disable this by removing the .sidebar-sticky class from the sidebar's .container. Sidebar content will then normally flow from top to bottom.

<!-- Default sidebar -->
<div class="sidebar">
  <div class="container sidebar-sticky">
    ...
  </div>
</div>

<!-- Modified sidebar -->
<div class="sidebar">
  <div class="container">
    ...
  </div>
</div>

Themes

Hyde ships with eight optional themes based on the base16 color scheme. Apply a theme to change the color scheme (mostly applies to sidebar and links).

Hyde in red

There are eight themes available at this time.

Hyde theme classes

To use a theme, add anyone of the available theme classes to the <body> element in the default.html layout, like so:

<body class="theme-base-08">
  ...
</body>

To create your own theme, look to the Themes section of included CSS file. Copy any existing theme (they're only a few lines of CSS), rename it, and change the provided colors.

Reverse layout

Hyde with reverse layout

Hyde's page orientation can be reversed with a single class.

<body class="layout-reverse">
  ...
</body>

Development

Hyde has two branches, but only one is used for active development.

  • master for development. All pull requests should be submitted against master.
  • gh-pages for our hosted site, which includes our analytics tracking code. Please avoid using this branch.

Jekyll commands used to get setup

sudo chown -R $(whoami) /usr/local

sudo chown -R $(whoami) /Library/Ruby

brew install ruby

gem install bundler

gem install rouge

gem update --system

sudo gem cleanup

bundle install

bundle exec jekyll serve

bundle exec jekyll serve --baseurl ''

bundle exec jekyll serve --drafts


gem install jekyll-import

ruby -rubygems -e 'require "jekyll-import";
    JekyllImport::Importers::Blogger.run({
      "source"                => "_blogger.xml",
      "no-blogger-info"       => false, # not to leave blogger-URL info (id and old URL) in the front matter
      "replace-internal-link" => false, # replace internal links using the post_url liquid tag.
    })'


bundle exec htmlproofer ./_site

bundle exec htmlproofer ./_site --check-html --disable-external --checks-to-ignore ImageCheck,LinkCheck, HtmlCheck

bundle exec htmlproofer ./_site --disable-external --checks-to-ignore ImageCheck,LinkCheck,HtmlCheck

htmlproofer ./_site

Travis and Github custom domain resources

Prose

I am using the following Prose config

prose:
  siteurl: 'https://solrevdev.com'
  media: 'media'

Author

Mark Otto

John Smith

License

Open sourced under the MIT license.

<3

About

A jekyll based blog and website behind solrevdev.com

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages