CSS の syntax check
WebService::Validator::CSS::W3C を使用すると、W3C CSS 検証サービス の API を使ったコマンド等が簡単に作れる。
以下、やっつけで作った CSS のチェックツール
#!/usr/bin/perl use strict; use warnings; use WebService::Validator::CSS::W3C; my $file_name = $ARGV[0]; if (!$file_name) { print "Usage : css_checker.pl [CSS file name]?n"; exit; } open my $fh, $file_name or die "Couldn't open $file_name: $!"; my $source; while (<$fh>) { $source .= $_; } close $fh or die "Couldn't close $file_name: $!"; my $validator = WebService::Validator::CSS::W3C->new(); $validator->validate( string => $source, warnings => 10, ) or die "Web Service response error."; if (!$validator->errorcount && !$validator->warningcount) { print "Syntax OK!!?n"; exit; } for my $string_of ($validator->errors, $validator->warnings) { print join(':', map { defined $string_of->{$_} ? $string_of->{$_} : ''; } qw(line message)), "?n"; }
これを、vim から実行する為に .vimrc を下記のように修正した。
map ,t :call SyntaxCheck()<CR> function SyntaxCheck() execute ':w' if &syntax == 'perl' execute ':!perl -cw %' elseif &syntax == 'ruby' execute ':!ruby -cW %' elseif &syntax == 'javascript' execute ':!/usr/local/bin/jslint --laxLineEnd %' elseif &syntax == 'yaml' execute ':!~/bin/yaml_checker.pl %' elseif &syntax == 'html' execute '!tidy -quiet -errors --gnu-emacs yes %' elseif &syntax == 'css' execute ':!~/bin/css_checker.pl %' endif endf