Add rake preview
task for testing /test
during theme development
This commit is contained in:
parent
c4252b09af
commit
91afe6c2d8
3 changed files with 84 additions and 3 deletions
|
@ -94,6 +94,12 @@ To help me out try to avoid creating pull requests on `master` and instead branc
|
||||||
|
|
||||||
Theme documentation and demo pages can be found in the [`/docs`](docs) if submitting improvements, typo corrections, etc.
|
Theme documentation and demo pages can be found in the [`/docs`](docs) if submitting improvements, typo corrections, etc.
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
To set up your environment to develop this theme, run `bundle install`.
|
||||||
|
|
||||||
|
To test the theme, run `bundle exec rake preview` and open your browser at `http://localhost:4000/test/`. This starts a Jekyll server using your theme and the contents of the `test/` directory. As you make modifications to your theme and to the example site, your site will regenerate and you should see the changes in the browser after a refresh.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
75
Rakefile
Normal file
75
Rakefile
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
require "bundler/gem_tasks"
|
||||||
|
require "jekyll"
|
||||||
|
require "listen"
|
||||||
|
|
||||||
|
def listen_ignore_paths(base, options)
|
||||||
|
[
|
||||||
|
/_config\.ya?ml/,
|
||||||
|
/_site/,
|
||||||
|
/\.jekyll-metadata/
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def listen_handler(base, options)
|
||||||
|
site = Jekyll::Site.new(options)
|
||||||
|
Jekyll::Command.process_site(site)
|
||||||
|
proc do |modified, added, removed|
|
||||||
|
t = Time.now
|
||||||
|
c = modified + added + removed
|
||||||
|
n = c.length
|
||||||
|
relative_paths = c.map{ |p| Pathname.new(p).relative_path_from(base).to_s }
|
||||||
|
print Jekyll.logger.message("Regenerating:", "#{relative_paths.join(", ")} changed... ")
|
||||||
|
begin
|
||||||
|
Jekyll::Command.process_site(site)
|
||||||
|
puts "regenerated in #{Time.now - t} seconds."
|
||||||
|
rescue => e
|
||||||
|
puts "error:"
|
||||||
|
Jekyll.logger.warn "Error:", e.message
|
||||||
|
Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
task :preview do
|
||||||
|
base = Pathname.new('.').expand_path
|
||||||
|
options = {
|
||||||
|
"source" => base.join('test').to_s,
|
||||||
|
"destination" => base.join('test/_site').to_s,
|
||||||
|
"force_polling" => false,
|
||||||
|
"serving" => true,
|
||||||
|
"theme" => "minimal-mistakes-jekyll"
|
||||||
|
}
|
||||||
|
|
||||||
|
options = Jekyll.configuration(options)
|
||||||
|
|
||||||
|
ENV["LISTEN_GEM_DEBUGGING"] = "1"
|
||||||
|
listener = Listen.to(
|
||||||
|
base.join("_includes"),
|
||||||
|
base.join("_layouts"),
|
||||||
|
base.join("_sass"),
|
||||||
|
base.join("assets"),
|
||||||
|
options["source"],
|
||||||
|
:ignore => listen_ignore_paths(base, options),
|
||||||
|
:force_polling => options['force_polling'],
|
||||||
|
&(listen_handler(base, options))
|
||||||
|
)
|
||||||
|
|
||||||
|
begin
|
||||||
|
listener.start
|
||||||
|
Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options["source"]}'"
|
||||||
|
|
||||||
|
unless options['serving']
|
||||||
|
trap("INT") do
|
||||||
|
listener.stop
|
||||||
|
puts " Halting auto-regeneration."
|
||||||
|
exit 0
|
||||||
|
end
|
||||||
|
|
||||||
|
loop { sleep 1000 }
|
||||||
|
end
|
||||||
|
rescue ThreadError
|
||||||
|
# You pressed Ctrl-C, oh my!
|
||||||
|
end
|
||||||
|
|
||||||
|
Jekyll::Commands::Serve.process(options)
|
||||||
|
end
|
|
@ -14,7 +14,7 @@ title_separator : "-"
|
||||||
name : "Your Name"
|
name : "Your Name"
|
||||||
description : "Minimal Mistakes theme test."
|
description : "Minimal Mistakes theme test."
|
||||||
url : # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
|
url : # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
|
||||||
baseurl : # the subpath of your site, e.g. "/blog"
|
baseurl : "/test"
|
||||||
repository : # GitHub username/repo-name e.g. "mmistakes/minimal-mistakes"
|
repository : # GitHub username/repo-name e.g. "mmistakes/minimal-mistakes"
|
||||||
teaser : # path of fallback teaser image, e.g. "/assets/images/500x300.png"
|
teaser : # path of fallback teaser image, e.g. "/assets/images/500x300.png"
|
||||||
# breadcrumbs : false # true, false (default)
|
# breadcrumbs : false # true, false (default)
|
||||||
|
@ -57,7 +57,7 @@ yandex_site_verification :
|
||||||
|
|
||||||
# Social Sharing
|
# Social Sharing
|
||||||
twitter:
|
twitter:
|
||||||
username :
|
username : "mmistakes"
|
||||||
facebook:
|
facebook:
|
||||||
username :
|
username :
|
||||||
app_id :
|
app_id :
|
||||||
|
@ -102,7 +102,7 @@ author:
|
||||||
stackoverflow : # "123456/username" (the last part of your profile url, e.g. http://stackoverflow.com/users/123456/username)
|
stackoverflow : # "123456/username" (the last part of your profile url, e.g. http://stackoverflow.com/users/123456/username)
|
||||||
steam :
|
steam :
|
||||||
tumblr :
|
tumblr :
|
||||||
twitter :
|
twitter : "mmistakes"
|
||||||
vine :
|
vine :
|
||||||
weibo :
|
weibo :
|
||||||
xing :
|
xing :
|
||||||
|
|
Loading…
Reference in a new issue