An item rep may be written to multiple places, and currently only
one of them gets compressed by the gzip rule.
Unfortunately while nanoc maintains a complete output list internally,
it is not exposed in the documented API. But it's not too hard to pull
out the guts and get the full list in order to compress everything.
postprocess do
# Gzip all text items for nginx http_static
postprocess do
# Gzip all text items for nginx http_static
- if !ENV['GZIP_SITE'].to_s.empty?
+ gzip_site = !ENV['GZIP_SITE'].to_s.empty?
+ if gzip_site
reps = @items.flat_map(&:reps).each do |rep|
reps = @items.flat_map(&:reps).each do |rep|
- file = rep.raw_path
- next if !file or rep.binary?
-
- if system("gzip", "-ck9", file, [:out]=>[file + ".gz.tmp", "wb"])
- system("touch", "-r", file, file + ".gz.tmp")
- File.rename(file + ".gz.tmp", file + ".gz")
- else
- File.unlink(file + ".gz.tmp")
+ next if rep.binary?
+ rep.instance_variable_get(:@item_rep).raw_paths[:last].each do |f|
+ if system("gzip", "-nck9", f, [:out]=>["#{f}.gz.tmp", "wb"])
+ system("touch", "-r", f, "#{f}.gz.tmp")
+ File.rename("#{f}.gz.tmp", "#{f}.gz")
+ else
+ File.unlink("#{f}.gz.tmp")
+ end
compile '/gpg/*' do
filter :wkd_export_armor
write "/pubring/#{@item.identifier.components.last}.asc"
compile '/gpg/*' do
filter :wkd_export_armor
write "/pubring/#{@item.identifier.components.last}.asc"
- write "/pubring/#{@item[:id64]}.asc" if item[:id64]
- write "/pubring/#{@item[:id32]}.asc" if item[:id32]
+ write "/pubring/#{@item[:id64]}.asc" if @item[:id64]
+ write "/pubring/#{@item[:id32]}.asc" if @item[:id32]
end
compile '/gpg/*', rep: :hu do
end
compile '/gpg/*', rep: :hu do
write "/pubring/wkd/" + @item[:wkd_hash]
end
end
write "/pubring/wkd/" + @item[:wkd_hash]
end
end
-
-compile '/*.gpg' do
-end
compile '/**/*.svg' do
filter :scour, comment_stripping: true
compile '/**/*.svg' do
filter :scour, comment_stripping: true