Uniform CSS Validator

:Author: `Dan Connolly`__, W3C__

__ http://www.w3.org/People/Connolly/
__ http://www.w3.org/

CSS syntax evolves in a backward- and forward-compatible way; the CSS
2.1 specification__ includes a uniform grammar, applicable to all CSS
versions.  The `original (2002) W3C CSS Validator`__ predates this
uniform grammar and maintenance is becoming an undue burden as a
result. This is an attempt to build a validator using the uniform

__ http://www.w3.org/TR/CSS2
__ http://jigsaw.w3.org/css-validator/about.html#code

This is also something of an exercise in learning Scala development.
Provided you have some popular tools installed (see `Scala
development`_ below for details), you should be able to confirm that
all tests pass::

 cssval$ sbt test
 [info] Run: 26, Passed: 26, Errors: 0, Failed: 0

.. contents::

Scala development

    Scala is a general purpose programming language designed to
    express common programming patterns in a concise, elegant, and
    type-safe way.

    -- `Introducing Scala`__

__ http://www.scala-lang.org/node/25

The compiler and such are open source and easy to find
from the `Scala Programming Language`__ site.

__ http://www.scala-lang.org/

For audit trail purposes, the md5 checksum of the package I
downloaded is::

  82934acf64d0c026de78b84e984f6743  scala-2.7.6.final.tgz

Once you download and unpack that, you should be able to see that
interpreter and compiler work as per `Getting Started with Scala`__.

__ http://www.scala-lang.org/node/166

Simple Build Tool (sbt)

The Scala tribe seems to use sbt__ in place of make or ant.

__ http://code.google.com/p/simple-build-tool/

Audit trail::

  MD5 (sbt-launcher-0.5.5.jar) = e3593448b3be17ce1666c6241b8d2f90

The directory layout of this project follows `sbt/maven conventions`__::

         <files to include in main jar here>
         <main Scala sources>
         <main Java sources>
         <files to include in test jar here>
         <test Scala sources>
         <test Java sources>

__ http://code.google.com/p/simple-build-tool/wiki/Setup

Using `library management`__ is in progress, thanks to contributions
from Alexandre Bertails.

__ http://code.google.com/p/simple-build-tool/wiki/LibraryManagement


ScalaTest__ is a leading test framework for Scala.

__ http://www.scalatest.org/download

Audit trail::

  68ab03f9109ef18c9dcce048da3d8dab  scalatest-0.9.5.zip

I unpacked it and put scala-test-1.0.jar in ``lib``... or was it

There seem to be some version skew issues between sbt and ScalaTest.
For a work-around (that I have not yet tried), see:
`ScalaTest 1.0`__.

__ http://groups.google.com/group/simple-build-tool/browse_thread/thread/fb967ee255dff7f9/8efd9870026481cb?lnk=gst&q=ScalaTest+1.0#8efd9870026481cb

Emacs and Scala

With ``scala-mode``, emacs helps with indentation and syntax coloring.
With ``sbt.el``, emacs can navigate compiler errors (with some
glitches). My set-up is pretty rough; some notes::

 ; http://www.scala-lang.org/downloads
 (add-to-list 'load-path "/home/connolly/src/scala-2.7.6.final/misc/scala-tool-support/emacs")
 (add-to-list 'exec-path "/home/connolly/src/scala-2.7.6.final/bin")
 (add-to-list 'exec-path "/home/connolly/bin")
 (require 'scala-mode-auto)

 scallap / tools / emacs / sbt.el 
 commit  000e748597d9b73e2da026029afc4ca9248aa936

Source code and Version Control

To access the source code and project history using git__::

  $ git clone git://dvcs.w3.org/cssval

__ http://git-scm.com/

Or you can use mercurial with the `Hg-Git plugin`__::

  $ hg clone git://dvcs.w3.org/cssval

__ http://hg-git.github.com/

This project started Oct 11 2009, with mercurial revision
0:4ac7bd6d32f2, aka git commit

Thanks to bitbucket__ for hosting the project in early stages; the
cssval__ repository there may or may not be maintained.

__ http://bitbucket.org/
__ http://bitbucket.org/DanC/cssval/

Likewise, an experimental github mirror, Uniform-CSS-Validator__,
may or may not be maintained.

__ http://github.com/dckc/Uniform-CSS-Validator

Open Source Software License

Copyright (c) 2009 World Wide Web Consortium, (Massachusetts 
Institute of Technology, European Research Consortium for Informatics 
and Mathematics, Keio University). All Rights Reserved. This work is 
distributed under the `W3C Software License`__ in the hope that it 
will be useful, but WITHOUT ANY WARRANTY; without even the implied 

__ http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231

Share and enjoy.

This license has an Open Source Initiative certification__
and is a `GPL-Compatible Free Software License`__.

__ http://www.opensource.org/licenses/W3C.php
__ http://www.fsf.org/licensing/licenses/index_html#GPLCompatibleLicenses

.. Colophon:
.. This document is written using reStructuredText conventions.
.. see Makefile for conversion to README.html .
.. see http://docutils.sourceforge.net/rst.html for more on reStructuredText.