jekyll-themes-control 0.1.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f977c352c9d16e83773dcd587cbd58b1ea8e1a1be0c15e8471e0e3304369a951
4
+ data.tar.gz: a1e42f5dd84eebef5fa438a4f5f5d666026c707964de641eebb07866b5d47949
5
+ SHA512:
6
+ metadata.gz: 5a1ac5dd48c27276f8d365344251b113d0617ba962f330a77856288ea3395a726ae8a640fe1f56641ddaccbb36faf69a30cd4f894f2c4a8b427730578f65718d
7
+ data.tar.gz: 7bc4753fed3b4b2d1bc0701f8d9de81343d6686f14d663931df65b9cb18847237904a5dc902b5f9e540e403341be64c04efb9f577cb2441ca007bdc6158a5945
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "jekyll"
4
+ require "fileutils"
5
+ require "tempfile"
6
+ require "addressable"
7
+ require "net/http"
8
+ require "zip"
9
+
10
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
11
+
12
+ module Jekyll
13
+ module ThemesControl
14
+
15
+ autoload :Munger, "jekyll-themes-control/munger"
16
+ autoload :Theme, "jekyll-themes-control/theme"
17
+ autoload :VERSION, "jekyll-themes-control/version"
18
+
19
+ CONFIG_KEY = "themes_control"
20
+ LOG_KEY = "Themes Control:"
21
+ TEMP_PREFIX = "jekyll-themes-control-"
22
+
23
+ def self.init(site)
24
+ Munger.new(site).munge!
25
+ end
26
+ end
27
+ end
28
+
29
+ Jekyll::Hooks.register :site, :after_reset do |site|
30
+ Jekyll::ThemesControl.init(site)
31
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module ThemesControl
5
+ class Munger
6
+ extend Forwardable
7
+ def_delegator :site, :config
8
+ attr_reader :site
9
+
10
+ def initialize(site)
11
+ @site = site
12
+ end
13
+
14
+ def munge!
15
+ return unless raw_theme
16
+ unless munged?
17
+ configure_theme
18
+ end
19
+ theme
20
+ end
21
+
22
+ private
23
+
24
+ def munged?
25
+ site.theme&.is_a?(Jekyll::ThemesControl::Theme)
26
+ end
27
+
28
+ def theme
29
+ @theme ||= Theme.new(raw_theme)
30
+ end
31
+
32
+ def raw_theme
33
+ config[CONFIG_KEY]
34
+ end
35
+
36
+ def configure_theme
37
+ return unless theme
38
+
39
+ site.config["theme"] = theme.name
40
+ site.theme = theme
41
+ site.send(:configure_include_paths)
42
+ end
43
+
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module ThemesControl
5
+ class Theme < Jekyll::Theme
6
+
7
+ def initialize(raw_theme)
8
+ @raw_theme = raw_theme.to_s.downcase.strip
9
+ super(@raw_theme)
10
+ end
11
+
12
+ def root
13
+ path = "#{Dir.pwd}/_themes/#{@raw_theme}"
14
+ @root ||= File.realpath path
15
+ rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP
16
+ raise "Path #{path} does not exist, is not accessible "\
17
+ "or includes a symbolic link loop"
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module ThemesControl
5
+ VERSION = "0.1.0"
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,141 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-themes-control
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Fran Ferri
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-05-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: addressable
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jekyll
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '3.5'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '5.0'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '3.5'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '5.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: jekyll-sass-converter
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
54
+ - - "<="
55
+ - !ruby/object:Gem::Version
56
+ version: 3.0.0
57
+ - - "!="
58
+ - !ruby/object:Gem::Version
59
+ version: 2.0.0
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '1.0'
67
+ - - "<="
68
+ - !ruby/object:Gem::Version
69
+ version: 3.0.0
70
+ - - "!="
71
+ - !ruby/object:Gem::Version
72
+ version: 2.0.0
73
+ - !ruby/object:Gem::Dependency
74
+ name: rubyzip
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: 1.3.0
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 1.3.0
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '3.0'
93
+ - !ruby/object:Gem::Dependency
94
+ name: pry
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '0.11'
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: '0.11'
107
+ description:
108
+ email:
109
+ - franferri@gmail.com
110
+ executables: []
111
+ extensions: []
112
+ extra_rdoc_files: []
113
+ files:
114
+ - lib/jekyll-themes-control.rb
115
+ - lib/jekyll-themes-control/munger.rb
116
+ - lib/jekyll-themes-control/theme.rb
117
+ - lib/jekyll-themes-control/version.rb
118
+ homepage: https://github.com/franferri/jekyll-themes-control
119
+ licenses:
120
+ - GPLv3
121
+ metadata: {}
122
+ post_install_message:
123
+ rdoc_options: []
124
+ require_paths:
125
+ - lib
126
+ required_ruby_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 2.3.0
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ requirements: []
137
+ rubygems_version: 3.1.2
138
+ signing_key:
139
+ specification_version: 4
140
+ summary: Jekyll plugin for building Jekyll sites with any GitHub-hosted theme
141
+ test_files: []