2015-12-03 00:02:51 +03:00
|
|
|
require 'json'
|
|
|
|
require 'yaml'
|
|
|
|
|
|
|
|
module Variables
|
|
|
|
class Generator < Jekyll::Generator
|
|
|
|
safe true
|
|
|
|
|
|
|
|
def generate(site)
|
|
|
|
metadata_files = {
|
|
|
|
'bower' => '../bower.json',
|
|
|
|
'package' => '../package.json',
|
|
|
|
'bower_jquery' => '../bower_components/jquery/bower.json'
|
|
|
|
}
|
|
|
|
|
|
|
|
metadata_files.each do |metadata, path|
|
|
|
|
contents = JSON.parse(File.read(File.join(site.source, path)))
|
|
|
|
site.data[metadata] = contents
|
|
|
|
end
|
|
|
|
|
|
|
|
# some quick access to common variables (instead of diving into package and bower)
|
|
|
|
name = site.data['package']['name']
|
|
|
|
version = site.data['package']['version']
|
|
|
|
bootstrap_version = site.data['bower']['dependencies']['bootstrap']
|
|
|
|
jquery_version = site.data['bower_jquery']['version']
|
|
|
|
|
|
|
|
site.data['name'] = name
|
|
|
|
site.data['version'] = version
|
|
|
|
site.data['bootstrap_version'] = bootstrap_version
|
|
|
|
site.data['jquery_version'] = jquery_version
|
|
|
|
|
|
|
|
|
|
|
|
# fabricate the archive and release links based on the site.repo and version
|
|
|
|
jekyll_config = Jekyll.configuration({})
|
|
|
|
repo = jekyll_config['repo']
|
|
|
|
site.data['download'] = {
|
|
|
|
'source' => "#{repo}/archive/v#{version}.zip",
|
|
|
|
'dist' => "#{repo}/releases/download/v#{version}/#{name}-#{version}-dist.zip"
|
|
|
|
}
|
|
|
|
|
|
|
|
site.data['cdn'] = {
|
|
|
|
'jquery' => jekyll_config['cdn']['jquery'].gsub(/VERSION/, jquery_version),
|
|
|
|
'bootstrap' => jekyll_config['cdn']['bootstrap'].gsub(/VERSION/, bootstrap_version)
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
2015-12-03 23:15:52 +03:00
|
|
|
# puts "\n---------------------"
|
2015-12-03 00:02:51 +03:00
|
|
|
# puts site.data[:package]['version']
|
|
|
|
# puts site.data.to_yaml
|
2015-12-03 23:15:52 +03:00
|
|
|
# puts repo
|
|
|
|
# puts version
|
2015-12-03 00:02:51 +03:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|