icon HTML TIDY $B$G(B Web $B%Z!<%8$r$*A]=|$9$k(B

1998/9/1 $BHG(B

$B:G?7HG$N(B Tidy $B$rF~ http://www.w3.org/People/Raggett/tidy $B$r$4Mw2<$5$$!#(B tidy $B$N?7$7$$%P!<%8%g%s$,=P$?>l9g!"%a!<%k$G$*CN$i$;$9$k$h$&EPO?$9$k(B $B$3$H$b2DG=$G$9!#(B

$BF|K\8lHG(B tidy $B$*$h$S%I%-%e%a%s%H$NF|K\8lLu$K4X$7$F$O!"(B http://www.w3.org/People/asada/tidy $B$r$4Mw2<$5$$!#(B

TIDY $B$K$D$$$F(B

HTML $B$rJT=8$7$F$$$k$H!";W$o$L4V0c$$$rHH$7$F$7$^$&$3$H$,$h$/$"$j$^$9!#(B $B$3$&$$$&4V0c$$$r<+F0E*$K=$@5$7$F!"E,Ev$K=q$$$?%^!<%/%"%C%W$r$-$l$$$K(B $B$7$F$/$l$k!"4JC1$JJ}K!$,$"$l$PNI$$$H;W$$$^$;$s$+!)(B $B$=$&!"(BHewlett Packard $B$N(B Dave Raggett $B$K46o$KFI$_$E$i$$(B HTML $B@lMQ(B $B%(%G%#%?$dJQ49%D!<%k$N=PNO$9$k%^!<%/%"%C%W$K$b$-$o$a$FM-8z$G!">c32$r(B $B;}$D?M!9$KBP$9$k%Z!<%8$N%"%/%;%7%S%j%F%#$r2~A1$9$k$?$a!"$I$N$h$&$JE@(B $B$KCm0U$rJ'$&I,MW$,$"$k$+H=CG$9$k

tidy $B$O9-HO0O$K$*$h$VLdBj$r=$@5$7!":n6H$r9T$&>e$GCm0U$9$Y$-E@$r;XE&(B $B$9$k$3$H$,2DG=$G$9!#H/8+$5$l$?3FLdBjE@$O!"4JC1$KC5$9$3$H$,$G$-$k$h$&(B $B9THV9f$H%3%i%`IU$-$G0lMwI=<($5$l$^$9!#=$@5J}K!$N$O$C$-$j$7$J$$LdBj$,(B $B$"$k>l9g!"(Btidy $B$O=$@5HG$r=PNO$7$^$;$s!#$3$N$h$&$J>l9g!"!V7Y9p!W$G$O(B $B$J$/!V%(%i!

TIDY $B$r;H$C$?:n6H$NNc(B

tidy $B$O!"9-$/Ia5Z$7$F$$$k(B Netscape $B$d(B Microsoft $B$N%V%i%&%6$K$*$1$k(B $BI=<($r$b$H$K!"%^!<%/%"%C%W$r=$@5$7$^$9!#(BTIDY $B$,$I$N$h$&$K(B HTML $B$r(B $B40A4$K$9$k$+$K$D$$$F!"$$$/$D$+Nc$r<($7$^$9!'(B

$B%l%$%"%&%H%9%?%$%k(B

$BNc$($P!"%(%l%a%s%H$NCf?H$r%$%s%G%s%H$9$k$+H]$+$J$I$K$D$$$F!"(Btidy $B$,(B $B=$@5HG$r=PNO$9$k:]$K$*$1$k!"=PNO%9%?%$%k$rA*$V$3$H$,$G$-$^$9!#(B

$B9q:]2=(B

tidy $B$OJ8;z%(%s%3!<%G%#%s%0$H$7$F(B US ASCII, ISO Latin-1, UTF-8, ISO 2022 $B7O(B 7bit $B%(%s%3!<%I$rA*Br$9$k$3$H$,2DG=$G$9!JLuCm!'(Braw $B%b!<%I$r(B $BMxMQ$9$l$P(B EUC, Shift JIS $B$J$I$N%(%s%3!<%G%#%s%0$bMxMQ$G$-$^$9!K!#(B HTML 4.0 $B$N$9$Y$F$N%(%s%F%#%F%#$,Dj5A$5$l$F$*$j!"=$@5HG$N=PNO$G$O!"(B $BE,@Z$J(B HTML $B$NL>A0%(%s%F%#%F%#$rMxMQ$7$^$9!#$=$l0J30$NDL>oHO0O30$N(B $BJ8;z$O!"?tCM%(%s%F%#%F%#$H$7$F=PNO$5$l$^$9!#(B

$B%"%/%;%7%S%j%F%#(B

tidy $B$O%0%i%U%#%+%k$G$J$$%V%i%&%6$r;H$C$F$$$k%f!<%6$N$?$a!"%"%/%;%7%S(B $B%j%F%#$K4X$9$kLdBj$K$D$$$F!"%"%I%P%$%9$7$^$9!#$b$C$H$b0lHLE*$KL\$K$9$k(B $B$N$O!"(Btable $B%(%l%a%s%H$K(B summery $BB0@-$rIU$1$k$H$$$&=u8@$G$7$g$&!#$3$l(B $B$O(B table $BLr3d$d9=B$$N4JC1$J@bL@$rDs6!$7!"2;@<%V%i%&%6$N$?$a$KLrN)$A$^$9!#(B

$BI=<($K4X$9$k%^!<%/%"%C%W$r%-%l%$$K$9$k(B

$BB?$/$N%D!<%k$,!"(BFONT, NOBR, CENTER $B$J$I$N%?%0$r;H$C$?(B HTML $B$r:n$j$^$9!#(B tidy $B$N(B -clean $B%*%W%7%g%s$O!"$3$l$i$r(B CSS $B$r;H$C$?%9%?%$%k$N(B $B%W%m%Q%F%#$H%k!<%k$KCV$-49$($^$9!#$3$N$3$H$O%^!<%/%"%C%W$rFI$_$d$9$/$7!"(B $B%a%s%F%J%s%9$rMF0W$K$7!"%U%!%$%k$N%5%$%:$r8=>]$5$;$^$9!*(B

XML $B%5%]!<%H(B

W3C $B$N(B XML 1.0 $B4+9p$K=`5r$7$?(B XML $B%W%m%;%C%5$O!"$I$N$h$&$J%U%!%$%k$ro$K87L)$G$9!#(Btidy $B$O

$B%l%$%"%&%H8~>e$N$?$a$N%F%-%9%H$N%$%s%G%s%H(B

 <html>
   <head>
   </head>
   <body>
     <p>
       para which has enough text to cause a line break, and so test
       the wrapping mechanism for long lines.
     </p>
 <pre>This is
 <em>genuine
       preformatted</em>
    text
 </pre>
     <ul>
       <li>
         1st list item 
       </li>
       <li>
         2nd list item
       </li>
     </ul>
     <!-- end comment -->
   </body>
 </html>

$B$3$NJ8=q$O%G%U%)%k%H$G0J2<$N$h$&$K$J$j$^$9!'(B

 <html>
 <head>
 </head>
 <body>
 <p>para which has enough text to cause a line break, and so test
 the wrapping mechanism for long lines.</p>
 
 <pre>This is
 <em>genuine
       preformatted</em>
    text
 </pre>
 
 <ul>
 <li>1st list item </li>
 
 <li>2nd list item</li>
 </ul>
 
 <!-- end comment -->
 </body>
 </html>
 

tidy $B$N
   tidy [[options] filename]*

tidy $B$O!J$^$@!K(B Windows $B%W%m%0%i%`$G$O$"$j$^$;$s!#$b$7(B tidy $B$r0z?t(B $B$J$7$G5/F0$7$?>l9g!"I8=`F~NO$+$i$NF~NO$r$=$N$^$^BT$AB3$1$^$9!#(Btidy $B$N%G%U%)%k%H$NF~=PNO$O!"$=$l$>$lI8=`F~=PNO$G$9!#%(%i!<$OI8=`%(%i!<(B $B=PNO$G$9$,!"(B-f $B%U%!%$%kL>(B $B%*%W%7%g%s$r;H$C$F%j%@%$%l%/%H(B $B$9$k$3$H$,2DG=$G$9!#(B

$B%*%j%8%J%k$N%U%!%$%k$r99?7$7$?$$>l9g$O!"(B-m $B%*%W%7%g%s$r;H$$!"FC$K(B $BFbMF$,$R$I$$>l9g$O!"%(%i!<%a%C%;!<%8$r8+D>$7$d$9$$$h$&!"(B-f $B%*%W%7%g%s(B $B$r;H$C$F%U%!%$%k$K=PNO$9$k$HNI$$$G$7$g$&!#(B tidy $B$O$$$/$D$+$NJ8;z%(%s%3!<%G%#%s%0%*%W%7%g%s$r%5%]!<%H$7$F$$$^$9!#(B $B%G%U%)%k%H$G$O!"DL>o$N%F%-%9%H%(%G%#%?$GJT=8$7$d$9$$$h$&!"(BASCII $B$K(B $B$J$C$F$$$^$9!#(B

$BNc!'(B

   tidy -f errs.txt -m index.html

$B$3$NNc$G$O!"%U%!%$%k(B "index.html" $B$KBP$7$F(B tidy $B$r@\%U%!%$%k(B $B$r99?7$7!"%(%i!<%a%C%;!<%8$r%U%!%$%k(B "errs.txt" $B$K=q$-9~$_$^$9!#B>$N(B $BJ#;($J%=%U%H%&%'%"$HF1MM!"(Btidy $B$K$O%P%0$,$"$k2DG=@-$b$"$j$^$9$N$G!"(B $B

$BMxMQ2DG=$J%*%W%7%g%s$N0lMw$rI=<($9$k!'(B

   tidy -help

$B0J2<$N$h$&$J=PNO$rF@$k$G$7$g$&!'(B

tidy: file1 file2 ...
HTML $B@07A%f!<%F%#%j%F%#(B
http://www.w3.org/People/Raggett/tidy/ $B$r;2>H(B

tidy (1998 $BG/(B 9 $B7n(B 1 $BF|HG(B) $B$N%*%W%7%g%s(B
  -indent $B$^$?$O(B -i  $B%(%l%a%s%H$NFbMF$r%$%s%G%s%H$9$k(B
  -omit   $B$^$?$O(B -o  $B>JN,2DG=$J=*N;%?%0$r>J$/(B
  -wrap 72           $B%F%-%9%H$r(B 72 $BJ8;zL\$G2~9T(B ($B%G%U%)%k%H$O(B 68)
  -upper  $B$^$?$O(B -u  $B%?%0$rBgJ8;z$K$9$k(B
  -clean  $B$^$?$O(B -c  font, nobr, center $B%?%0$r:o=|(B
  -raw               128 $B0J>e$NJ8;z$r=PNO;~$KJQ49$7$J$$(B
  -ascii             $BF~NO$K(B Latin-1$B!"=PNO$K(B ASCII $B$r;HMQ(B
  -latin1            $BF~=PNO$K(B Latin-1 $B$r;HMQ(B
  -iso2022           $BF~=PNO$K(B ISO-2022 $B%Y!<%9$N%(%s%3!<%I$r;HMQ(B
  -utf8              $BF~=PNO$K(B UTF-8 $B$r;HMQ(B
  -modify $B$^$?$O(B -m  $B85$N%U%!%$%k$r=$@5(B
  -errors $B$^$?$O(B -e  $B%(%i!l9g$K;HMQ(B
  -asxml             HTML $B$r(B XML $B$KJQ49(B
  -help   $B$^$?$O(B -h  $B%*%W%7%g%s0lMw(B
$B%G%U%)%k%H$G$OF~=PNO$K$=$l$>$lI8=`F~=PNO$r;HMQ(B
$B0J2<$N$h$&$K(B-f $B0J30$N0lJ8;z%*%W%7%g%s$OAH9g$;2DG=(B:
   tidy -f errs.txt -imu foo.html

HTML $B$K4X$9$k>\$7$$>pJs$O(B "Raggett on HTML" $B;2>H(B,
(c) 1998, Addison Wesley Longman, ISBN 0-201-17805-2

$B%G%U%)%k%H$NF~=PNO$O!"$=$l$>$lI8=`F~=PNO$G$9!#(B-f $B0J30$N0lJ8;z$N(B $B%*%W%7%g%s$O!"(Btidy -f errs.txt -imu foo.html $B$N$h$&$K!"AH$_9g$o$;$F(B $B;H$&$3$H$b2DG=$G$9!#(B

$B:#8e$NM=Dj!'(B

$BpJs(B

$B%3!<%I$O(B ANSI C $B$G=q$+$l$F$*$j!"F~=PNO$K(B C $BI8=`%i%$%V%i%j$r;H$C$F(B $B$$$^$9!#%Q!<%6$O(B thread-safe $B$G$9$,!"@07A=PNOItJ,$N%3!<%I$O!J$^$@!K(B $B$=$&$J$C$F$$$^$;$s!#%Q!<%6$O%H%C%W%@%&%s$GF0:n$7!"%a%b%j>e$K40A4$J(B $B%P!<%9%D%j!<$r:n@.$7$^$9!#J8=q$OI,MW$K1~$8$F3HD%$5$l$kJ8;z%P%C%U%!(B $B$K!"(BUTF-8 $B$H$7$FI=8=$5$l$?(B Unicode $B$GJ]B8$5$l$^$9!#$3$N%3!<%I$O!"(B Windows 95, Windows NT, Linux, MacOS, BeOS, SunOS, Solaris, IRIX, HP-UX $B$J$I$G%F%9%H$5$l$F$$$^$9!#(B

tidy01sep98.tgz
gzip $B$G05=L$5$l$?(B tar $B7A<0$N%=!<%9%3!<%I(B
tidy01sep98ja.tgz
gzip $B$G05=L$5$l$?(B tar $B7A<0$NF|K\8lHG%=!<%9%3!<%I(B
tidy.exe
Windows 95/NT $BMQe$GF0:n$7$^$9!K(B
tidy_03aug98.ppc.zip
zip $B7A<0$N(B BeOS Power PC $BMQ
tidy.sunos
gcc $B$G%3%s%Q%$%k$5$l$?(B SunOS $BMQ
platform.h, html.h
$B6&MQ$N%^%/%mDj5AMQ(B include $B%U%!%$%k(B
lexer.c
$BJ8;z2r@O$H%P%C%U%!4IM}(B
parser.c
HTML $B$*$h$S(B XML $B%Q!<%6(B
tags.c
$B%?%0$*$h$S%W%m%Q%F%#$N<-=q(B
attrs.c
$BB0@-$*$h$S%W%m%Q%F%#$N<-=q(B
istack.c
$B%$%s%i%$%sMWAG$N$?$a$N%9%?%C%/(B
entities.c
$B%(%s%F%#%F%#$N<-=q(B
clean.c
$BI=<(E*%^!<%/%"%C%W$N=$@5$K4X$9$k$b$N(B/dd>
pprint.c
HTML $B$*$h$S(B XML $B$N=$@5=PNO(B
localize.c
tidy $B$N=PNO$r3F9q8l2=$9$k$K$,!"$3$N%U%!%$%k$rJQ99(B
tidy.c
main() $B$*$h$S(B error $B=PNO%k!<%A%s(B
Makefile
gcc $BMQ(B Makefile

gcc $B$r;H$C$F(B tidy $B$r%3%s%Q%$%k$9$k>l9g!"(BMakefile $B$r;EMM$9$k$+!"(B $B4JC1$K0J2<$N$h$&$KF~NO$7$^$9!'(B

   gcc -o tidy *.c

Dave Raggett <dsr@w3.org> $B$O(B Hewlett Packard $B$N(B UK Laboratories $B$N%(%s%8%K%"$G!"(B World Wide Web Consortium $B$G(B HTML $B$N%j!<%@$H$7$FF/$$$F$$$^$9!#(B