forked from HPR/hpr-tools
Moved project directories and files to an empty local repo
This commit is contained in:
96
Show_Submission/validate_html
Executable file
96
Show_Submission/validate_html
Executable file
@@ -0,0 +1,96 @@
|
||||
#!/usr/bin/env perl
|
||||
#===============================================================================
|
||||
#
|
||||
# FILE: validate_html
|
||||
#
|
||||
# USAGE: ./validate_html file
|
||||
#
|
||||
# DESCRIPTION: Validate HTML show notes using HTML::Valid
|
||||
#
|
||||
# OPTIONS: ---
|
||||
# REQUIREMENTS: ---
|
||||
# BUGS: ---
|
||||
# NOTES: Much of this code is as seen in 'htmlok' because the
|
||||
# documentation with HTML::Valid is poor.
|
||||
# AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com
|
||||
# VERSION: 0.0.3
|
||||
# CREATED: 2018-06-01 16:25:27
|
||||
# REVISION: 2019-11-10 21:25:06
|
||||
#
|
||||
#===============================================================================
|
||||
|
||||
use 5.010;
|
||||
use strict;
|
||||
use warnings;
|
||||
use utf8;
|
||||
|
||||
# In the POD, without explanation
|
||||
use FindBin '$Bin';
|
||||
|
||||
# Found in 'htmlok', not documented
|
||||
use HTML::Valid 'sanitize_errors';
|
||||
use Path::Tiny;
|
||||
|
||||
#
|
||||
# Version number (manually incremented)
|
||||
#
|
||||
our $VERSION = '0.0.3';
|
||||
|
||||
#
|
||||
# Script and directory names
|
||||
#
|
||||
( my $PROG = $0 ) =~ s|.*/||mx;
|
||||
( my $DIR = $0 ) =~ s|/?[^/]*$||mx;
|
||||
$DIR = '.' unless $DIR;
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Declarations
|
||||
#-------------------------------------------------------------------------------
|
||||
#
|
||||
# Constants and other declarations
|
||||
#
|
||||
my $basedir = "$ENV{HOME}/HPR/Show_Submission";
|
||||
|
||||
#
|
||||
# Enable Unicode mode
|
||||
#
|
||||
binmode STDOUT, ":encoding(UTF-8)";
|
||||
binmode STDERR, ":encoding(UTF-8)";
|
||||
|
||||
#
|
||||
# Create the object
|
||||
#
|
||||
my $htv = HTML::Valid->new(
|
||||
quiet => 1, # omit summary, etc
|
||||
doctype => 'omit',
|
||||
show_body_only => 1, # print only the contents of the body tag as an HTML fragment
|
||||
show_info => 1, # test; omit info-level messages
|
||||
show_warnings => 1, # include warnings if set
|
||||
);
|
||||
|
||||
#
|
||||
# We expect a file as an argument
|
||||
#
|
||||
my $file = shift @ARGV;
|
||||
die "Usage: $PROG filename\n" unless $file;
|
||||
my $content;
|
||||
if ( -f $file ) {
|
||||
$content = path($file)->slurp_utf8();
|
||||
$htv->set_filename($file);
|
||||
}
|
||||
else {
|
||||
die "$PROG: Cannot find '$file'.\n";
|
||||
}
|
||||
|
||||
#
|
||||
# Largely undocumented but seen in 'htmlok'
|
||||
#
|
||||
my ( undef, $errors ) = $htv->run($content);
|
||||
if ($errors) {
|
||||
print sanitize_errors ($errors);
|
||||
exit 1;
|
||||
}
|
||||
|
||||
exit;
|
||||
|
||||
# vim: syntax=perl:ts=8:sw=4:et:ai:tw=78:fo=tcrqn21:fdm=marker
|
Reference in New Issue
Block a user