mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-23 17:27:19 +00:00
Ruby deps upgrades and cleanup (#9778)
This commit is contained in:
parent
8faccaaaad
commit
56ec75238c
34
Gemfile
34
Gemfile
@ -1,29 +1,23 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
ruby "> 2.3.0"
|
||||
ruby "> 2.5.0"
|
||||
|
||||
group :development do
|
||||
gem 'rake', '~> 10.0'
|
||||
# 3.8.5 throws errors on unfinished liquid tags in excerpts
|
||||
# Wait with upgrade until release https://github.com/jekyll/jekyll/pull/7382
|
||||
gem 'jekyll', '3.8.4'
|
||||
gem 'compass', '~> 0.12'
|
||||
gem 'sass-globbing', '~> 1.0'
|
||||
gem 'stringex', '~> 1.4'
|
||||
gem 'pry'
|
||||
|
||||
# See https://github.com/home-assistant/home-assistant.github.io/pull/3904
|
||||
gem 'rb-inotify', '< 0.9.9'
|
||||
gem 'rake', '12.3.2'
|
||||
gem 'jekyll', '3.8.6'
|
||||
gem 'compass', '1.0.3'
|
||||
gem 'sass-globbing', '1.1.5'
|
||||
gem 'stringex', '2.8.5'
|
||||
end
|
||||
|
||||
group :jekyll_plugins do
|
||||
gem 'jekyll-paginate'
|
||||
gem 'jekyll-redirect-from'
|
||||
gem 'jekyll-sitemap'
|
||||
gem 'jekyll-time-to-read'
|
||||
gem 'octopress', '~> 3.0'
|
||||
gem 'octopress-include-tag'
|
||||
gem 'jekyll-paginate', '1.1.0'
|
||||
gem 'jekyll-redirect-from', '0.15.0'
|
||||
gem 'jekyll-sitemap', '1.3.1'
|
||||
gem 'jekyll-time-to-read', '0.1.2'
|
||||
gem 'octopress', '3.0.11'
|
||||
gem 'octopress-include-tag', '1.1.3'
|
||||
end
|
||||
|
||||
gem 'sinatra', '~> 1.4.2'
|
||||
gem 'nokogiri'
|
||||
gem 'sinatra', '2.0.5'
|
||||
gem 'nokogiri', '1.10.3'
|
||||
|
113
Gemfile.lock
113
Gemfile.lock
@ -1,27 +1,33 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.5.2)
|
||||
addressable (2.6.0)
|
||||
public_suffix (>= 2.0.2, < 4.0)
|
||||
chunky_png (1.3.8)
|
||||
coderay (1.1.1)
|
||||
chunky_png (1.3.11)
|
||||
colorator (1.1.0)
|
||||
compass (0.12.7)
|
||||
compass (1.0.3)
|
||||
chunky_png (~> 1.2)
|
||||
fssm (>= 0.2.7)
|
||||
sass (~> 3.2.19)
|
||||
concurrent-ruby (1.1.3)
|
||||
compass-core (~> 1.0.2)
|
||||
compass-import-once (~> 1.0.5)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
sass (>= 3.3.13, < 3.5)
|
||||
compass-core (1.0.3)
|
||||
multi_json (~> 1.0)
|
||||
sass (>= 3.3.0, < 3.5)
|
||||
compass-import-once (1.0.5)
|
||||
sass (>= 3.2, < 3.5)
|
||||
concurrent-ruby (1.1.5)
|
||||
em-websocket (0.5.1)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.9.25)
|
||||
ffi (1.11.1)
|
||||
forwardable-extended (2.6.0)
|
||||
fssm (0.2.10)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (0.9.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (3.8.4)
|
||||
jekyll (3.8.6)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
@ -35,26 +41,27 @@ GEM
|
||||
rouge (>= 1.7, < 4)
|
||||
safe_yaml (~> 1.0)
|
||||
jekyll-paginate (1.1.0)
|
||||
jekyll-redirect-from (0.12.1)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-sass-converter (1.3.0)
|
||||
sass (~> 3.2)
|
||||
jekyll-sitemap (1.1.1)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-redirect-from (0.15.0)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-sass-converter (1.5.2)
|
||||
sass (~> 3.4)
|
||||
jekyll-sitemap (1.3.1)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-time-to-read (0.1.2)
|
||||
jekyll
|
||||
jekyll-watch (2.1.2)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (1.17.0)
|
||||
liquid (4.0.1)
|
||||
liquid (4.0.3)
|
||||
listen (3.1.5)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
ruby_dep (~> 1.2)
|
||||
mercenary (0.3.6)
|
||||
method_source (0.8.2)
|
||||
mini_portile2 (2.4.0)
|
||||
nokogiri (1.10.1)
|
||||
multi_json (1.13.1)
|
||||
mustermann (1.0.3)
|
||||
nokogiri (1.10.3)
|
||||
mini_portile2 (~> 2.4.0)
|
||||
octopress (3.0.11)
|
||||
jekyll (>= 2.0)
|
||||
@ -73,57 +80,51 @@ GEM
|
||||
octopress-include-tag (1.1.3)
|
||||
jekyll (>= 2.0)
|
||||
octopress-tag-helpers (~> 1.0)
|
||||
octopress-tag-helpers (1.0.8)
|
||||
octopress-tag-helpers (1.0.9)
|
||||
jekyll (>= 2.0)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
pry (0.10.4)
|
||||
coderay (~> 1.1.0)
|
||||
method_source (~> 0.8.1)
|
||||
slop (~> 3.4)
|
||||
public_suffix (3.0.3)
|
||||
rack (1.6.9)
|
||||
rack-protection (1.5.5)
|
||||
public_suffix (3.1.1)
|
||||
rack (2.0.7)
|
||||
rack-protection (2.0.5)
|
||||
rack
|
||||
rake (10.5.0)
|
||||
rake (12.3.2)
|
||||
rb-fsevent (0.10.3)
|
||||
rb-inotify (0.9.8)
|
||||
ffi (>= 0.5.0)
|
||||
rb-inotify (0.10.0)
|
||||
ffi (~> 1.0)
|
||||
redcarpet (3.4.0)
|
||||
rouge (3.3.0)
|
||||
rouge (3.5.1)
|
||||
ruby_dep (1.5.0)
|
||||
safe_yaml (1.0.4)
|
||||
sass (3.2.19)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.4.25)
|
||||
sass-globbing (1.1.5)
|
||||
sass (>= 3.1)
|
||||
sinatra (1.4.8)
|
||||
rack (~> 1.5)
|
||||
rack-protection (~> 1.4)
|
||||
tilt (>= 1.3, < 3)
|
||||
slop (3.6.0)
|
||||
stringex (1.5.1)
|
||||
tilt (2.0.8)
|
||||
sinatra (2.0.5)
|
||||
mustermann (~> 1.0)
|
||||
rack (~> 2.0)
|
||||
rack-protection (= 2.0.5)
|
||||
tilt (~> 2.0)
|
||||
stringex (2.8.5)
|
||||
tilt (2.0.9)
|
||||
titlecase (0.1.1)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
compass (~> 0.12)
|
||||
jekyll (= 3.8.4)
|
||||
jekyll-paginate
|
||||
jekyll-redirect-from
|
||||
jekyll-sitemap
|
||||
jekyll-time-to-read
|
||||
nokogiri
|
||||
octopress (~> 3.0)
|
||||
octopress-include-tag
|
||||
pry
|
||||
rake (~> 10.0)
|
||||
rb-inotify (< 0.9.9)
|
||||
sass-globbing (~> 1.0)
|
||||
sinatra (~> 1.4.2)
|
||||
stringex (~> 1.4)
|
||||
compass (= 1.0.3)
|
||||
jekyll (= 3.8.6)
|
||||
jekyll-paginate (= 1.1.0)
|
||||
jekyll-redirect-from (= 0.15.0)
|
||||
jekyll-sitemap (= 1.3.1)
|
||||
jekyll-time-to-read (= 0.1.2)
|
||||
nokogiri (= 1.10.3)
|
||||
octopress (= 3.0.11)
|
||||
octopress-include-tag (= 1.1.3)
|
||||
rake (= 12.3.2)
|
||||
sass-globbing (= 1.1.5)
|
||||
sinatra (= 2.0.5)
|
||||
stringex (= 2.8.5)
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.6.2p47
|
||||
|
@ -3,13 +3,46 @@
|
||||
# Jekyll category page generator.
|
||||
# http://recursive-design.com/projects/jekyll-plugins/
|
||||
#
|
||||
# Version: 0.1.4 (201101061053)
|
||||
# Version: 0.2.4 (201210160037)
|
||||
#
|
||||
# Copyright (c) 2010 Dave Perrett, http://recursive-design.com/
|
||||
# Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
||||
#
|
||||
# A generator that creates category pages for jekyll sites.
|
||||
#
|
||||
# To use it, simply drop this script into the _plugins directory of your Jekyll site. You should
|
||||
# also create a file called 'category_index.html' in the _layouts directory of your jekyll site
|
||||
# with the following contents (note: you should remove the leading '# ' characters):
|
||||
#
|
||||
# ================================== COPY BELOW THIS LINE ==================================
|
||||
# ---
|
||||
# layout: default
|
||||
# ---
|
||||
#
|
||||
# <h1 class="category">{{ page.title }}</h1>
|
||||
# <ul class="posts">
|
||||
# {% for post in site.categories[page.category] %}
|
||||
# <div>{{ post.date | date_to_html_string }}</div>
|
||||
# <h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
|
||||
# <div class="categories">Filed under {{ post.categories | category_links }}</div>
|
||||
# {% endfor %}
|
||||
# </ul>
|
||||
# ================================== COPY ABOVE THIS LINE ==================================
|
||||
#
|
||||
# You can alter the _layout_ setting if you wish to use an alternate layout, and obviously you
|
||||
# can change the HTML above as you see fit.
|
||||
#
|
||||
# When you compile your jekyll site, this plugin will loop through the list of categories in your
|
||||
# site, and use the layout above to generate a page for each one with a list of links to the
|
||||
# individual posts.
|
||||
#
|
||||
# You can also (optionally) generate an atom.xml feed for each category. To do this, copy
|
||||
# the category_feed.xml file to the _includes/custom directory of your own project
|
||||
# (https://github.com/recurser/jekyll-plugins/blob/master/_includes/custom/category_feed.xml).
|
||||
# You'll also need to copy the octopress_filters.rb file into the _plugins directory of your
|
||||
# project as the category_feed.xml requires a couple of extra filters
|
||||
# (https://github.com/recurser/jekyll-plugins/blob/master/_plugins/octopress_filters.rb).
|
||||
#
|
||||
# Included filters :
|
||||
# - category_links: Outputs the list of categories as comma-separated <a> links.
|
||||
# - date_to_html_string: Outputs the post.date as formatted html, with hooks for CSS styling.
|
||||
@ -18,64 +51,81 @@
|
||||
# - category_dir: The subfolder to build category pages in (default is 'categories').
|
||||
# - category_title_prefix: The string used before the category name in the page title (default is
|
||||
# 'Category: ').
|
||||
|
||||
require 'stringex'
|
||||
|
||||
module Jekyll
|
||||
|
||||
# The CategoryIndex class creates a single category page for the specified category.
|
||||
class CategoryIndex < Page
|
||||
class CategoryPage < Page
|
||||
|
||||
# Initializes a new CategoryIndex.
|
||||
#
|
||||
# +template_path+ is the path to the layout template to use.
|
||||
# +site+ is the Jekyll Site instance.
|
||||
# +base+ is the String path to the <source>.
|
||||
# +category_dir+ is the String path between <source> and the category folder.
|
||||
# +category+ is the category currently being processed.
|
||||
def initialize(template_path, name, site, base, category_dir, category)
|
||||
@site = site
|
||||
@base = base
|
||||
@dir = category_dir
|
||||
@name = name
|
||||
|
||||
self.process(name)
|
||||
|
||||
if File.exist?(template_path)
|
||||
@perform_render = true
|
||||
template_dir = File.dirname(template_path)
|
||||
template = File.basename(template_path)
|
||||
# Read the YAML data from the layout page.
|
||||
self.read_yaml(template_dir, template)
|
||||
self.data['category'] = category
|
||||
# Set the title for this page.
|
||||
title_prefix = site.config['category_title_prefix'] || 'Category: '
|
||||
self.data['title'] = "#{title_prefix}#{category}"
|
||||
# Set the meta-description for this page.
|
||||
meta_description_prefix = site.config['category_meta_description_prefix'] || 'Category: '
|
||||
self.data['description'] = "#{meta_description_prefix}#{category}"
|
||||
else
|
||||
@perform_render = false
|
||||
end
|
||||
end
|
||||
|
||||
def render?
|
||||
@perform_render
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# The CategoryIndex class creates a single category page for the specified category.
|
||||
class CategoryIndex < CategoryPage
|
||||
|
||||
# Initializes a new CategoryIndex.
|
||||
#
|
||||
# +site+ is the Jekyll Site instance.
|
||||
# +base+ is the String path to the <source>.
|
||||
# +category_dir+ is the String path between <source> and the category folder.
|
||||
# +category+ is the category currently being processed.
|
||||
def initialize(site, base, category_dir, category)
|
||||
@site = site
|
||||
@base = base
|
||||
@dir = category_dir
|
||||
@name = 'index.html'
|
||||
self.process(@name)
|
||||
# Read the YAML data from the layout page.
|
||||
self.read_yaml(File.join(base, '_layouts'), 'category_index.html')
|
||||
self.data['category'] = category
|
||||
# Set the title for this page.
|
||||
title_prefix = site.config['category_title_prefix'] || 'Category: '
|
||||
self.data['title'] = "#{title_prefix}#{category}"
|
||||
# Set the meta-description for this page.
|
||||
meta_description_prefix = site.config['category_meta_description_prefix'] || 'Category: '
|
||||
self.data['description'] = "#{meta_description_prefix}#{category}"
|
||||
template_path = File.join(base, '_layouts', 'category_index.html')
|
||||
super(template_path, 'index.html', site, base, category_dir, category)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# The CategoryFeed class creates an Atom feed for the specified category.
|
||||
class CategoryFeed < Page
|
||||
class CategoryFeed < CategoryPage
|
||||
|
||||
# Initializes a new CategoryFeed.
|
||||
#
|
||||
# +site+ is the Jekyll Site instance.
|
||||
# +base+ is the String path to the <source>.
|
||||
# +category_dir+ is the String path between <source> and the category folder.
|
||||
# +category+ is the category currently being processed.
|
||||
def initialize(site, base, category_dir, category)
|
||||
@site = site
|
||||
@base = base
|
||||
@dir = category_dir
|
||||
@name = 'atom.xml'
|
||||
self.process(@name)
|
||||
# Read the YAML data from the layout page.
|
||||
self.read_yaml(File.join(base, '_includes/custom'), 'category_feed.xml')
|
||||
self.data['category'] = category
|
||||
# Set the title for this page.
|
||||
title_prefix = site.config['category_title_prefix'] || 'Category: '
|
||||
self.data['title'] = "#{title_prefix}#{category}"
|
||||
# Set the meta-description for this page.
|
||||
meta_description_prefix = site.config['category_meta_description_prefix'] || 'Category: '
|
||||
self.data['description'] = "#{meta_description_prefix}#{category}"
|
||||
template_path = File.join(base, '_includes', 'custom', 'category_feed.xml')
|
||||
super(template_path, 'atom.xml', site, base, category_dir, category)
|
||||
|
||||
# Set the correct feed URL.
|
||||
self.data['feed_url'] = "#{category_dir}/#{name}"
|
||||
self.data['feed_url'] = "#{category_dir}/#{name}" if render?
|
||||
end
|
||||
|
||||
end
|
||||
@ -86,44 +136,37 @@ module Jekyll
|
||||
# Creates an instance of CategoryIndex for each category page, renders it, and
|
||||
# writes the output to a file.
|
||||
#
|
||||
# +category_dir+ is the String path to the category folder.
|
||||
# +category+ is the category currently being processed.
|
||||
def write_category_index(category_dir, category)
|
||||
index = CategoryIndex.new(self, self.source, category_dir, category)
|
||||
index.render(self.layouts, site_payload)
|
||||
index.write(self.dest)
|
||||
# Record the fact that this page has been added, otherwise Site::cleanup will remove it.
|
||||
self.pages << index
|
||||
# +category+ is the category currently being processed.
|
||||
def write_category_index(category)
|
||||
target_dir = GenerateCategories.category_dir(self.config['category_dir'], category)
|
||||
index = CategoryIndex.new(self, self.source, target_dir, category)
|
||||
if index.render?
|
||||
index.render(self.layouts, site_payload)
|
||||
index.write(self.dest)
|
||||
# Record the fact that this pages has been added, otherwise Site::cleanup will remove it.
|
||||
self.pages << index
|
||||
end
|
||||
|
||||
# Create an Atom-feed for each index.
|
||||
feed = CategoryFeed.new(self, self.source, category_dir, category)
|
||||
feed.render(self.layouts, site_payload)
|
||||
feed.write(self.dest)
|
||||
# Record the fact that this page has been added, otherwise Site::cleanup will remove it.
|
||||
self.pages << feed
|
||||
feed = CategoryFeed.new(self, self.source, target_dir, category)
|
||||
if feed.render?
|
||||
feed.render(self.layouts, site_payload)
|
||||
feed.write(self.dest)
|
||||
# Record the fact that this pages has been added, otherwise Site::cleanup will remove it.
|
||||
self.pages << feed
|
||||
end
|
||||
end
|
||||
|
||||
# Loops through the list of category pages and processes each one.
|
||||
def write_category_indexes
|
||||
if self.layouts.key? 'category_index'
|
||||
dir = self.config['category_dir'] || 'categories'
|
||||
self.categories.keys.each do |category|
|
||||
self.write_category_index(File.join(dir, category.to_url), category)
|
||||
self.write_category_index(category)
|
||||
end
|
||||
|
||||
# Throw an exception if the layout couldn't be found.
|
||||
else
|
||||
raise <<-ERR
|
||||
|
||||
|
||||
===============================================
|
||||
Error for category_generator.rb plugin
|
||||
-----------------------------------------------
|
||||
No 'category_index.html' in source/_layouts/
|
||||
Perhaps you haven't installed a theme yet.
|
||||
===============================================
|
||||
|
||||
ERR
|
||||
throw "No 'category_index' layout found."
|
||||
end
|
||||
end
|
||||
|
||||
@ -135,10 +178,20 @@ ERR
|
||||
safe true
|
||||
priority :low
|
||||
|
||||
CATEGORY_DIR = 'categories'
|
||||
|
||||
def generate(site)
|
||||
site.write_category_indexes
|
||||
end
|
||||
|
||||
# Processes the given dir and removes leading and trailing slashes. Falls
|
||||
# back on the default if no dir is provided.
|
||||
def self.category_dir(base_dir, category)
|
||||
base_dir = (base_dir || CATEGORY_DIR).gsub(/^\/*(.*)\/*$/, '\1')
|
||||
category = category.gsub(/_|\P{Word}/, '-').gsub(/-{2,}/, '-').downcase
|
||||
File.join(base_dir, category)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
@ -151,9 +204,14 @@ ERR
|
||||
# +categories+ is the list of categories to format.
|
||||
#
|
||||
# Returns string
|
||||
#
|
||||
def category_links(categories)
|
||||
categories = categories.sort!.map { |c| category_link c }
|
||||
base_dir = @context.registers[:site].config['category_dir']
|
||||
categories = categories.sort!.map do |category|
|
||||
category_dir = GenerateCategories.category_dir(base_dir, category)
|
||||
# Make sure the category directory begins with a slash.
|
||||
category_dir = "/#{category_dir}" unless category_dir =~ /^\//
|
||||
"<a class='category' href='#{category_dir}/'>#{category}</a>"
|
||||
end
|
||||
|
||||
case categories.length
|
||||
when 0
|
||||
@ -161,7 +219,7 @@ ERR
|
||||
when 1
|
||||
categories[0].to_s
|
||||
else
|
||||
"#{categories[0...-1].join(', ')}, #{categories[-1]}"
|
||||
categories.join(', ')
|
||||
end
|
||||
end
|
||||
|
||||
@ -172,8 +230,9 @@ ERR
|
||||
# Returns string
|
||||
#
|
||||
def category_link(category)
|
||||
dir = @context.registers[:site].config['category_dir']
|
||||
"<a class='category' href='/#{dir}/#{category.to_url}/'>#{category}</a>"
|
||||
base_dir = @context.registers[:site].config['category_dir']
|
||||
category_dir = GenerateCategories.category_dir(base_dir, category)
|
||||
"<a class='category' href='/#{category_dir}/'>#{category}</a>"
|
||||
end
|
||||
|
||||
# Outputs the post.date as formatted html, with hooks for CSS styling.
|
||||
|
Loading…
x
Reference in New Issue
Block a user