diff --git a/.gitignore b/.gitignore index 415377f..67a2a85 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ build/ env preparer-test-* +.asset-cache diff --git a/Gemfile.lock b/Gemfile.lock index 4f5b4d8..91f7c4c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,116 +3,71 @@ PATH specs: preparermd (0.1.0) faraday (= 0.9.1) - jekyll (= 2.5.3) - jekyll-assets (= 0.14.0) + jekyll (= 3.0.1) + jekyll-assets (= 2.0.1) json (= 1.8.3) - therubyracer (= 0.12.2) + redcarpet (= 3.3.3) GEM remote: https://rubygems.org/ specs: addressable (2.3.8) - blankslate (2.1.2.4) - classifier-reborn (2.0.3) - fast-stemmer (~> 1.0) coderay (1.1.0) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.9.1.1) colorator (0.1) - execjs (2.6.0) faraday (0.9.1) multipart-post (>= 1.2, < 3) - fast-stemmer (1.0.2) - fastimage (1.7.0) + fastimage (1.8.0) addressable (~> 2.3, >= 2.3.5) ffi (1.9.10) hashdiff (0.2.3) - hike (1.2.3) - jekyll (2.5.3) - classifier-reborn (~> 2.0) + jekyll (3.0.1) colorator (~> 0.1) - jekyll-coffeescript (~> 1.0) - jekyll-gist (~> 1.0) - jekyll-paginate (~> 1.0) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 1.1) kramdown (~> 1.3) - liquid (~> 2.6.1) + liquid (~> 3.0) mercenary (~> 0.3.3) - pygments.rb (~> 0.6.0) - redcarpet (~> 3.1) + rouge (~> 1.7) safe_yaml (~> 1.0) - toml (~> 0.1.0) - jekyll-assets (0.14.0) - fastimage (~> 1.6) - jekyll (~> 2.0) - mini_magick (~> 4.1) - sass (~> 3.2) - sprockets (~> 2.10) - sprockets-helpers - sprockets-sass - jekyll-coffeescript (1.0.1) - coffee-script (~> 2.2) - jekyll-gist (1.3.4) - jekyll-paginate (1.1.0) + jekyll-assets (2.0.1) + fastimage (~> 1.8) + jekyll (~> 3.0) + sprockets (~> 3.3) + sprockets-helpers (~> 1.2) jekyll-sass-converter (1.3.0) sass (~> 3.2) jekyll-watch (1.3.0) listen (~> 3.0) json (1.8.3) - kramdown (1.8.0) - libv8 (3.16.14.11) - liquid (2.6.3) - listen (3.0.3) + kramdown (1.9.0) + liquid (3.0.6) + listen (3.0.5) rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9) mercenary (0.3.5) method_source (0.8.2) - mini_magick (4.3.3) - multi_json (1.11.2) multipart-post (2.0.0) - parslet (1.5.0) - blankslate (~> 2.0) - posix-spawn (0.3.11) pry (0.10.1) coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) - pygments.rb (0.6.3) - posix-spawn (~> 0.3.6) - yajl-ruby (~> 1.2.0) rack (1.6.4) rake (10.4.2) rb-fsevent (0.9.6) rb-inotify (0.9.5) ffi (>= 0.5.0) redcarpet (3.3.3) - ref (2.0.0) + rouge (1.10.1) safe_yaml (1.0.4) - sass (3.4.18) + sass (3.4.19) slop (3.6.0) - sprockets (2.12.4) - hike (~> 1.2) - multi_json (~> 1.0) - rack (~> 1.0) - tilt (~> 1.1, != 1.3.0) + sprockets (3.4.0) + rack (> 1, < 3) sprockets-helpers (1.2.1) sprockets (>= 2.2) - sprockets-sass (1.3.1) - sprockets (~> 2.0) - tilt (~> 1.1) term-ansicolor (1.3.2) tins (~> 1.0) - therubyracer (0.12.2) - libv8 (~> 3.16.14.0) - ref - tilt (1.4.1) tins (1.7.0) - toml (0.1.2) - parslet (~> 1.5.0) - yajl-ruby (1.2.1) PLATFORMS ruby diff --git a/lib/preparermd/overrides/environment.rb b/lib/preparermd/overrides/environment.rb index d7b82c1..768c981 100644 --- a/lib/preparermd/overrides/environment.rb +++ b/lib/preparermd/overrides/environment.rb @@ -2,7 +2,7 @@ require 'faraday' require 'sprockets' -require 'jekyll/assets_plugin/environment' +require 'jekyll/assets/env' # Module to be mixed in to each uploaded Asset to ensure that the correct URLs are generated. # @@ -75,7 +75,7 @@ def build_asset(path, pathname, options) # Custom Sprockets Environment subclass that uses our injected Index subclass. # -class Environment < Jekyll::AssetsPlugin::Environment +class Env < Jekyll::Assets::Env def index Index.new(self) end diff --git a/preparermd.gemspec b/preparermd.gemspec index 4d0dff4..9b380bb 100644 --- a/preparermd.gemspec +++ b/preparermd.gemspec @@ -28,9 +28,9 @@ Gem::Specification.new do |spec| spec.add_development_dependency "bundler", "~> 1.9" spec.add_development_dependency "rake", "~> 10.0" - spec.add_runtime_dependency "jekyll", "2.5.3" + spec.add_runtime_dependency "jekyll", "3.0.1" spec.add_runtime_dependency "faraday", "0.9.1" - spec.add_runtime_dependency "jekyll-assets", "0.14.0" - spec.add_runtime_dependency "therubyracer", "0.12.2" + spec.add_runtime_dependency "jekyll-assets", "2.0.1" + spec.add_runtime_dependency "redcarpet", "3.3.3" spec.add_runtime_dependency "json", "1.8.3" end diff --git a/test/all.rb b/test/all.rb index 09af25a..e5ca4a4 100644 --- a/test/all.rb +++ b/test/all.rb @@ -110,6 +110,7 @@ def asset_set_from dir return assets unless File.exists?(base) && File.directory?(base) Find.find(base) do |path| + next if path == base assets << path[base.size..-1] end assets.sort @@ -121,7 +122,7 @@ def report case @outcome when :fail - header, diff = true, true + header, output, diff = true, true, true when :error header, output, stacktrace = true, true, true end @@ -182,3 +183,5 @@ def self.all end puts testcases.map { |t| t.report }.join("\n") + +exit 1 unless testcases.all? { |t| t.outcome == :ok } diff --git a/test/envelopes/src/_deconst.json b/test/envelopes/src/_deconst.json deleted file mode 100644 index 5c2f9a9..0000000 --- a/test/envelopes/src/_deconst.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "contentIDBase": "idbase" -} diff --git a/test/image-asset/dest/assets/wheatley-icon.jpg b/test/image-asset/dest/assets/wheatley-icon.jpg new file mode 100644 index 0000000..b62eeb6 Binary files /dev/null and b/test/image-asset/dest/assets/wheatley-icon.jpg differ diff --git a/test/image-asset/dest/image-asset-base%2Fasset b/test/image-asset/dest/image-asset-base%2Fasset new file mode 100644 index 0000000..627c4de --- /dev/null +++ b/test/image-asset/dest/image-asset-base%2Fasset @@ -0,0 +1 @@ +{"title":null,"body":"
This document contains a reference to an asset.
\n","categories":[],"meta":{"layout":null},"tags":[]} \ No newline at end of file diff --git a/test/image-asset/src/_assets/img/wheatley-icon.jpg b/test/image-asset/src/_assets/img/wheatley-icon.jpg new file mode 100644 index 0000000..b62eeb6 Binary files /dev/null and b/test/image-asset/src/_assets/img/wheatley-icon.jpg differ diff --git a/test/envelopes/src/_config.yml b/test/image-asset/src/_config.yml similarity index 100% rename from test/envelopes/src/_config.yml rename to test/image-asset/src/_config.yml diff --git a/test/image-asset/src/_deconst.json b/test/image-asset/src/_deconst.json new file mode 100644 index 0000000..1283963 --- /dev/null +++ b/test/image-asset/src/_deconst.json @@ -0,0 +1,3 @@ +{ + "contentIDBase": "image-asset-base" +} diff --git a/test/image-asset/src/asset.md b/test/image-asset/src/asset.md new file mode 100644 index 0000000..9cf4d6e --- /dev/null +++ b/test/image-asset/src/asset.md @@ -0,0 +1,4 @@ +--- +--- + +This document contains a reference to an [asset]({% asset_path wheatley-icon %}). diff --git a/test/envelopes/dest/idbase%2Fmaximum b/test/maximum-envelope/dest/maximum-base%2Fmaximum similarity index 100% rename from test/envelopes/dest/idbase%2Fmaximum rename to test/maximum-envelope/dest/maximum-base%2Fmaximum diff --git a/test/maximum-envelope/src/_config.yml b/test/maximum-envelope/src/_config.yml new file mode 100644 index 0000000..ea90ec0 --- /dev/null +++ b/test/maximum-envelope/src/_config.yml @@ -0,0 +1,9 @@ +# Site settings +title: The site title +description: The site description + +# Build settings +markdown: redcarpet +encoding: UTF-8 +redcarpet: + extensions: ["with_toc_data"] diff --git a/test/maximum-envelope/src/_deconst.json b/test/maximum-envelope/src/_deconst.json new file mode 100644 index 0000000..1c09d64 --- /dev/null +++ b/test/maximum-envelope/src/_deconst.json @@ -0,0 +1,3 @@ +{ + "contentIDBase": "maximum-base" +} diff --git a/test/envelopes/src/maximum.md b/test/maximum-envelope/src/maximum.md similarity index 100% rename from test/envelopes/src/maximum.md rename to test/maximum-envelope/src/maximum.md diff --git a/test/envelopes/dest/idbase%2Fminimal b/test/minimum-envelope/dest/minimal-base%2Fminimal similarity index 100% rename from test/envelopes/dest/idbase%2Fminimal rename to test/minimum-envelope/dest/minimal-base%2Fminimal diff --git a/test/minimum-envelope/src/_config.yml b/test/minimum-envelope/src/_config.yml new file mode 100644 index 0000000..ea90ec0 --- /dev/null +++ b/test/minimum-envelope/src/_config.yml @@ -0,0 +1,9 @@ +# Site settings +title: The site title +description: The site description + +# Build settings +markdown: redcarpet +encoding: UTF-8 +redcarpet: + extensions: ["with_toc_data"] diff --git a/test/minimum-envelope/src/_deconst.json b/test/minimum-envelope/src/_deconst.json new file mode 100644 index 0000000..1b91537 --- /dev/null +++ b/test/minimum-envelope/src/_deconst.json @@ -0,0 +1,3 @@ +{ + "contentIDBase": "minimal-base" +} diff --git a/test/envelopes/src/minimal.md b/test/minimum-envelope/src/minimal.md similarity index 100% rename from test/envelopes/src/minimal.md rename to test/minimum-envelope/src/minimal.md