Sha256: 36b2c3cf959ab8ef8f320fdc11c7454e71994d5d5a18afe3af8fa5025a7ff7a8

Contents?: true

Size: 949 Bytes

Versions: 1

Compression:

Stored size: 949 Bytes

Contents

module Nanoc
  module Checking
    module Checks
      class Vnu < ::Nanoc::Checking::Check
        identifier :vnu

        def run
          args = ['vnu', '--skip-non-html', '--errors-only', '--format', 'json']
          vnu_config = @config.fetch(:checks, {}).fetch(:vnu, {})
          if vnu_config.fetch(:also_check_css, true)
            args << '--also-check-css'
          end
          if vnu_config.fetch(:also_check_svg, true)
            args << '--also-check-svg'
          end
          filterpattern = vnu_config.fetch(:filterpattern, nil)
          if filterpattern
            args << '--filterpattern'
            args << filterpattern
          end
          args << @config.output_dir

          output = JSON.load(IO.popen(args, err: [:child, :out], &:read))
          output['messages'].each do |m|
            add_issue(m['message'], subject: m['url'].sub(/^file:/, ''))
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nanoc-checking-checks-vnu-1.2.0 lib/nanoc/checking/checks/vnu.rb