mr_hyde 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile +0 -2
- data/README.md +7 -7
- data/Rakefile +25 -6
- data/lib/mr_hyde.rb +7 -15
- data/lib/mr_hyde/commands/remove.rb +2 -2
- data/lib/mr_hyde/configuration.rb +4 -13
- data/lib/mr_hyde/extensions/new.rb +3 -2
- data/lib/mr_hyde/jekyll_ext/converters/scss.rb +1 -1
- data/lib/mr_hyde/jekyll_ext/site.rb +1 -0
- data/lib/mr_hyde/jekyll_ext/tags/include.rb +2 -2
- data/lib/mr_hyde/site.rb +41 -42
- data/lib/mr_hyde/version.rb +1 -1
- data/lib/site_template/{sources/_assets → _assets}/_sass/_base.scss +0 -0
- data/lib/site_template/{sources/_assets → _assets}/_sass/_functions.scss +0 -0
- data/lib/site_template/{sources/_assets → _assets}/_sass/_grid.scss +0 -0
- data/lib/site_template/{sources/_assets → _assets}/_sass/_layout.scss +0 -0
- data/lib/site_template/{sources/_assets → _assets}/_sass/_newbase.scss +0 -0
- data/lib/site_template/{sources/_assets → _assets}/_sass/_normalize.scss +0 -0
- data/lib/site_template/{sources/_assets → _assets}/_sass/_syntax-highlighting.scss +0 -0
- data/lib/site_template/_config.yml +1 -1
- data/lib/site_template/{sources/_includes → _includes}/footer.html +0 -0
- data/lib/site_template/{sources/_includes → _includes}/head.html +0 -0
- data/lib/site_template/{sources/_includes → _includes}/header.html +0 -0
- data/lib/site_template/{sources/_layouts → _layouts}/default.html +0 -2
- data/lib/site_template/{sources/_layouts → _layouts}/page.html +0 -0
- data/lib/site_template/{sources/_layouts → _layouts}/post.html +0 -0
- data/lib/site_template/_mrhyde.yml +1 -1
- data/lib/site_template/_site/about.md +9 -0
- data/lib/site_template/{sources/main_site → _site}/css/main.scss +0 -0
- data/lib/site_template/{sources/main_site → _site}/css/normalize.css +0 -0
- data/lib/site_template/{sources/main_site → _site}/index.md +3 -1
- data/lib/subsite_template/_posts/0000-00-00-welcome-to-mr-hyde.markdown.erb +2 -2
- data/lib/subsite_template/about.md +1 -1
- data/mr_hyde.gemspec +7 -3
- data/spec/build_spec.rb +21 -4
- data/spec/list_spec.rb +0 -1
- data/spec/new_spec.rb +25 -17
- data/spec/rm_spec.rb +11 -12
- data/test/configuraton_test.rb +16 -0
- metadata +101 -32
- data/lib/site_template/sources/main_site/about.md +0 -9
- data/lib/site_template/sources/main_site/js/main.coffee +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be4ff45145b0410676993b7b61ad2c16d57a359e
|
4
|
+
data.tar.gz: 9f39ac565f3179c71730618c3315ba210d2da606
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 582235b101b3d514d1c60e197d7b29a7e508d96fc1f646289b04265dd77651ba95e9736f4865f69652dc42aea8d0815856fa261771c5cc566099294931498d31
|
7
|
+
data.tar.gz: d0851cc6dabc5528c0f61b8c6f6ef1a8d0cf4d680901f2e0423dcb223107a25593249c481866454dad5135d364c140d2c4b257b5cacedc297c9267317f36b273
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
<img src="https://raw.githubusercontent.com/emoriarty/mr_hyde/master/resources/mrhyde-logo.png" alt="Mr.Hyde logo" height="100"/>
|
2
2
|
# MrHyde
|
3
|
-
Mr. Hyde lets you generate and manage as many static sites as you like, all nested from a parent site, for example, you can have several nested sites sharing the same assets than
|
3
|
+
Mr. Hyde lets you generate and manage as many static sites as you like, all nested from a parent site, for example, you can have several nested sites sharing the same assets than parent site and other nested sites with its own assets.
|
4
4
|
|
5
|
-
All this
|
5
|
+
All this works thanks to [Jekyll](http://jekyllrb.com) tool, in fact Mr. Hyde wraps Jekyll so if you know Jekyll there is no much to learn about Mr. Hyde.
|
6
6
|
|
7
|
-
The current version is based on [Jekyll
|
7
|
+
The current version is based on [Jekyll 3.1.1](https://github.com/jekyll/jekyll/tree/v3.1.1).
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
@@ -28,15 +28,15 @@ $ gem install mr_hyde
|
|
28
28
|
|
29
29
|
## Usage
|
30
30
|
|
31
|
-
In order to use Mr. Hyde the first thing you must do is creating the Mr. Hyde
|
31
|
+
In order to use Mr. Hyde the first thing you must do is creating the Mr. Hyde root folder using the next command:
|
32
32
|
|
33
33
|
```bash
|
34
|
-
$ mrhyde new [
|
34
|
+
$ mrhyde new [NAME]
|
35
35
|
```
|
36
36
|
|
37
|
-
The previuos command creates the basic structure folder
|
37
|
+
The previuos command creates the basic structure folder within the new folder NAME, in case the name is not provided then the same folder will be used.
|
38
38
|
|
39
|
-
Once created
|
39
|
+
Once created cd the Mr. Hyde root folder (or the same if no NAME was given) and you can execute the next commands:
|
40
40
|
|
41
41
|
```bash
|
42
42
|
$ cd PATH
|
data/Rakefile
CHANGED
@@ -4,10 +4,29 @@ require "rake/testtask"
|
|
4
4
|
ENV["JEKYLL_LOG_LEVEL"] = "error"
|
5
5
|
ENV["MRHYDE_LOG_LEVEL"] = "error"
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
task :test_task do
|
8
|
+
Rake::TestTask.new do |t|
|
9
|
+
t.libs.push "lib"
|
10
|
+
t.test_files = FileList["spec/*_spec.rb"]
|
11
|
+
#t.pattern = "test/*_test.rb"
|
12
|
+
#t.verbose = true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
task :unit_task do
|
17
|
+
Rake::TestTask.new("unit") do |t|
|
18
|
+
t.libs.push "lib"
|
19
|
+
t.test_files = FileList["test/*_test.rb"]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
task :test do
|
25
|
+
Rake::Task["unit_task"].clear
|
26
|
+
Rake::Task["test_task"].invoke
|
27
|
+
end
|
28
|
+
|
29
|
+
task :unit do
|
30
|
+
Rake::Task["test_task"].clear
|
31
|
+
Rake::Task["unit_task"].invoke
|
13
32
|
end
|
data/lib/mr_hyde.rb
CHANGED
@@ -43,7 +43,7 @@ module MrHyde
|
|
43
43
|
|
44
44
|
# Jekyll per site configuration
|
45
45
|
# This method gets the config files which must be read from jekyll.
|
46
|
-
# _config.yml <
|
46
|
+
# _config.yml < sites/site/_config.yml < override
|
47
47
|
#
|
48
48
|
def site_configuration(site_name = nil)
|
49
49
|
jekyll_config = jekyll_defaults(site_name)
|
@@ -66,23 +66,19 @@ module MrHyde
|
|
66
66
|
'source' => File.join(MrHyde.sources_sites, site_name) }
|
67
67
|
else
|
68
68
|
site_name = config['mainsite']
|
69
|
-
{ 'source' => File.join(
|
69
|
+
{ 'source' => File.join(site_name),
|
70
70
|
'destination' => File.join(MrHyde.destination) }
|
71
71
|
end
|
72
72
|
|
73
|
-
conf.merge({ '
|
73
|
+
conf.merge({ 'layouts_dir' => File.join(config['layouts_dir']) })
|
74
74
|
end
|
75
75
|
|
76
76
|
def has_jekyll_config?
|
77
77
|
File.exist? File.expand_path(File.join(source, @config['jekyll_config']))
|
78
78
|
end
|
79
|
-
|
80
|
-
def sources
|
81
|
-
config['sources']
|
82
|
-
end
|
83
79
|
|
84
80
|
def sources_sites
|
85
|
-
File.join config['
|
81
|
+
File.join config['sources_sites']
|
86
82
|
end
|
87
83
|
|
88
84
|
def destination
|
@@ -90,7 +86,7 @@ module MrHyde
|
|
90
86
|
end
|
91
87
|
|
92
88
|
def main_site
|
93
|
-
File.join source,
|
89
|
+
File.join source, config['mainsite']
|
94
90
|
end
|
95
91
|
|
96
92
|
# Public: Fetch the logger instance for this Jekyll process.
|
@@ -156,7 +152,6 @@ module MrHyde
|
|
156
152
|
# FileUtils.copy_file(jekyll_config, File.join(path, File.basename(jekyll_config)))
|
157
153
|
# Creating the default jekyll site in mrhyde
|
158
154
|
Dir.chdir(path) do
|
159
|
-
FileUtils.mkdir(%w(sources)) unless File.exist? 'sources'
|
160
155
|
Site.create ['sample-site'], { 'force' => 'force' }
|
161
156
|
Site.create ['sample-full-site'], { 'full' => 'full', 'force' => 'force' }
|
162
157
|
end
|
@@ -164,11 +159,8 @@ module MrHyde
|
|
164
159
|
|
165
160
|
def create_blank_site(path)
|
166
161
|
Dir.chdir(path) do
|
167
|
-
FileUtils.mkdir(
|
168
|
-
Dir.chdir('
|
169
|
-
FileUtils.mkdir %w(_layouts _includes main_site)
|
170
|
-
end
|
171
|
-
Dir.chdir(File.join('sources', 'main_site')) do
|
162
|
+
FileUtils.mkdir %w(_layouts _includes _site)
|
163
|
+
Dir.chdir(File.join('_site')) do
|
172
164
|
FileUtils.touch 'index.html'
|
173
165
|
end
|
174
166
|
end
|
@@ -6,8 +6,8 @@ module MrHyde
|
|
6
6
|
class Remove < MrHyde::Command
|
7
7
|
class << self
|
8
8
|
def process(args, opts = {})
|
9
|
-
if args.length == 0
|
10
|
-
|
9
|
+
if args.length == 0 and not opts['all']
|
10
|
+
MrHyde.logger.warn("A site name must be typed. You can see a list of nested sites using the 'list' command.")
|
11
11
|
else
|
12
12
|
Site.remove args, opts
|
13
13
|
end
|
@@ -3,25 +3,16 @@ require "jekyll/configuration"
|
|
3
3
|
module MrHyde
|
4
4
|
|
5
5
|
class Configuration < Jekyll::Configuration
|
6
|
-
|
7
|
-
DEFAULTS = {
|
6
|
+
DEFAULTS.merge!({
|
8
7
|
# Places
|
9
8
|
'source' => Dir.pwd,
|
10
|
-
'sources' => 'sources',
|
11
|
-
'sources_sites' => '_sites',
|
12
9
|
'destination' => 'site',
|
13
|
-
'
|
14
|
-
'includes' => '_includes',
|
10
|
+
'sources_sites' => '_sites',
|
15
11
|
'config' => '_mrhyde.yml',
|
16
12
|
'jekyll_config' => '_config.yml',
|
17
13
|
'assets' => '_assets',
|
18
|
-
'mainsite' => '
|
19
|
-
|
20
|
-
'detach' => false, # default to not detaching the server
|
21
|
-
'port' => '4000',
|
22
|
-
'host' => '127.0.0.1',
|
23
|
-
'baseurl' => ''
|
24
|
-
}
|
14
|
+
'mainsite' => '_site'
|
15
|
+
})
|
25
16
|
|
26
17
|
def read_config_files(files)
|
27
18
|
configuration = clone
|
@@ -28,6 +28,7 @@ module MrHyde
|
|
28
28
|
|
29
29
|
if options["blank"]
|
30
30
|
create_blank_site new_site_path, options
|
31
|
+
Jekyll.logger.info "New jekyll site installed in #{new_site_path}."
|
31
32
|
elsif options["full"]
|
32
33
|
create_independant_sample_files args, options
|
33
34
|
else
|
@@ -36,9 +37,9 @@ module MrHyde
|
|
36
37
|
File.open(File.expand_path(initialized_post_name, new_site_path), "w") do |f|
|
37
38
|
f.write(scaffold_post_content)
|
38
39
|
end
|
40
|
+
Jekyll.logger.info "New jekyll site installed in #{new_site_path}."
|
39
41
|
end
|
40
42
|
|
41
|
-
Jekyll.logger.info "New jekyll site installed in #{new_site_path}."
|
42
43
|
end
|
43
44
|
|
44
45
|
def create_blank_site(path, opts)
|
@@ -69,7 +70,7 @@ module MrHyde
|
|
69
70
|
def scaffold_path
|
70
71
|
"_posts/0000-00-00-welcome-to-mr-hyde.markdown.erb"
|
71
72
|
end
|
72
|
-
|
73
|
+
end
|
73
74
|
end
|
74
75
|
end
|
75
76
|
end
|
@@ -9,7 +9,7 @@ module Converters
|
|
9
9
|
|
10
10
|
def sass_load_paths
|
11
11
|
paths = pristine_sass_load_paths
|
12
|
-
common_assets = Jekyll.sanitized_path(File.join(MrHyde.
|
12
|
+
common_assets = Jekyll.sanitized_path(File.join(MrHyde.config['assets']), sass_dir)
|
13
13
|
paths << common_assets if File.directory? common_assets
|
14
14
|
|
15
15
|
paths
|
@@ -7,14 +7,14 @@ module Tags
|
|
7
7
|
class IncludeTag
|
8
8
|
=begin
|
9
9
|
def tag_includes_dir
|
10
|
-
File.join MrHyde.
|
10
|
+
File.join MrHyde.config['includes']
|
11
11
|
=end
|
12
12
|
|
13
13
|
def resolved_includes_dir(context)
|
14
14
|
path = File.join(File.realpath(context.registers[:site].source), @includes_dir)
|
15
15
|
|
16
16
|
unless File.directory? path
|
17
|
-
path = File.join(File.realpath(MrHyde.source),
|
17
|
+
path = File.join(File.realpath(MrHyde.source), @includes_dir)
|
18
18
|
end
|
19
19
|
|
20
20
|
path
|
data/lib/mr_hyde/site.rb
CHANGED
@@ -9,7 +9,7 @@ module MrHyde
|
|
9
9
|
def init(args, opts)
|
10
10
|
opts = MrHyde.configuration(opts)
|
11
11
|
@source = if opts['main']
|
12
|
-
File.join MrHyde.source
|
12
|
+
File.join MrHyde.source
|
13
13
|
else
|
14
14
|
File.join MrHyde.source, MrHyde.sources_sites
|
15
15
|
end
|
@@ -55,20 +55,17 @@ module MrHyde
|
|
55
55
|
# 'all' => 'all' Removes all built sites
|
56
56
|
# 'full' => 'full' Removes built and source site/s
|
57
57
|
#
|
58
|
-
def remove(args, opts = {})
|
58
|
+
def remove(args = nil, opts = {})
|
59
59
|
init(args, opts)
|
60
60
|
|
61
|
-
if
|
61
|
+
if not args.nil? and not args.empty?
|
62
|
+
remove_sites args, opts
|
63
|
+
elsif opts['all']
|
62
64
|
list(MrHyde.sources_sites).each do |sm|
|
63
65
|
remove_site sm, opts
|
64
66
|
end
|
65
|
-
elsif args.kind_of? Array
|
66
|
-
args.each do |sm|
|
67
|
-
remove_site sm, opts
|
68
|
-
end
|
69
|
-
else
|
70
|
-
remove_site args, opts
|
71
67
|
end
|
68
|
+
build
|
72
69
|
rescue Exception => e
|
73
70
|
MrHyde.logger.error "cannot remove the site: #{e}"
|
74
71
|
end
|
@@ -83,35 +80,21 @@ module MrHyde
|
|
83
80
|
# Hash
|
84
81
|
# 'all' => 'all' Builds all built sites
|
85
82
|
#
|
86
|
-
def build(args, opts = {})
|
83
|
+
def build(args = nil, opts = {})
|
87
84
|
init(args, opts)
|
88
85
|
|
89
|
-
|
90
|
-
|
91
|
-
build_main_site(opts) unless File.exist? MrHyde.destination
|
86
|
+
# If there is no destinarion folder then will be created
|
87
|
+
mk_destination(opts) unless File.exist? MrHyde.destination
|
92
88
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
end
|
100
|
-
else
|
101
|
-
if opts["all"]
|
102
|
-
build_main_site(opts)
|
103
|
-
build_sites sources_list, opts
|
104
|
-
else
|
105
|
-
# Fetching the list of built sites to rebuild again once the main site has been built
|
106
|
-
if File.exist? MrHyde.destination
|
107
|
-
nested_sites = built_list
|
108
|
-
build_main_site(opts)
|
109
|
-
build_sites nested_sites, opts
|
110
|
-
else
|
111
|
-
build_main_site(opts)
|
112
|
-
end
|
113
|
-
end
|
89
|
+
if not args.nil? and not args.empty?
|
90
|
+
build_sites args, opts
|
91
|
+
elsif opts["all"]
|
92
|
+
# Build all sites and after build/rebuild the main site
|
93
|
+
# so all global variables referent to nested site will be loaded
|
94
|
+
build_sites sources_list, opts
|
114
95
|
end
|
96
|
+
# By default the main site is built
|
97
|
+
build_main_site(opts)
|
115
98
|
rescue Exception => e
|
116
99
|
MrHyde.logger.error "cannot build site: #{e}"
|
117
100
|
MrHyde.logger.error e.backtrace
|
@@ -171,7 +154,7 @@ module MrHyde
|
|
171
154
|
end
|
172
155
|
|
173
156
|
def is_main?(name)
|
174
|
-
File.directory? File.join(
|
157
|
+
File.directory? File.join(name)
|
175
158
|
end
|
176
159
|
|
177
160
|
private
|
@@ -179,24 +162,29 @@ module MrHyde
|
|
179
162
|
def create_site(args, opts = {})
|
180
163
|
begin
|
181
164
|
if args.kind_of? Array
|
182
|
-
args.each
|
183
|
-
raise() if is_main(args)
|
184
|
-
end
|
165
|
+
args.each{ |name| raise() if is_main(name) }
|
185
166
|
else
|
186
167
|
raise() if is_main?(args)
|
187
168
|
end
|
188
|
-
rescue
|
169
|
+
rescue
|
189
170
|
raise ArgumentError, 'The site\'s name cannot be the same than the main site name'
|
190
171
|
end
|
191
172
|
|
192
173
|
MrHyde::Extensions::New.process [File.join(MrHyde.sources_sites, args)], opts
|
193
|
-
MrHyde.logger.info "New #{args} created in #{MrHyde.sources_sites}"
|
194
174
|
exist? args, opts
|
195
175
|
end
|
196
176
|
|
177
|
+
def remove_sites(args, opts = {})
|
178
|
+
args = [args] if args.kind_of? String
|
179
|
+
|
180
|
+
args.each do |sm|
|
181
|
+
remove_site sm, opts
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
197
185
|
def remove_site(name, opts = {})
|
198
|
-
#
|
199
|
-
# This checking is not mandatory, never can be removed
|
186
|
+
# OBSOLETE
|
187
|
+
# This checking is not mandatory, never can be removed from here the main site
|
200
188
|
if is_main?(name)
|
201
189
|
MrHyde.logger.warning "Cannot remove main site: #{name}"
|
202
190
|
return
|
@@ -213,6 +201,8 @@ module MrHyde
|
|
213
201
|
end
|
214
202
|
|
215
203
|
def build_sites(site_names, opts)
|
204
|
+
site_names = [site_names] if site_names.kind_of? String
|
205
|
+
|
216
206
|
site_names.each do |sn|
|
217
207
|
begin
|
218
208
|
build_site(sn, opts)
|
@@ -231,9 +221,18 @@ module MrHyde
|
|
231
221
|
|
232
222
|
def build_main_site(opts)
|
233
223
|
conf = MrHyde.main_site_configuration
|
224
|
+
keep_built_sites conf
|
234
225
|
Jekyll::Commands::Build.process conf
|
235
226
|
end
|
236
227
|
|
228
|
+
def keep_built_sites(conf)
|
229
|
+
conf['keep_files'] = built_list
|
230
|
+
end
|
231
|
+
|
232
|
+
def mk_destination(opts)
|
233
|
+
conf = MrHyde.main_site_configuration
|
234
|
+
Dir.mkdir conf["destination"]
|
235
|
+
end
|
237
236
|
|
238
237
|
def check_site(site_name, method, message)
|
239
238
|
if not send(method, site_name)
|
data/lib/mr_hyde/version.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -8,7 +8,7 @@ description: > # this means to ignore newlines until "baseurl:"
|
|
8
8
|
line in _config.yml. It will appear in your document head meta (for
|
9
9
|
Google search results) and in your feed.xml site description.
|
10
10
|
baseurl: "" # the subpath of your site, e.g. /blog/
|
11
|
-
mainsite: "
|
11
|
+
mainsite: "_site" # this is the name of the root default site, where all sites will be nested
|
12
12
|
url: "http://yourdomain.com" # the base hostname & protocol for your site
|
13
13
|
twitter_username: mrhyderb
|
14
14
|
github_username: mrhyde
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,2 +1,2 @@
|
|
1
1
|
# Mr. Hyde settings
|
2
|
-
mainsite: "
|
2
|
+
mainsite: "_site" # this is the name of the root default site, where all sites will be nested
|
@@ -0,0 +1,9 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
title: About
|
4
|
+
permalink: /about/
|
5
|
+
id: about
|
6
|
+
---
|
7
|
+
|
8
|
+
This is the base Mr. Hyde theme. You can customize it modifying the styles assets include in `root-folder/_assets/_sass` or just include you css files in the sites folder of your Mr. Hyde project and reference them in your html header.
|
9
|
+
|
File without changes
|
File without changes
|
@@ -5,7 +5,9 @@ permalink: /
|
|
5
5
|
id: home
|
6
6
|
---
|
7
7
|
|
8
|
-
Welcome to your first Mr. Hyde site. This page is a sample
|
8
|
+
Welcome to your first Mr. Hyde site. This page is a sample created by default when you make a new Mr. Hyde site, you can use it as a scaffold for your site or create a blank one (look options). You can find this file in `root-folder/site/index.html` but if you like to modify this file then open `root-folder/_site/index.md`.
|
9
|
+
Below you can see a list of sample subsites, click on them to know more about subsites.
|
10
|
+
All sites are created using [Jekyll](http://jekyllrb.com) including the main site. You can read more about Mr. Hyde usage documentation at [Mr. Hyde wiki](https://github.com/emoriarty/mr_hyde/wiki).
|
9
11
|
|
10
12
|
You can find the source code for the Mr. Hyde at: <a href="https://github.com/emoriarty/mr_hyde/">https://github.com/emoriarty/mr_hyde</a>.
|
11
13
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
---
|
2
2
|
layout: post
|
3
3
|
title: "Welcome to Mr. Hyde!"
|
4
|
-
date: <%= Time.now.strftime('%Y-%m-%d %H:%M:%S') %>
|
4
|
+
date: <%= Time.now.strftime('%Y-%m-%d %H:%M:%S %z') %>
|
5
5
|
categories: mrhyde jekyll update
|
6
6
|
---
|
7
7
|
![Dr. Jekyll and Mr. Hyde]({{ site.baseurl }}/assets/dr_jekyll_and_mr_hyde_poster.jpg)
|
8
8
|
|
9
|
-
You’ll find this post in your `
|
9
|
+
You’ll find this post in your `root-folder/_sites/sample-site/_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `mrhyde build`, which build your site, and after `mrhyde serve`, which launches a web server.
|
10
10
|
|
11
11
|
To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.
|
12
12
|
|
@@ -5,5 +5,5 @@ permalink: /about/
|
|
5
5
|
id: about
|
6
6
|
---
|
7
7
|
|
8
|
-
This is the base Mr. Hyde theme. You can customize it modifying the styles assets include in `
|
8
|
+
This is the base Mr. Hyde theme. You can customize it modifying the styles assets include in `root-fodler/_assets/_sass` or just include you css files in the sites folder of your Mr. Hyde project and reference them in your html header.
|
9
9
|
|
data/mr_hyde.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["enrique.arias.cervero@gmail.com"]
|
11
11
|
spec.summary = %q{Mr. Hyde lets you generate and manage as many sites as you want.}
|
12
12
|
spec.description = %q{Mr. Hyde lets you generate and manage as many sites as you want, something similar like Medium. It's based on Jekyll.}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "https://github.com/emoriarty/mr_hyde"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -20,7 +20,11 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.7"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
-
spec.add_development_dependency "minitest", "~> 5.
|
23
|
+
spec.add_development_dependency "minitest", "~> 5.8", ">= 5.8.4"
|
24
|
+
spec.add_development_dependency "minitest-reporters", "~> 1.1", ">= 1.1.7"
|
25
|
+
spec.add_development_dependency "pry"
|
26
|
+
spec.add_development_dependency "byebug", "~> 8.2.2"
|
24
27
|
|
25
|
-
spec.add_runtime_dependency "jekyll", "~>
|
28
|
+
spec.add_runtime_dependency "jekyll", "~> 3.1", ">=3.1.1"
|
29
|
+
spec.add_runtime_dependency "mercenary", "~> 0.3", ">=0.3.5"
|
26
30
|
end
|
data/spec/build_spec.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
require "minitest/autorun"
|
2
|
-
require "minitest/
|
2
|
+
require "minitest/reporters"
|
3
3
|
require "fileutils"
|
4
4
|
require_relative "../lib/mr_hyde"
|
5
5
|
require_relative "../lib/mr_hyde/site"
|
6
6
|
|
7
|
-
|
7
|
+
Minitest::Reporters.use! [Minitest::Reporters::SpecReporter.new, Minitest::Reporters::ProgressReporter.new]
|
8
|
+
|
9
|
+
describe "Checking MrHyde build command" do
|
8
10
|
before do
|
9
11
|
@site_name = 'test'
|
10
12
|
@nested_site_name = 'nested_site'
|
@@ -19,6 +21,11 @@ describe "Checking if MrHyde can build sites" do
|
|
19
21
|
FileUtils.remove_dir(@site_name) if File.exist? @site_name
|
20
22
|
end
|
21
23
|
|
24
|
+
it "can build the default site (main)" do
|
25
|
+
MrHyde::Site.build
|
26
|
+
File.exist?(@defaults['destination']).must_be :==, true
|
27
|
+
end
|
28
|
+
|
22
29
|
it "can build a single site" do
|
23
30
|
MrHyde::Site.create @nested_site_name
|
24
31
|
MrHyde::Site.build @nested_site_name
|
@@ -35,14 +42,24 @@ describe "Checking if MrHyde can build sites" do
|
|
35
42
|
end
|
36
43
|
end
|
37
44
|
|
38
|
-
it "can build all sites
|
45
|
+
it "can build all nested sites with --all option" do
|
39
46
|
site_names = []
|
40
47
|
5.times { |i| site_names << "#{@nested_site_name}_#{i}" }
|
41
48
|
MrHyde::Site.create site_names
|
42
|
-
MrHyde::Site.build [], { 'all' =>
|
49
|
+
MrHyde::Site.build [], { 'all' => true }
|
43
50
|
site_names.each do |sn|
|
44
51
|
File.exist?(File.join @defaults['destination'], sn).must_be :==, true
|
45
52
|
end
|
46
53
|
end
|
47
54
|
|
55
|
+
describe "building posts" do
|
56
|
+
it "all sites build a post within mrhyde or jekyll dir" do
|
57
|
+
MrHyde::Site.build nil, {'all' => true}
|
58
|
+
MrHyde::Site.built_list.each do |ns|
|
59
|
+
(File.exist?(File.join @defaults['destination'], ns, 'mrhyde') ||
|
60
|
+
File.exist?(File.join @defaults['destination'], ns, 'jekyll')).must_be :==, true
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
48
65
|
end
|
data/spec/list_spec.rb
CHANGED
data/spec/new_spec.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require "minitest/autorun"
|
2
|
-
require "minitest/
|
2
|
+
require "minitest/reporters"
|
3
3
|
require "fileutils"
|
4
4
|
require_relative "../lib/mr_hyde"
|
5
5
|
require_relative "../lib/mr_hyde/site"
|
@@ -21,30 +21,30 @@ describe "Checking if mrhyde can create new sites" do
|
|
21
21
|
MrHyde.create @site_name
|
22
22
|
|
23
23
|
File.exist?(@site_name).must_be :==, true
|
24
|
-
File.exist?(File.join @site_name
|
24
|
+
File.exist?(File.join @site_name).must_be :==, true
|
25
25
|
File.exist?(File.join @site_name, @defaults['config']).must_be :==, true
|
26
26
|
File.exist?(File.join @site_name, @defaults['jekyll_config']).must_be :==, true
|
27
|
-
File.exist?(File.join @site_name, @defaults['
|
28
|
-
File.exist?(File.join @site_name, @defaults['
|
29
|
-
File.exist?(File.join @site_name, @defaults['
|
30
|
-
File.exist?(File.join @site_name, @defaults['
|
31
|
-
File.exist?(File.join @site_name, @defaults['
|
32
|
-
File.exist?(File.join @site_name, @defaults['
|
27
|
+
File.exist?(File.join @site_name, @defaults['layouts_dir']).must_be :==, true
|
28
|
+
File.exist?(File.join @site_name, @defaults['includes_dir']).must_be :==, true
|
29
|
+
File.exist?(File.join @site_name, @defaults['assets']).must_be :==, true
|
30
|
+
File.exist?(File.join @site_name, @defaults['mainsite']).must_be :==, true
|
31
|
+
File.exist?(File.join @site_name, @defaults['sources_sites']).must_be :==, true
|
32
|
+
File.exist?(File.join @site_name, @defaults['mainsite'], 'index.md').must_be :==, true
|
33
33
|
end
|
34
34
|
|
35
35
|
it "creates a new MrHyde blank folder" do
|
36
36
|
MrHyde.create @site_name, 'blank' => true
|
37
37
|
|
38
38
|
File.exist?(@site_name).must_be :==, true
|
39
|
-
File.exist?(File.join @site_name
|
39
|
+
File.exist?(File.join @site_name).must_be :==, true
|
40
40
|
File.exist?(File.join @site_name, @defaults['config']).must_be :==, false
|
41
41
|
File.exist?(File.join @site_name, @defaults['jekyll_config']).must_be :==, false
|
42
|
-
File.exist?(File.join @site_name, @defaults['
|
43
|
-
File.exist?(File.join @site_name, @defaults['
|
44
|
-
File.exist?(File.join @site_name, @defaults['
|
45
|
-
File.exist?(File.join @site_name, @defaults['
|
46
|
-
File.exist?(File.join @site_name, @defaults['
|
47
|
-
File.exist?(File.join @site_name, @defaults['
|
42
|
+
File.exist?(File.join @site_name, @defaults['layouts_dir']).must_be :==, true
|
43
|
+
File.exist?(File.join @site_name, @defaults['includes_dir']).must_be :==, true
|
44
|
+
File.exist?(File.join @site_name, @defaults['assets']).must_be :==, false
|
45
|
+
File.exist?(File.join @site_name, @defaults['mainsite']).must_be :==, true
|
46
|
+
File.exist?(File.join @site_name, @defaults['sources_sites']).must_be :==, false
|
47
|
+
File.exist?(File.join @site_name, @defaults['mainsite'], 'index.html').must_be :==, true
|
48
48
|
end
|
49
49
|
|
50
50
|
it "cannot create over an existing folder" do
|
@@ -57,6 +57,14 @@ describe "Checking if mrhyde can create new sites" do
|
|
57
57
|
lambda { MrHyde.create(@site_name, 'force' => true)}.must_be_silent
|
58
58
|
end
|
59
59
|
|
60
|
+
describe "sample files" do
|
61
|
+
it "are generated" do
|
62
|
+
MrHyde.create @site_name
|
63
|
+
File.exist?(File.join @site_name, @defaults['sources_sites'], 'sample-site').must_be :==, true
|
64
|
+
File.exist?(File.join @site_name, @defaults['sources_sites'], 'sample-full-site').must_be :==, true
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
60
68
|
describe "nested sites" do
|
61
69
|
before do
|
62
70
|
MrHyde.create @site_name
|
@@ -65,7 +73,7 @@ describe "Checking if mrhyde can create new sites" do
|
|
65
73
|
it "can create a single site" do
|
66
74
|
Dir.chdir(@site_name) do
|
67
75
|
MrHyde::Site.create @nested_site_name
|
68
|
-
File.exist?(File.join @defaults['
|
76
|
+
File.exist?(File.join @defaults['sources_sites'], @nested_site_name).must_be :==, true
|
69
77
|
end
|
70
78
|
end
|
71
79
|
|
@@ -75,7 +83,7 @@ describe "Checking if mrhyde can create new sites" do
|
|
75
83
|
10.times { |i| arr_blog_names << "#{@nested_site_name}_#{i}" }
|
76
84
|
MrHyde::Site.create arr_blog_names
|
77
85
|
arr_blog_names.each do |bn|
|
78
|
-
File.exist?(File.join @defaults['
|
86
|
+
File.exist?(File.join @defaults['sources_sites'], bn).must_be :==, true
|
79
87
|
end
|
80
88
|
end
|
81
89
|
end
|
data/spec/rm_spec.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
require "minitest/autorun"
|
2
|
-
require "minitest/pride"
|
3
2
|
require "fileutils"
|
4
3
|
require_relative "../lib/mr_hyde"
|
5
4
|
require_relative "../lib/mr_hyde/site"
|
6
5
|
|
7
|
-
describe "
|
6
|
+
describe "Checking is Mr. Hyde remove command" do
|
8
7
|
before do
|
9
8
|
@tmp_dir = Dir.mktmpdir('mrhyde_new_test')
|
10
9
|
@site_name = 'test'
|
@@ -32,7 +31,7 @@ describe "MrHyde" do
|
|
32
31
|
|
33
32
|
def remove_site(site, opts = {})
|
34
33
|
create_build_remove site, opts
|
35
|
-
File.exist?(File.join @defaults['
|
34
|
+
File.exist?(File.join @defaults['sources_sites'], site).must_be :==, (opts['full'] ? false : true)
|
36
35
|
File.exist?(File.join @defaults['destination'], site).must_be :==, false
|
37
36
|
end
|
38
37
|
|
@@ -42,7 +41,7 @@ describe "MrHyde" do
|
|
42
41
|
|
43
42
|
create_build_remove site_names, opts
|
44
43
|
site_names.each do |sn|
|
45
|
-
File.exist?(File.join @defaults['
|
44
|
+
File.exist?(File.join @defaults['sources_sites'], sn).must_be :==, (opts['full'] ? false : true)
|
46
45
|
File.exist?(File.join @defaults['destination'], sn).must_be :==, false
|
47
46
|
end
|
48
47
|
end
|
@@ -56,19 +55,19 @@ describe "MrHyde" do
|
|
56
55
|
remove_sites @nested_site_name, 5
|
57
56
|
end
|
58
57
|
|
59
|
-
it "can remove all built sites" do
|
60
|
-
remove_sites @nested_site_name, 5, { 'all' =>
|
58
|
+
it "can remove all built sites with option --all" do
|
59
|
+
remove_sites @nested_site_name, 5, { 'all' => true }
|
61
60
|
end
|
62
61
|
|
63
|
-
it "can remove a site completely" do
|
64
|
-
remove_site @nested_site_name, { 'full' =>
|
62
|
+
it "can remove a site completely with option --full" do
|
63
|
+
remove_site @nested_site_name, { 'full' => true }
|
65
64
|
end
|
66
65
|
|
67
|
-
it "can remove a list of sites completely" do
|
68
|
-
remove_sites @nested_site_name, 5, { 'full' =>
|
66
|
+
it "can remove a list of sites completely with option --full" do
|
67
|
+
remove_sites @nested_site_name, 5, { 'full' => true }
|
69
68
|
end
|
70
69
|
|
71
|
-
it "can remove all sites completely" do
|
72
|
-
remove_sites @nested_site_name, 5, { 'all' =>
|
70
|
+
it "can remove all sites completely (--all and --full)" do
|
71
|
+
remove_sites @nested_site_name, 5, { 'all' => true, 'full' => true }
|
73
72
|
end
|
74
73
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
require "minitest/reporters"
|
3
|
+
require "jekyll"
|
4
|
+
require_relative "../lib/mr_hyde"
|
5
|
+
|
6
|
+
Minitest::Reporters.use!
|
7
|
+
|
8
|
+
class TestConfiguration < Minitest::Test
|
9
|
+
def setup
|
10
|
+
@jekyll_config = Jekyll::Configuration::DEFAULTS
|
11
|
+
@mrhyde_config = MrHyde::Configuration::JEKYLL_DEFAULTS
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_that_if_configuration_defaults_ids_match
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mr_hyde
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Enrique Arias Cervero
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,40 +44,108 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '5.
|
47
|
+
version: '5.8'
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 5.4
|
50
|
+
version: 5.8.4
|
51
51
|
type: :development
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - "~>"
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: '5.
|
57
|
+
version: '5.8'
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 5.4
|
60
|
+
version: 5.8.4
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: minitest-reporters
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.1'
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 1.1.7
|
71
|
+
type: :development
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.1'
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 1.1.7
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: pry
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: byebug
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - "~>"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 8.2.2
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - "~>"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 8.2.2
|
61
109
|
- !ruby/object:Gem::Dependency
|
62
110
|
name: jekyll
|
63
111
|
requirement: !ruby/object:Gem::Requirement
|
64
112
|
requirements:
|
65
113
|
- - "~>"
|
66
114
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
68
|
-
- -
|
115
|
+
version: '3.1'
|
116
|
+
- - ">="
|
69
117
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
118
|
+
version: 3.1.1
|
71
119
|
type: :runtime
|
72
120
|
prerelease: false
|
73
121
|
version_requirements: !ruby/object:Gem::Requirement
|
74
122
|
requirements:
|
75
123
|
- - "~>"
|
76
124
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
78
|
-
- -
|
125
|
+
version: '3.1'
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: 3.1.1
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: mercenary
|
131
|
+
requirement: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - "~>"
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0.3'
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.3.5
|
139
|
+
type: :runtime
|
140
|
+
prerelease: false
|
141
|
+
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0.3'
|
146
|
+
- - ">="
|
79
147
|
- !ruby/object:Gem::Version
|
80
|
-
version:
|
148
|
+
version: 0.3.5
|
81
149
|
description: Mr. Hyde lets you generate and manage as many sites as you want, something
|
82
150
|
similar like Medium. It's based on Jekyll.
|
83
151
|
email:
|
@@ -109,26 +177,25 @@ files:
|
|
109
177
|
- lib/mr_hyde/jekyll_ext/tags/include.rb
|
110
178
|
- lib/mr_hyde/site.rb
|
111
179
|
- lib/mr_hyde/version.rb
|
180
|
+
- lib/site_template/_assets/_sass/_base.scss
|
181
|
+
- lib/site_template/_assets/_sass/_functions.scss
|
182
|
+
- lib/site_template/_assets/_sass/_grid.scss
|
183
|
+
- lib/site_template/_assets/_sass/_layout.scss
|
184
|
+
- lib/site_template/_assets/_sass/_newbase.scss
|
185
|
+
- lib/site_template/_assets/_sass/_normalize.scss
|
186
|
+
- lib/site_template/_assets/_sass/_syntax-highlighting.scss
|
112
187
|
- lib/site_template/_config.yml
|
188
|
+
- lib/site_template/_includes/footer.html
|
189
|
+
- lib/site_template/_includes/head.html
|
190
|
+
- lib/site_template/_includes/header.html
|
191
|
+
- lib/site_template/_layouts/default.html
|
192
|
+
- lib/site_template/_layouts/page.html
|
193
|
+
- lib/site_template/_layouts/post.html
|
113
194
|
- lib/site_template/_mrhyde.yml
|
114
|
-
- lib/site_template/
|
115
|
-
- lib/site_template/
|
116
|
-
- lib/site_template/
|
117
|
-
- lib/site_template/
|
118
|
-
- lib/site_template/sources/_assets/_sass/_newbase.scss
|
119
|
-
- lib/site_template/sources/_assets/_sass/_normalize.scss
|
120
|
-
- lib/site_template/sources/_assets/_sass/_syntax-highlighting.scss
|
121
|
-
- lib/site_template/sources/_includes/footer.html
|
122
|
-
- lib/site_template/sources/_includes/head.html
|
123
|
-
- lib/site_template/sources/_includes/header.html
|
124
|
-
- lib/site_template/sources/_layouts/default.html
|
125
|
-
- lib/site_template/sources/_layouts/page.html
|
126
|
-
- lib/site_template/sources/_layouts/post.html
|
127
|
-
- lib/site_template/sources/main_site/about.md
|
128
|
-
- lib/site_template/sources/main_site/css/main.scss
|
129
|
-
- lib/site_template/sources/main_site/css/normalize.css
|
130
|
-
- lib/site_template/sources/main_site/index.md
|
131
|
-
- lib/site_template/sources/main_site/js/main.coffee
|
195
|
+
- lib/site_template/_site/about.md
|
196
|
+
- lib/site_template/_site/css/main.scss
|
197
|
+
- lib/site_template/_site/css/normalize.css
|
198
|
+
- lib/site_template/_site/index.md
|
132
199
|
- lib/subsite_template/_config.yml
|
133
200
|
- lib/subsite_template/_posts/0000-00-00-welcome-to-mr-hyde.markdown.erb
|
134
201
|
- lib/subsite_template/about.md
|
@@ -142,7 +209,8 @@ files:
|
|
142
209
|
- spec/list_spec.rb
|
143
210
|
- spec/new_spec.rb
|
144
211
|
- spec/rm_spec.rb
|
145
|
-
|
212
|
+
- test/configuraton_test.rb
|
213
|
+
homepage: https://github.com/emoriarty/mr_hyde
|
146
214
|
licenses:
|
147
215
|
- MIT
|
148
216
|
metadata: {}
|
@@ -162,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
230
|
version: '0'
|
163
231
|
requirements: []
|
164
232
|
rubyforge_project:
|
165
|
-
rubygems_version: 2.
|
233
|
+
rubygems_version: 2.5.2
|
166
234
|
signing_key:
|
167
235
|
specification_version: 4
|
168
236
|
summary: Mr. Hyde lets you generate and manage as many sites as you want.
|
@@ -171,3 +239,4 @@ test_files:
|
|
171
239
|
- spec/list_spec.rb
|
172
240
|
- spec/new_spec.rb
|
173
241
|
- spec/rm_spec.rb
|
242
|
+
- test/configuraton_test.rb
|
@@ -1,9 +0,0 @@
|
|
1
|
-
---
|
2
|
-
layout: page
|
3
|
-
title: About
|
4
|
-
permalink: /about/
|
5
|
-
id: about
|
6
|
-
---
|
7
|
-
|
8
|
-
This is the base Mr. Hyde theme. You can customize it modifying the styles assets include in `sources/_assets/_sass` or just include you css files in the sites folder of your Mr. Hyde project and reference them in your html header.
|
9
|
-
|
@@ -1,27 +0,0 @@
|
|
1
|
-
---
|
2
|
-
---
|
3
|
-
setCurrentPage = ->
|
4
|
-
pathname = document.location.pathname
|
5
|
-
currentLink = undefined
|
6
|
-
baseurl = document.querySelector('[data-baseurl]').getAttribute('data-baseurl')
|
7
|
-
cleanBaseUrl = pathname.replace(baseurl, '')
|
8
|
-
if cleanBaseUrl == '/'
|
9
|
-
currentLink = document.getElementById('home')
|
10
|
-
else
|
11
|
-
navLinks = document.querySelectorAll('.main-navigation ul li')
|
12
|
-
i = 0
|
13
|
-
while i < navLinks.length
|
14
|
-
navLink = navLinks[i]
|
15
|
-
regexp = new RegExp('/' + navLink.id + '/')
|
16
|
-
matchResult = cleanBaseUrl.match(regexp)
|
17
|
-
if matchResult and matchResult.length > 0
|
18
|
-
currentLink = navLink
|
19
|
-
i++
|
20
|
-
currentLink.classList.add 'current-menu-item'
|
21
|
-
return
|
22
|
-
|
23
|
-
init = ->
|
24
|
-
setCurrentPage()
|
25
|
-
return
|
26
|
-
|
27
|
-
window.addEventListener 'DOMContentLoaded', init
|