Composición:
Esta vago-receta necesita de un poquito de preparación. Debemos de instalar la gema w3c_validators. Una vez hecho eso necesitaremos copiar este cachito de código en un archivo Rakefile en la raiz de donde tengamos nuestras maquetas. Si ya tenemos un Rakefile sólo añadiremos la tarea:
# # Massive html validation task
#
# This rake task comes from the nanoc validation task (http://gist.github.com/8961)
# Copy this Rakefile to the root of your htmls or add the task to your existing Rakefile
# and run:
#
# rake validate
#
# and that's all :)
task :validate do
require 'w3c_validators'
include W3CValidators
desc "W3C validation of all the files of the current folder"
task :validate do
validate '.html'
# add validate '.theextensionofyourhtml' to extend this task
end
private
# Colorize your output :)
def colorize(text, color_code); "#{color_code}#{text}\e[0m"; end
def red(text); colorize(text, "\e[31m"); end
def green(text); colorize(text, "\e[32m"); end
# Validation calling to the w3c_validators methods
def validate ext
@validator = (ext == ".css" ? CSSValidator.new : MarkupValidator.new )
files(".", true, ext).each do |file|
results = @validator.validate_file(file)
if results.errors.length > 0
results.errors.each do |err|
puts "** #{file} => #{red(err)}"
end
else
puts "** #{file} => #{green('Valid!')}"
end
end
end
# Stoled from nanoc :) (but with a lot of love)
def files(dir, recursively, ext = '')
glob = File.join([dir] + (recursively ? [ "**", "*#{ext}" ] : [ "*#{ext}" ]))
Dir[glob].reject { |f| File.directory?(f) or f =~ /(~|\.orig|\.rej|\.bak)$/ }
end
end
La última versión y correcciones estarán siempre en este gist.
Si la extensión de los archivos a validar no es .html, no dude en variar la línea de la tarea donde se especifica la extensión o añada tantas líneas como sea necesario (esssto hay que mejorarlo)
Esta vago-receta no usa nanoc ni nada por el estilo. La podemos usar en cualquier carpeta llena de archivitos html.
Indicaciones:
Se indica su uso especialmente en todos aquellos casos en el que necesitemos validar el código y tengamos más de 3 htmls :)
Especialmente recomendable cuando más de un zángano guarrea sobre el código.
Posología:
Vaya hasta la carpeta raiz de su proyecto en un terminal y escriba rake validate tantas veces como sea deseable y usted obtendrá un ouput coloreadito super majo.
Cada validación tarda casi nada, pero cuando hay un buen puñado de htmls necesitamos un poquito de paciencia. Aunque bien mirado siempre es mejor que ir uno por uno.
Contraindicaciones y sobredosis:
Validar constantemente puede convertirte en un pequeño psicópata, úsalo con mesura ;)
Otras presentaciones:
Añadiendo en la tarea un validate ".css" conseguimos validar nuestros estilos. Funciona pero en hojas de estilo enormes saca cositas un poco raras.
- Tags: rake, vagorecetas, codigo, ruby, web, herramientas compártelo favorito
Si te gusta jugar con rails y nunca has probado 
