Updated version to 0.2.1.
[tclrobot.git] / robot.tcl
index 3ab1d81..608f562 100755 (executable)
--- a/robot.tcl
+++ b/robot.tcl
@@ -1,5 +1,5 @@
 #!/usr/bin/tclsh 
-# $Id: robot.tcl,v 1.44 2003/06/11 10:11:39 adam Exp $
+# $Id: robot.tcl,v 1.47 2003/12/10 09:58:22 adam Exp $
 #
 proc RobotFileNext1 {area lead} {
     # puts "RobotFileNext1 area=$area lead=$lead"
@@ -610,6 +610,15 @@ proc RobotRedirect {task url tourl code} {
     }
 }
 
+proc wellform {body} {
+    regsub -all {<!--[^-]*-->} $body { } abody
+    regsub -all -nocase {<script[^<]*</script>} $abody {} body
+    regsub -all {<[^\>]+>} $body {} abody
+    regsub -all {&nbsp;} $abody { } body
+    regsub -all {&} $body {&amp;} abody
+    return $abody
+}
+
 proc link {task url out href body distance} {
     global URL control
     if {[expr $distance > $control($task,distance)]} return
@@ -618,7 +627,8 @@ proc link {task url out href body distance} {
     
     puts $out "<cr>"
     puts $out "<identifier>$href</identifier>"
-    puts $out "<description>$body</description>"
+    set abody [wellform $body]
+    puts $out "<description>$abody</description>"
     puts $out "</cr>"
     
     if {![RobotFileExist $task visited $host $path]} {
@@ -697,7 +707,7 @@ proc RobotTextHtml {task url out} {
                         set metacontent $parm($a)
                     }
                 }
-               unset parm($al)
+               unset parm($a)
             }
            puts $out "></meta>"
             # go through robots directives (af any)
@@ -714,11 +724,9 @@ proc RobotTextHtml {task url out} {
             # don't print title of document content if noindex is used
             if {!$noindex} {
                 puts $out "<title>$title</title>"
-                regsub -all {<!--[^-]*-->} $body { } abody
-                regsub -all -nocase {<script[^<]*</script>} $abody {} bbody
-                regsub -all {<[^\>]+>} $bbody {} nbody
+               set bbody [wellform $body]
                 puts $out "<documentcontent>"
-                puts $out $nbody
+                puts $out $bbody
                 puts $out "</documentcontent>"
             }
         } -nonest base {
@@ -729,7 +737,7 @@ proc RobotTextHtml {task url out} {
             set href [string trim $parm(href)]
             if {![RobotHref $task $url href host path]} continue
             set URL($task,$url,bpath) $path
-        } a {
+        } -nonest a {
             # <a href="...."> .. </a> 
             # we're not using nonest - otherwise body isn't set
             if {$nofollow} continue