-
Notifications
You must be signed in to change notification settings - Fork 278
/
Rakefile
94 lines (75 loc) · 2.87 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Copyright © Magento, Inc. All rights reserved.
# See COPYING.txt for license details.
# frozen_string_literal: true
# This file contains tasks with no namespace.
# All namespaced tasks are defined in the 'rakelib' directory.
# Each namespace is defined in a separate file.
# For example, 'preview:all' is defined in the 'rakelib/preview.rake' file.
# To see the list of tasks to use, run 'rake -T'.
require 'html-proofer'
require 'kramdown'
require 'launchy'
require 'colorator'
# Require helper methods from the 'lib' directory
Dir.glob('lib/**/*.rb') { |file| require_relative(file) }
desc "Same as 'rake', 'rake preview'"
task default: %w[preview]
desc "Same as 'test:report'"
task test: %w[test:md test:report test:unused_images test:unused_includes]
desc 'Preview the devdocs locally'
task preview: %w[preview:local]
task :clean do
print 'Cleaning after the last site generation: $ '.magenta
sh 'bundle exec jekyll clean'
puts 'Clean!'.green
end
task :install do
print 'Installing gems listed in the Gemfile: $ '.magenta
sh 'bundle install'
puts 'Installed!'.green
end
task build: %w[build:dev]
desc 'Check modified files. To check all files at the particular path, provide the path (e.g. path=src/images/images)'
task check: %w[check:image_optim check:mdl]
desc "Generate data for a news digest. Default timeframe is since last update (determined automatically).
For a custom date, use the 'since' variable: rake whatsnew since='jul 4'"
task :whatsnew do
since = ENV['since']
current_file = 'src/_data/whats-new.yml'
generated_file = 'tmp/whats-new.yml'
current_data = YAML.load_file current_file
last_update = current_data['updated']
print 'Generating data for the What\'s New digest: $ '.magenta
# Generate tmp/whats-new.yml
report =
if since.nil? || since.empty?
`bin/whatsup_github since '#{last_update}'`
elsif since.is_a? String
`bin/whatsup_github since '#{since}'`
else
abort 'The "since" argument must be a string. Example: "jul 4"'
end
# Merge generated tmp/whats-new.yml with existing src/_data/whats-new.yml
generated_data = YAML.load_file generated_file
current_data['updated'] = generated_data['updated']
current_data['entries'].prepend(generated_data['entries']).flatten!
current_data['entries'].uniq! { |entry| entry['link'] }
puts "Writing updates to #{current_file}"
File.write current_file, current_data.to_yaml
abort report if report.include? 'MISSING whatsnew'
puts report
end
desc 'Generate index for Algolia'
task :index do
puts 'Generating index for Algolia ...'
sh 'bin/jekyll',
'algolia',
'--config=_config.yml,_config.index.yml'
end
desc 'Convert HTML text to kramdown in your terminal'
task :convert do
puts 'Paste HTML text followed by a new line and press Control-D.'.magenta
result = `bin/kramdown --input=html --output=kramdown`
puts 'Converted text:'.magenta
puts result.bold
end