The source code for the W3C Markup Validation Service is available under the terms of the W3C Software License. Source tarball of the latest production version is always available at <http://validator.w3.org/validator.tar.gz>. Development code is only available from CVS.
If you just want to glance at the code, or see its revision history, you can browse it on the web.
The most interesting files are currently a CGI script called "check" that does pretty much everything, and possibly also the httpd.conf configuration file snippet for Apache. Select the topmost revision numbers on these pages to see the most recent revision of each file.
If you want a copy of all the files that make up the service, you can download a tarball of the code (~300kB) and the DTDs (~500kB).
RPM packages are available, courtesy of Ville Skyttä, at Fedora Extras, <http://fedoraproject.org/wiki/Extras>.
In addition to different Fedora Core versions, the RPMs should be adaptable to other RPM based systems.
Note that the Validator RPMs have several dependencies, you'll have to get at least the following RPMs from Fedora Extras (other dependencies are included in the Fedora Core distribution):
In addition, each of these may have further dependencies that must be satisfied. All the necessary RPMs are either included in the Fedora Core distribution(s) or are available from Fedora Extras. Use of an automated package management tool to install the packages, such as yum or up2date is strongly recommended. See the Fedora Extras documentation for information about configuring these tools.
A Debian package is available, courtesy of Frédéric Schütz.
deb http://www.mathgen.ch/debian/woody ./
Running the command apt-get install w3c-markup-validator as root will then install all the packages needed.
If you intend to actively mirror the code and/or contribute patches to the code, you should install and become familiar with CVS; this is the tool we use for revision control and is generally a good thing to get to know.
Our CVS base is available read-only, using CVS pserver authentication a la:
bash$ export CVSROOT=":pserver:anonymous@dev.w3.org:/sources/public" bash$ cvs login (Logging in to anonymous@dev.w3.org) CVS password: anonymous bash$ cvs get -r validator-0_7_1-release validator cvs server: Updating validator cvs server: Updating validator/htdocs U validator/htdocs/about.html ...
This will get you the last release version. use cvs get validator
to retrieve the HEAD
. Be aware that constant development is made
on this latest version, and
the trunk is more or less guaranteed to be in a state of greater
or lesser breakage at any given point in time. Approach with
caution!
The purpose of making the source code available is partly to allow others to set up mirrors of the service (either publicly or within an intranet behind a firewall), but also to allow us to collaborate on making the service better! If you are interested in helping with the development, we suggest you first install the code and read our instructions for developers.