- From: olivier Thereaux <ot@w3.org>
- Date: Mon, 30 Oct 2006 13:53:14 +0900
- To: brandon@fuller.name
- Cc: www-archive@w3.org
Dear Brandon,
Someone brought your w3cvalidator plugin for Movable Type to my
attention today.
http://www.sixapart.com/pronet/plugins/plugin/w3cvalidator.html
I think this is a good idea, as it makes the lives of MT users who
want to check the validity of their web pages easier.
I see, however, a few problems, mostly small, with your approach:
1) your plugin is doing some screen scraping... Please, don't do that.
code such as
[[
if ( $response->content =~ /\<h2 id\=\"result\" class\=\"valid\"\>/ )
]]
is wrong. Too fragile. I don't want libraries or tools to expect that
the validator's output markup will not change. it *will* change over
time and your tool will break. That's why we are developing an API -
http://validator.w3.org/docs/api.html
If the API is overkill for you, then here's a hint:
use
$response->header('X-W3C-Validator-Status')
and
$response->header('X-W3C-Validator-Errors')
.
At least these aren't too likely to change, as far as I can tell.
2) the badge you are presenting to the user is hardcoded to XHTML
1.0. What if users are using another flavor of HTML?
3) Last but not least, it seems that your module is making a request
to the W3C validator instance for each page published by MT. While
this is almost OK for a static instance of MT (I wish there were a
timer to make sure not to send a burst of requests), this is
problematic for dynamic instances. The W3C validator servers are
public, shared resources, and already overloaded, and it is not
currently acceptable resource-wise to accept a request for validation
each time a page on John Doe's blog is accessed. This just doesn't
scale.
I do not know MT plugins well enough to know if it is possible to
have this plugin disabled for dynamic MT publishing, but if it is,
then I would advise you to consider it. If not, then the module
documentation should be discourageing people to use the module with
dynamic MT.
Another thing I would ask, is to make an option for your module to
choose the instance of the validator to use. We are encouraging
people, especially heavy users, to consider installing their own
instance. It would be good if your plugin allowed people to choose
which instance of the validation service to send requests to.
Thank you, Brandon.
--
olivier Thereaux - W3C - http://www.w3.org/People/olivier/
W3C Open Source Software: http://www.w3.org/Status
Received on Monday, 30 October 2006 04:53:29 UTC