swedbank-pay-design-guide-jekyll-theme 1.9.0 → 1.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,11 +5,20 @@ require_relative 'sidebar_html_builder'
5
5
  module SwedbankPay
6
6
  # Renders the Sidebar
7
7
  class SidebarRenderer
8
- def render(tree)
8
+ def initialize(tree)
9
+ raise ArgumentError, 'pages cannot be nil' if tree.nil?
9
10
  raise ArgumentError, 'pages must be an SidebarTreeBuilder' unless tree.is_a? SidebarTreeBuilder
10
11
 
11
12
  @tree = tree
12
- render_pages(tree)
13
+ @html_builder = SidebarHTMLBuilder.new(@tree)
14
+ end
15
+
16
+ def enrich_jekyll
17
+ enrich_jekyll_pages(@tree)
18
+ end
19
+
20
+ def render
21
+ render_pages(@tree)
13
22
  end
14
23
 
15
24
  private
@@ -18,10 +27,18 @@ module SwedbankPay
18
27
  return if pages.empty?
19
28
 
20
29
  pages.each do |page|
21
- sidebar_html = render_page(page)
30
+ sidebar_html = render_sidebar(page)
31
+ name = page.filename || page.name || page.to_s
32
+
33
+ if sidebar_html.nil?
34
+ Jekyll.logger.warn(" Sidebar: No HTML rendered for #{name}.")
35
+ next
36
+ end
22
37
 
23
- next if sidebar_html.nil?
24
- next if page.sidebar_container.nil?
38
+ if page.sidebar_container.nil?
39
+ Jekyll.logger.warn(" Sidebar: No sidebar container found in '#{name}'. #{page.filename}")
40
+ next
41
+ end
25
42
 
26
43
  page.sidebar_container.inner_html = sidebar_html
27
44
 
@@ -31,18 +48,17 @@ module SwedbankPay
31
48
  end
32
49
  end
33
50
 
34
- def render_page(page)
51
+ def render_sidebar(page)
35
52
  sidebar_html = nil
36
53
 
37
54
  begin
38
- builder = SidebarHTMLBuilder.new(@tree)
39
- sidebar_html = builder.build(page)
55
+ sidebar_html = @html_builder.build(page)
40
56
 
41
57
  File.open('_site/sidebar.html', 'w') { |f| f.write(sidebar_html) }
42
58
  rescue StandardError => e
43
- Jekyll.logger.error(" Sidebar: Unable to render sidebar for '#{page.filename}'.")
59
+ name = page.filename || page.name || page.to_s
60
+ Jekyll.logger.error(" Sidebar: Unable to render sidebar for '#{name}'.")
44
61
  Jekyll.logger.debug(" Sidebar: #{e.message}. #{e.backtrace.inspect}")
45
- return nil
46
62
  end
47
63
 
48
64
  sidebar_html
@@ -13,10 +13,11 @@ module SwedbankPay
13
13
 
14
14
  def to_s
15
15
  name = @page.name == '/' ? '/' : "/#{@page.name}"
16
- title = @page.title.nil? ? '?' : @page.title.item
17
- s = "#{indent} #{name}: #{title} (#{@page.coordinate})\n"
16
+ lead_title = @page.title.nil? ? '?' : @page.title.lead
17
+ main_title = @page.title.nil? ? '?' : @page.title.main
18
+ s = "#{indent} #{@page.coordinate}. #{name}: #{lead_title} – #{main_title}\n"
18
19
 
19
- unless @page.children.empty?
20
+ if @page.children?
20
21
  @page.children.each do |child|
21
22
  s << child.to_s
22
23
  end
@@ -34,7 +35,7 @@ module SwedbankPay
34
35
 
35
36
  increment = @page.level > 1 ? @page.level + 1 : @page.level
36
37
 
37
- "┝╾#{('─' * increment)}"
38
+ "┝╾#{'─' * increment}"
38
39
  end
39
40
 
40
41
  def todo
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: false
2
2
 
3
+ require 'jekyll'
3
4
  require 'forwardable'
4
5
  require_relative 'sidebar_page_collection'
5
6
 
