wax_tasks 0.0.1 → 0.0.2
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 +4 -4
- data/Gemfile +2 -0
- data/lib/tasks/config.rake +3 -3
- data/lib/tasks/ghbranch.rake +14 -15
- data/lib/tasks/iiif.rake +27 -27
- data/lib/tasks/lunr.rake +35 -44
- data/lib/tasks/pagemaster.rake +49 -47
- data/lib/tasks/s3branch.rake +14 -14
- data/lib/tasks/test.rake +7 -9
- metadata +82 -12
- data/README.md +0 -92
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 823956054c121e807115077ba59f73c6e1a11bd8
|
4
|
+
data.tar.gz: c3e1e49fa4f00782b45359857aa102382aa61828
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9753ef5e8f16ad101cec17e5282dd8a0f6c374b678a0b3cb4492286002ca2645bfeaecedc87a9d61438d9788cc37b4e734f3181d754f97df8b887476de9c87a2
|
7
|
+
data.tar.gz: edef1c3c3c8781a694efa195f31ca8c6724f8c4e8511d7acaecab66037eff1658f5dbb56c9335486bced3e6d84604e10cdd7fde24c7215fc55e71481a8784728
|
data/Gemfile
ADDED
data/lib/tasks/config.rake
CHANGED
@@ -7,9 +7,9 @@ namespace :wax do
|
|
7
7
|
begin
|
8
8
|
$config = YAML.load_file('_config.yml')
|
9
9
|
$argv = ARGV.drop(1)
|
10
|
-
$argv.each { |a| task a.to_sym do
|
11
|
-
rescue
|
12
|
-
puts
|
10
|
+
$argv.each { |a| task a.to_sym do; end }
|
11
|
+
rescue StandardError
|
12
|
+
puts('Cannot load _config.yml').magenta
|
13
13
|
exit 1
|
14
14
|
end
|
15
15
|
end
|
data/lib/tasks/ghbranch.rake
CHANGED
@@ -1,34 +1,33 @@
|
|
1
1
|
require 'jekyll'
|
2
2
|
require 'tmpdir'
|
3
3
|
require 'fileutils'
|
4
|
-
require 'colorized_string'
|
5
4
|
|
6
5
|
namespace :wax do
|
7
6
|
desc 'build site with gh-baseurl and publish to gh-pages branch'
|
8
7
|
task :ghbranch => :config do
|
9
8
|
FileUtils.rm_rf('_site')
|
10
9
|
|
11
|
-
|
10
|
+
opts = {
|
11
|
+
'source' => '.',
|
12
|
+
'destination' => '_site',
|
13
|
+
'config' => '_config.yml',
|
14
|
+
'baseurl' => $config['gh-baseurl'],
|
15
|
+
'incremental' => true,
|
16
|
+
'verbose' => true
|
17
|
+
}
|
12
18
|
|
13
|
-
Jekyll::Site.new(Jekyll.configuration(
|
14
|
-
"source" => ".",
|
15
|
-
"destination" => "_site",
|
16
|
-
"config" => "_config.yml",
|
17
|
-
"baseurl" => baseurl,
|
18
|
-
"incremental" => true,
|
19
|
-
"verbose" => true
|
20
|
-
})).process
|
19
|
+
Jekyll::Site.new(Jekyll.configuration(opts)).process
|
21
20
|
|
22
21
|
origin = `git config --get remote.origin.url`
|
23
22
|
|
24
23
|
Dir.mktmpdir do |tmp|
|
25
|
-
cp_r
|
24
|
+
cp_r '_site/.', tmp
|
26
25
|
Dir.chdir tmp
|
27
26
|
|
28
|
-
system
|
29
|
-
system "git add . && git commit -m 'Site updated at
|
30
|
-
system
|
31
|
-
system
|
27
|
+
system 'git init' # Init the repo.
|
28
|
+
system "git add . && git commit -m 'Site updated at " + Time.now.utc + "'"
|
29
|
+
system 'git remote add origin ' + origin
|
30
|
+
system 'git push origin master:refs/heads/gh-pages --force'
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
data/lib/tasks/iiif.rake
CHANGED
@@ -3,48 +3,48 @@ require 'iiif_s3'
|
|
3
3
|
|
4
4
|
namespace :wax do
|
5
5
|
task :iiif => :config do
|
6
|
-
|
7
|
-
FileUtils::mkdir_p 'tiles'
|
6
|
+
FileUtils.mkdir_p './_iiif/tiles'
|
8
7
|
imagedata = []
|
9
8
|
id_counter = 0
|
10
|
-
|
11
9
|
if $argv.empty?
|
12
|
-
puts
|
10
|
+
puts("You must specify one or more collections after 'bundle exec rake wax:iiif' to generate.").magenta
|
13
11
|
exit 1
|
14
12
|
else
|
13
|
+
build_opts = {
|
14
|
+
:base_url => $config['baseurl'] + '/tiles',
|
15
|
+
:output_dir => './_iiif/tiles',
|
16
|
+
:tile_scale_factors => [1, 2],
|
17
|
+
:verbose => true
|
18
|
+
}
|
15
19
|
$argv.each do |a|
|
16
|
-
dirpath = './_iiif/' + a
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
else
|
21
|
-
id_counter+=1
|
22
|
-
imagefiles = Dir[dirpath + "/*"].sort!
|
20
|
+
dirpath = './_iiif/source_images/' + a
|
21
|
+
if Dir.exist?(dirpath)
|
22
|
+
id_counter += 1
|
23
|
+
imagefiles = Dir[dirpath + '/*'].sort!
|
23
24
|
counter = 1
|
24
25
|
imagefiles.each do |imagefile|
|
25
26
|
begin
|
26
|
-
basename = File.basename(imagefile,
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
27
|
+
basename = File.basename(imagefile, '.*').to_s
|
28
|
+
record_opts = {
|
29
|
+
:id => a + '-' + basename,
|
30
|
+
:is_document => false,
|
31
|
+
:path => imagefile,
|
32
|
+
:label => $config['title'] + ' - ' + a + ' - ' + basename
|
33
|
+
}
|
34
|
+
i = IiifS3::ImageRecord.new(record_opts)
|
35
|
+
counter += 1
|
34
36
|
imagedata.push(i)
|
35
|
-
rescue
|
36
|
-
puts
|
37
|
+
rescue StandardError
|
38
|
+
puts('Failed to convert image ' + imagefile + '.').magenta
|
37
39
|
exit 1
|
38
40
|
end
|
39
41
|
end
|
42
|
+
else
|
43
|
+
puts("Source path '" + dirpath + "' does not exist. Exiting.").magenta
|
44
|
+
exit 1
|
40
45
|
end
|
41
46
|
end
|
42
|
-
builder = IiifS3::Builder.new(
|
43
|
-
:base_url => $config["baseurl"] + "/tiles",
|
44
|
-
:output_dir => "./tiles",
|
45
|
-
:tile_scale_factors => [1,2],
|
46
|
-
:verbose => true
|
47
|
-
})
|
47
|
+
builder = IiifS3::Builder.new(build_opts)
|
48
48
|
builder.load(imagedata)
|
49
49
|
builder.process_data()
|
50
50
|
end
|
data/lib/tasks/lunr.rake
CHANGED
@@ -5,75 +5,66 @@ require 'colorized_string'
|
|
5
5
|
namespace :wax do
|
6
6
|
desc 'build lunr search index'
|
7
7
|
task :lunr => :config do
|
8
|
-
|
9
|
-
meta = $config['lunr']['meta']
|
10
|
-
name = $config['lunr']['name'].to_s
|
11
8
|
total_fields = []
|
12
9
|
count = 0
|
13
|
-
|
14
10
|
front_matter = "---\nlayout: null\n---"
|
15
11
|
store_string = "\nvar store = ["
|
16
12
|
index_string = "\nvar index = new elasticlunr.Index;\nindex.setRef('lunr_id');\nindex.saveDocument(false);"
|
17
|
-
if $config['
|
18
|
-
|
13
|
+
index_string += "\nindex.pipeline.remove(elasticlunr.trimmer);" if $config['lunr_language']
|
14
|
+
collections = $config['collections']
|
15
|
+
has_content = false
|
16
|
+
collections.each do |c|
|
17
|
+
if c[1].key?('lunr_index') && c[1]['lunr_index'].key?('fields')
|
18
|
+
total_fields.concat c[1]['lunr_index']['fields']
|
19
|
+
end
|
20
|
+
has_content = true if c[1]['lunr_index']['content']
|
19
21
|
end
|
20
|
-
|
21
|
-
if
|
22
|
-
puts "
|
22
|
+
total_fields << 'content' if has_content
|
23
|
+
if total_fields.uniq.empty?
|
24
|
+
puts "Fields are not properly configured.".magenta
|
23
25
|
exit 1
|
24
26
|
else
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
meta.each do |collection|
|
35
|
-
|
36
|
-
dir = collection['dir']
|
37
|
-
perma = collection['permalink']
|
38
|
-
fields = collection['fields']
|
39
|
-
|
40
|
-
puts ("Loading pages from " + dir).cyan
|
41
|
-
|
42
|
-
Dir.glob(dir+"/*").each do |md|
|
27
|
+
total_fields.uniq.each { |f| index_string += "\nindex.addField(" + "'" + f + "'" + "); " }
|
28
|
+
collections.each do |collection|
|
29
|
+
name = collection[0]
|
30
|
+
collection = collection[1]
|
31
|
+
if collection.key?('lunr_index') && collection['lunr_index'].key?('fields')
|
32
|
+
dir = collection['directory'] || '_' + name
|
33
|
+
fields = collection['lunr_index']['fields']
|
34
|
+
puts "Loading pages from #{dir}".cyan
|
35
|
+
Dir.glob(dir + '/*.md').each do |md|
|
43
36
|
begin
|
44
37
|
yaml = YAML.load_file(md)
|
45
|
-
hash =
|
38
|
+
hash = {}
|
46
39
|
hash['lunr_id'] = count
|
47
|
-
hash['link'] =
|
48
|
-
fields.each { |f| hash[f] =
|
49
|
-
if
|
40
|
+
hash['link'] = '{{ site.baseurl }}' + yaml['permalink']
|
41
|
+
fields.uniq.each { |f| hash[f] = yaml[f].to_s }
|
42
|
+
if collection['lunr_index']['content']
|
50
43
|
hash['content'] = clean(File.read(md))
|
51
44
|
end
|
52
45
|
index_string += "\nindex.addDoc(" + hash.to_json + "); "
|
53
46
|
store_string += "\n" + hash.to_json + ", "
|
54
47
|
count += 1
|
55
|
-
rescue
|
56
|
-
puts
|
48
|
+
rescue StandardError
|
49
|
+
puts "Cannot load data from markdown pages in #{dir}.".magenta
|
57
50
|
exit 1
|
58
51
|
end
|
59
52
|
end
|
60
53
|
end
|
61
|
-
|
62
|
-
store_string = store_string.chomp(", ") + "];"
|
63
|
-
|
64
|
-
Dir.mkdir('js') unless File.exists?('js')
|
65
|
-
File.open("js/lunr-index.js", 'w') { |file| file.write( front_matter + index_string + store_string ) }
|
66
|
-
puts ("Writing lunr index to " + "js/lunr-index.js").green
|
67
54
|
end
|
55
|
+
store_string = store_string.chomp(', ') + '];'
|
56
|
+
Dir.mkdir('js') unless File.exist?('js')
|
57
|
+
File.open('js/lunr-index.js', 'w') { |file| file.write(front_matter + index_string + store_string) }
|
58
|
+
puts "Writing lunr index to js/lunr-index.js".cyan
|
68
59
|
end
|
69
60
|
end
|
70
61
|
end
|
71
62
|
|
72
63
|
def clean(str)
|
73
|
-
str = str.gsub(/\A---(.|\n)*?---/,
|
74
|
-
str = str.gsub(/{%(.*)%}/,
|
75
|
-
str = str.gsub(/<\/?[^>]*>/,
|
76
|
-
str = str.gsub(
|
77
|
-
str = str.
|
64
|
+
str = str.gsub(/\A---(.|\n)*?---/, '') # remove yaml front matter
|
65
|
+
str = str.gsub(/{%(.*)%}/, '') # remove functional liquid
|
66
|
+
str = str.gsub(/<\/?[^>]*>/, '') # remove html
|
67
|
+
str = str.gsub('\\n', '').gsub(/\s+/, ' ') # remove newlines and extra space
|
68
|
+
str = str.tr('"', "'").to_s # replace double quotes with single
|
78
69
|
return str
|
79
70
|
end
|
data/lib/tasks/pagemaster.rake
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
require 'csv'
|
3
|
+
require 'json'
|
4
|
+
require 'colorized_string'
|
3
5
|
|
4
6
|
namespace :wax do
|
5
7
|
desc 'generate collection md pages from yaml or csv data source'
|
6
8
|
task :pagemaster => :config do
|
7
|
-
|
8
9
|
collections = $config['collections']
|
9
10
|
if $argv.empty?
|
10
11
|
puts "You must specify one or more collections after 'bundle exec rake wax:pagemaster' to generate.".magenta
|
@@ -13,26 +14,22 @@ namespace :wax do
|
|
13
14
|
$argv.each do |a|
|
14
15
|
collection = collections[a]
|
15
16
|
if collection.nil?
|
16
|
-
puts
|
17
|
+
puts "The collection '#{a}' does not exist. Check for typos in terminal and _config.yml.".magenta
|
17
18
|
exit 1
|
18
19
|
else
|
19
|
-
|
20
|
-
meta =
|
21
|
-
meta['
|
22
|
-
meta['
|
23
|
-
meta['dir']
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
puts
|
20
|
+
meta = {}
|
21
|
+
meta['src'] = '_data/' + collection['source']
|
22
|
+
meta['layout'] = File.basename(collection['layout'], '.*')
|
23
|
+
meta['dir'] = collection['directory']
|
24
|
+
if [meta['src'], meta['dir'], meta['layout']].all?
|
25
|
+
FileUtils.mkdir_p meta['dir']
|
26
|
+
data = ingest(meta['src'])
|
27
|
+
info = generate_pages(meta, data)
|
28
|
+
puts "\n#{info[:completed]} pages were generated to #{meta['dir']} directory.".cyan
|
29
|
+
puts "\n#{info[:skipped]} pre-existing items were skipped.".cyan
|
30
|
+
else
|
31
|
+
puts "\nYour collection '#{a}' is missing one or more of the required parameters (source, directory, layout) in config. please fix and rerun.".magenta
|
29
32
|
exit 1
|
30
|
-
else
|
31
|
-
FileUtils::mkdir_p meta['dir']
|
32
|
-
data = ingest(meta['src'])
|
33
|
-
generate_pages(meta, data)
|
34
|
-
puts ("\n" + $completed.to_s + " pages were generated to " + meta['dir'] + " directory.").green
|
35
|
-
puts ($skipped.to_s + " pre-existing items were skipped.").green
|
36
33
|
end
|
37
34
|
end
|
38
35
|
end
|
@@ -41,41 +38,46 @@ namespace :wax do
|
|
41
38
|
end
|
42
39
|
|
43
40
|
def ingest(src)
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
puts ("\nProcessing " + src + "....\n").cyan
|
52
|
-
return data.map(&:to_hash)
|
53
|
-
rescue
|
54
|
-
puts ("Cannot load " + src + ". check for typos and rebuild.").magenta
|
41
|
+
src_type = File.extname(src)
|
42
|
+
if src_type == '.csv'
|
43
|
+
data = CSV.read(src, :headers => true, :encoding => 'utf-8').map(&:to_hash)
|
44
|
+
elsif src_type == '.json'
|
45
|
+
data = JSON.parse(File.read(src).encode("UTF-8"))
|
46
|
+
else
|
47
|
+
puts "File type for #{src} must be .csv or .json. Please fix and rerun."
|
55
48
|
exit 1
|
56
49
|
end
|
50
|
+
pids = []
|
51
|
+
data.each { |d| pids << d['pid'] }
|
52
|
+
duplicates = pids.detect { |p| pids.count(p) > 1 } || []
|
53
|
+
unless duplicates.empty?
|
54
|
+
puts "\nYour collection has the following duplicate ids. please fix and rerun.\n#{duplicates} \n".magenta
|
55
|
+
exit 1
|
56
|
+
end
|
57
|
+
puts "Processing #{src}...."
|
58
|
+
return data
|
59
|
+
rescue standardError
|
60
|
+
puts "Cannot load #{src}. check for typos and rebuild.".magenta
|
61
|
+
exit 1
|
57
62
|
end
|
58
63
|
|
59
64
|
def generate_pages(meta, data)
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
perma_ext = ".html"
|
64
|
-
end
|
65
|
+
perma_ext = '.html'
|
66
|
+
perma_ext = '/' if $config['permalink'] == 'pretty'
|
67
|
+
info = { :completed => 0, :skipped => 0 }
|
65
68
|
data.each do |item|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
$skipped+=1
|
75
|
-
end
|
76
|
-
rescue
|
77
|
-
puts ($completed.to_s + " pages were generated before failure, most likely a record is missing a valid 'pid' value.").magenta
|
78
|
-
exit 1
|
69
|
+
pagename = item['pid']
|
70
|
+
pagepath = meta['dir'] + '/' + pagename + '.md'
|
71
|
+
if !File.exist?(pagepath)
|
72
|
+
File.open(pagepath, 'w') { |file| file.write(item.to_yaml.to_s + 'permalink: /' + meta['dir'] + '/' + pagename + perma_ext + "\n" + 'layout: ' + meta['layout'] + "\n---") }
|
73
|
+
info[:completed] += 1
|
74
|
+
else
|
75
|
+
puts "#{pagename}.md already exits. Skipping."
|
76
|
+
info[:skipped] += 1
|
79
77
|
end
|
80
78
|
end
|
79
|
+
return info
|
80
|
+
rescue standardError
|
81
|
+
puts "#{info[:completed]} pages were generated before failure, most likely a record is missing a valid 'pid' value.".magenta
|
82
|
+
exit 1
|
81
83
|
end
|
data/lib/tasks/s3branch.rake
CHANGED
@@ -1,33 +1,33 @@
|
|
1
1
|
require 'jekyll'
|
2
2
|
require 'tmpdir'
|
3
3
|
require 'fileutils'
|
4
|
-
require 'iiif_s3'
|
5
4
|
|
6
5
|
namespace :wax do
|
7
6
|
desc 'build site with baseurl and publish to s3 branch'
|
8
7
|
task :s3branch => :config do
|
9
8
|
FileUtils.rm_rf('_site')
|
10
|
-
baseurl = $config['baseurl']
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
}
|
10
|
+
opts = {
|
11
|
+
'source' => '.',
|
12
|
+
'destination' => '_site',
|
13
|
+
'config' => '_config.yml',
|
14
|
+
'incremental' => true,
|
15
|
+
'verbose' => true,
|
16
|
+
'baseurl' => $config['baseurl']
|
17
|
+
}
|
18
|
+
|
19
|
+
Jekyll::Site.new(Jekyll.configuration(opts)).process
|
20
20
|
|
21
21
|
origin = `git config --get remote.origin.url`
|
22
22
|
|
23
23
|
Dir.mktmpdir do |tmp|
|
24
|
-
cp_r
|
24
|
+
cp_r '_site/.', tmp
|
25
25
|
Dir.chdir tmp
|
26
26
|
|
27
|
-
system
|
27
|
+
system 'git init' # Init the repo.
|
28
28
|
system "git add . && git commit -m 'Site updated at #{Time.now.utc}'"
|
29
|
-
system
|
30
|
-
system
|
29
|
+
system 'git remote add origin ' + origin
|
30
|
+
system 'git push origin master:refs/heads/s3 --force'
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
data/lib/tasks/test.rake
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'html-proofer'
|
2
|
-
require '
|
2
|
+
require 'colorized_string'
|
3
3
|
|
4
4
|
namespace :wax do
|
5
5
|
desc 'run htmlproofer, rspec if exists'
|
6
|
-
|
7
|
-
|
6
|
+
task :test do
|
7
|
+
opts = {
|
8
8
|
:check_external_hash => true,
|
9
9
|
:allow_hash_href => true,
|
10
10
|
:check_html => true,
|
@@ -14,12 +14,10 @@ namespace :wax do
|
|
14
14
|
:verbose => true
|
15
15
|
}
|
16
16
|
begin
|
17
|
-
HTMLProofer.check_directory(
|
18
|
-
rescue
|
19
|
-
puts
|
20
|
-
end
|
21
|
-
if File.exist?('.rspec')
|
22
|
-
sh 'bundle exec rspec'
|
17
|
+
HTMLProofer.check_directory('./_site', opts).run
|
18
|
+
rescue StandardError
|
19
|
+
puts('Failed to run wax:texts. Make sure you are using `bundle exec`.').magenta
|
23
20
|
end
|
21
|
+
sh 'bundle exec rspec' if File.exist?('.rspec')
|
24
22
|
end
|
25
23
|
end
|
metadata
CHANGED
@@ -1,29 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wax_tasks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Marii
|
7
|
+
- Marii Nyrop
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.16'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.16'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faker
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.8'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.8'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
16
44
|
requirements:
|
17
45
|
- - "~>"
|
18
46
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
47
|
+
version: '3.5'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.5'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.52'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.52'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: colorize
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.8'
|
20
76
|
type: :runtime
|
21
77
|
prerelease: false
|
22
78
|
version_requirements: !ruby/object:Gem::Requirement
|
23
79
|
requirements:
|
24
80
|
- - "~>"
|
25
81
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
82
|
+
version: '0.8'
|
27
83
|
- !ruby/object:Gem::Dependency
|
28
84
|
name: html-proofer
|
29
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,27 +109,41 @@ dependencies:
|
|
53
109
|
- !ruby/object:Gem::Version
|
54
110
|
version: '0.1'
|
55
111
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
112
|
+
name: jekyll
|
57
113
|
requirement: !ruby/object:Gem::Requirement
|
58
114
|
requirements:
|
59
115
|
- - "~>"
|
60
116
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
117
|
+
version: '3.7'
|
62
118
|
type: :runtime
|
63
119
|
prerelease: false
|
64
120
|
version_requirements: !ruby/object:Gem::Requirement
|
65
121
|
requirements:
|
66
122
|
- - "~>"
|
67
123
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
69
|
-
|
124
|
+
version: '3.7'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rake
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '12.0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '12.0'
|
139
|
+
description: Rake tasks for minimal iiif exhibition sites with Jekyll.
|
70
140
|
email:
|
71
141
|
- m.nyrop@columbia.edu
|
72
142
|
executables: []
|
73
143
|
extensions: []
|
74
144
|
extra_rdoc_files: []
|
75
145
|
files:
|
76
|
-
-
|
146
|
+
- Gemfile
|
77
147
|
- lib/tasks/config.rake
|
78
148
|
- lib/tasks/ghbranch.rake
|
79
149
|
- lib/tasks/iiif.rake
|
@@ -101,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
171
|
version: '0'
|
102
172
|
requirements: []
|
103
173
|
rubyforge_project:
|
104
|
-
rubygems_version: 2.6.
|
174
|
+
rubygems_version: 2.6.14
|
105
175
|
signing_key:
|
106
176
|
specification_version: 4
|
107
177
|
summary: Rake tasks for minimal exhibitions.
|
data/README.md
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
# wax_tasks [](https://badge.fury.io/rb/wax_tasks) [](https://gemnasium.com/github.com/mnyrop/wax_tasks)
|
2
|
-
|
3
|
-
## [minicomp](https://github.com/minicomp) rake tasks for jekyll [wax](https://minicomp.github.io/wax)
|
4
|
-
|
5
|
-
### current tasks:
|
6
|
-
|
7
|
-
`wax:pagemaster`: generates markdown pages for jekyll collections from csv or yaml files. (same as [`pagemaster`](https://github.com/mnyrop/pagemaster) gem).
|
8
|
-
|
9
|
-
`wax:iiif`: generates iiif image tiles and associated json for jekyll collections from local jpgs. (uses [`iiif_s3`](https://github.com/cmoa/iiif_s3) gem).
|
10
|
-
|
11
|
-
`wax:ghbranch`: builds your jekyll site and overwrites the `gh-pages` branch to publish your compiled `_site` directory with `gh-baseurl`.
|
12
|
-
|
13
|
-
`wax:s3branch`: builds your jekyll site and overwrites the `s3` branch to publish your compiled `_site` directory with `baseurl`.
|
14
|
-
|
15
|
-
`wax:lunr` builds a Lunrjs search index for your site.
|
16
|
-
|
17
|
-
`wax:test` runs htmlproofer and, if there is an .rspec file, runs your rspec tests.
|
18
|
-
|
19
|
-
|
20
|
-
### set-up:
|
21
|
-
1. add the `wax_tasks` gem to your jekyll site's `Gemfile` and install with `bundle install`:
|
22
|
-
```
|
23
|
-
gem 'wax_tasks'
|
24
|
-
```
|
25
|
-
2. Create a `Rakefile` in the root of your jekyll site and add the following to load the wax_tasks:
|
26
|
-
```
|
27
|
-
spec = Gem::Specification.find_by_name 'wax_tasks'
|
28
|
-
Dir.glob("#{spec.gem_dir}/lib/tasks/*.rake").each {|r| load r}
|
29
|
-
```
|
30
|
-
3. Configure the collection information in your site's `_config.yaml`.
|
31
|
-
```yaml
|
32
|
-
# Collection params for wax:pagemaster
|
33
|
-
collections:
|
34
|
-
paintings:
|
35
|
-
output: true
|
36
|
-
source: paintings-metadata.csv
|
37
|
-
directory: paintings
|
38
|
-
layout: painting-page
|
39
|
-
artists:
|
40
|
-
output: true
|
41
|
-
source: artist-data.yaml
|
42
|
-
directory: artists
|
43
|
-
layout: author-info-page
|
44
|
-
```
|
45
|
-
4. If generating a Lunrjs search index, add Lunr Params to `_config.yaml`.
|
46
|
-
```bash
|
47
|
-
# Lunr Search Params (for wax:lunr)
|
48
|
-
lunr:
|
49
|
-
content: true
|
50
|
-
multi-language: true
|
51
|
-
meta:
|
52
|
-
- dir: "_projects"
|
53
|
-
permalink: "/projects"
|
54
|
-
fields:
|
55
|
-
- title
|
56
|
-
- era
|
57
|
-
- tags
|
58
|
-
- dir: "_posts"
|
59
|
-
permalink: "posts"
|
60
|
-
fields:
|
61
|
-
- title
|
62
|
-
- category
|
63
|
-
- tags
|
64
|
-
```
|
65
|
-
### to use:
|
66
|
-
```bash
|
67
|
-
$ bundle exec rake wax:<task_name> <option>
|
68
|
-
```
|
69
|
-
#### ex 1: generate md pages for `paintings` and `artists` from data files
|
70
|
-
```bash
|
71
|
-
$ bundle exec rake wax:pagemaster paintings artists
|
72
|
-
```
|
73
|
-
#### ex 2: generate iiif image tiles and associated json for `paintings` from local jpgs:
|
74
|
-
```bash
|
75
|
-
$ bundle exec rake wax:iiif paintings
|
76
|
-
```
|
77
|
-
#### ex 3: publish `_site` to `gh-pages` branch
|
78
|
-
```bash
|
79
|
-
$ bundle exec rake wax:ghbranch
|
80
|
-
```
|
81
|
-
#### ex 4: publish `_site` to `s3` branch
|
82
|
-
```bash
|
83
|
-
$ bundle exec rake wax:s3branch
|
84
|
-
```
|
85
|
-
#### ex 5: (re)generate lunrjs search index
|
86
|
-
```bash
|
87
|
-
$ bundle exec rake wax:lunr
|
88
|
-
```
|
89
|
-
#### ex 6: run CI test(s)
|
90
|
-
```bash
|
91
|
-
$ bundle exec rake wax:test
|
92
|
-
```
|