NAME
MojoX::ValidateHeadLinks - Ensure CSS and JS links in web pages point to real files
Synopsis
shell> validate.head.links.pl -h
shell> validate.head.links.pl -d /run/shm/html -u http://127.0.0.1/index.html
This program calls the "run()" method, which returns the number of errors found. Various logging options, discussed under "Constructor and initialization" and in the "FAQ", control the amount of output. Nothing is printed by default.
On my machine, /run/shm/ is the directory used to access the Debian built-in RAM disk, and /run/shm/html/ is my web server document root directory.
Since this script -validate.head.links.pl - ships in the bin/ directory, it is installed somewhere along your executable search path when the module is installed.
Description
MojoX::ValidateHeadLinks
is a pure Perl module.
It does no more than this:
- o Downloads and parses a web page using Mojo::UserAgent
-
Hence the -url parameter to validate.head.links.pl.
- o Checks whether the CSS and JS links point to real files
-
Hence the -directory parameter to validate.head.links.pl.
It handles the '@import' option used in some CSS links.
Distributions
This module is available as a Unix-style distro (*.tgz).
See http://savage.net.au/Perl-modules.html for details.
See http://savage.net.au/Perl-modules/html/installing-a-module.html for help on unpacking and installing.
Constructor and initialization
new(...) returns an object of type MojoX::ValidateHeadLinks
.
This is the class contructor.
Usage: MojoX::ValidateHeadLinks -> new()
.
This method takes a hashref of options.
Call new()
as new({option_1 => value_1, option_2 => value_2, ...})
.
Available options (which are also methods):
- o doc_root => $dir_name
-
Use this to specify the doc root directory of your web server. This option is mandatory.
Default: ''.
- o maxlevel => $logOption1
-
This option affects Log::Handler.
See the Log::Handler::Levels docs, and the "FAQ".
Default: 'notice'. This means nothing is printed.
For maximum details in the printed report, try:
MojoX::ValidateHeadLinks -> new(doc_root => $d, maxlevel => 'debug', url => $u) -> run;
- o minlevel => $logOption2
-
This option affects Log::Handler.
See the Log::Handler::Levels docs.
Default: 'error'.
No lower levels are used.
- o url => $url
-
Use this to specify the URL of the web page to be checked.
Default: ''.
If the string supplied does not start with 'http', then 'http://' is prefixed to $url automatically.
Methods
doc_root([$dir_name])
Here, the [] indicate an optional parameter.
Get or set the name of your web server doc root directory.
log($level => $message)
Log the string $message at log level $level.
The logger object is of class Log::Handler.
maxlevel([$string])
Here, the [] indicate an optional parameter.
Get or set the value used by the logger object.
For more details in the printed report, try:
MojoX::ValidateHeadLinks -> new(doc_root => $d, maxlevel => 'debug', url => $u) -> run;
'maxlevel' is a parameter to "new()". See "Constructor and Initialization", and the "FAQ", for details.
minlevel([$string])
Here, the [] indicate an optional parameter.
Get or set the value used by the logger object.
'minlevel' is a parameter to "new()". See "Constructor and Initialization" for details.
new()
See "Constructor and Initialization" for details on the parameters accepted by "new()".
quit($message)
Logs $message at log level error, and then dies.
Errors can arise in these situations:
run()
Does all the work.
Returns the number of errors detected, so 0 is good and N > 0 is bad.
url([$url])
Here, the [] indicate an optional parameter.
Get or set the URL of the web page your wish to check.
FAQ
How does bin/validate.head.links.pl differ from linkcheck.pl?
linkcheck.pl does not check that links to non-HTML resources (CSS, JS) point to real files.
How does the -maxlevel parameter affect the output?
In these examples, $DR stands for the /run/shm/html/ directory, the doc root of my web server.
Output from a real run, where my dev web site is the same as my real web site (so -d $DR works):
shell> validate.head.links.pl -d $DR -url http://savage.net.au/Novels-etc.html -max debug
URL: http://savage.net.au/Novels-etc.html
Import: /run/shm/html/assets/js/DataTables-1.9.4/media/css/demo_page.css
Import: /run/shm/html/assets/js/DataTables-1.9.4/media/css/demo_table.css
Link: /run/shm/html/assets/css/local/default.css
Script: /run/shm/html/assets/js/DataTables-1.9.4/media/js/jquery.js
Script: /run/shm/html/assets/js/DataTables-1.9.4/media/js/jquery.dataTables.min.js
Imports: 2. Errors: 0
Links: 1. Errors: 0
Scripts: 2. Errors: 0
shell> validate.head.links.pl -d $DR -url http://savage.net.au/Novels-etc.html -max info
Imports: 2. Errors: 0
Links: 1. Errors: 0
Scripts: 2. Errors: 0
shell> validate.head.links.pl -d $DR -url http://savage.net.au/Novels-etc.html -max error
(No output)
shell> echo $?
0
Repository
https://github.com/ronsavage/MojoX-ValidateHeadLinks
Support
Email the author, or log a bug on RT:
https://rt.cpan.org/Public/Dist/Display.html?Name=MojoX::ValidateHeadLinks.
Author
MojoX::ValidateHeadLinks
was written by Ron Savage <ron@savage.net.au> in 2012.
Home page: http://savage.net.au/index.html.
Copyright
Australian copyright (c) 2012, Ron Savage.
All Programs of mine are 'OSI Certified Open Source Software';
you can redistribute them and/or modify them under the terms of
The Artistic License, a copy of which is available at:
http://www.opensource.org/licenses/index.html