module Webgen::ContentProcessor::Xmllint
Uses the external xmllint
program to check if the content is valid (X)HTML.
Public Class Methods
call(context)
click to toggle source
Checks the content of context
with the xmllint
program for validness.
# File lib/webgen/content_processor/xmllint.rb 12 def self.call(context) 13 Webgen::Utils::ExternalCommand.ensure_available!('xmllint', '--version') 14 15 cmd = "xmllint #{context.website.config['content_processor.xmllint.options']} -" 16 status, _stdout, stderr = systemu(cmd, 'stdin' => context.content) 17 if status.exitstatus != 0 18 stderr.scan(/^-:(\d+):(.*?\n)(.*?\n)/).each do |line, error_msg, line_context| 19 context.website.logger.warn do 20 "xmllint reported problems for <#{context.dest_node.alcn}:~#{line}>: #{error_msg.strip} (context: #{line_context.strip})" 21 end 22 end 23 end 24 context 25 end