@@ -8,12 +9,14 @@ module SwedbankPay
8
9
  class SidebarTreeBuilder
9
10
  include Enumerable
10
11
  extend Forwardable
11
- def_delegators :@pages, :each, :length, :empty?, :<<, :[], :count
12
+ def_delegators :@tree, :each, :length, :empty?, :<<, :[], :count
12
13
 
13
14
  def initialize(pages)
14
- raise ArgumentError, 'Pages must be a Hash' unless pages.is_a? Hash
15
+ raise ArgumentError, 'pages cannot be nil' if pages.nil?
16
+ raise ArgumentError, 'pages must be a Hash' unless pages.is_a? Hash
15
17
 
16
- @pages = tree(pages)
18
+ @tree = tree(pages)
19
+ enrich_jekyll_pages(@tree)
17
20
  end
18
21
 
19
22
  def to_s
@@ -31,7 +34,7 @@ module SwedbankPay
31
34
 
32
35
  if inspection
33
36
  output << ":\n"
34
- @pages.each do |page|
37
+ @tree.each do |page|
35
38
  output << "#{page}\n"
36
39
  end
37
40
  end
@@ -69,5 +72,15 @@ module SwedbankPay
69
72
  def sort_by_path_reversed(pages)
70
73
  pages.sort_by { |path, _| path }.reverse
71
74
  end
75
+
76
+ def enrich_jekyll_pages(pages)
77
+ return if pages.empty?
78
+
79
+ pages.each do |page|
80
+ page.enrich_jekyll
81
+
82
+ enrich_jekyll_pages(page.children)
83
+ end
84
+ end
72
85
  end
73
86
  end
@@ -1,3 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'sidebar'
4
+ require_relative 'regex_capture_filter'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swedbank-pay-design-guide-jekyll-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Swedbank Pay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-22 00:00:00.000000000 Z
11
+ date: 2020-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -207,6 +207,7 @@ extra_rdoc_files: []
207
207
  files:
208
208
  - LICENSE
209
209
  - README.md
210
+ - _includes/accordion-table.html
210
211
  - _includes/alert.html
211
212
  - _includes/anchor_headings.html
212
213
  - _includes/apple-mobile-headers.html
@@ -217,6 +218,7 @@ files:
217
218
  - _includes/card-horizontal-list.html
218
219
  - _includes/card-list.html
219
220
  - _includes/card.html
221
+ - _includes/github.html
220
222
  - _includes/google_analytics.html
221
223
  - _includes/img/merchants/logo-coop.svg
222
224
  - _includes/img/merchants/logo-elkjop.svg
@@ -239,10 +241,14 @@ files:
239
241
  - _includes/paragraph-highlight.html
240
242
  - _includes/release_notes.html
241
243
  - _includes/sidebar.html
244
+ - _includes/title-header.html
242
245
  - _includes/toc.html
243
246
  - _layouts/default.html
244
247
  - _layouts/front-page.html
245
- - _plugins/sidebar.rb
248
+ - _layouts/search.html
249
+ - _plugins/swedbank-pay-design-guide-jekyll-theme.rb
250
+ - _sass/accordion-table.scss
251
+ - _sass/breakpoints.scss
246
252
  - _sass/card.scss
247
253
  - _sass/code-view.scss
248
254
  - _sass/colors.scss
@@ -268,6 +274,7 @@ files:
268
274
  - assets/tipuesearch/tipuesearch_content.js
269
275
  - assets/tipuesearch/tipuesearch_set.js
270
276
  - lib/gem_version.rb
277
+ - lib/regex_capture_filter.rb
271
278
  - lib/safe_merge.rb
272
279
  - lib/sanitized_filename.rb
273
280
  - lib/sidebar.rb
@@ -300,7 +307,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
300
307
  - !ruby/object:Gem::Version
301
308
  version: '0'
302
309
  requirements: []
303
- rubygems_version: 3.1.2
310
+ rubygems_version: 3.1.4
304
311
  signing_key:
305
312
  specification_version: 4
306
313
  summary: Swedbank Pay Design Guide theme for Jekyll
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: false
2
-
3
- require_relative '../lib/sidebar'