* remove <script> tags from HTML source
authormitty <mitty@7d2118f6-f56c-43e7-95a2-4bb3031d96e7>
Tue, 27 Mar 2012 20:50:38 +0000 (20:50 +0000)
committermitty <mitty@7d2118f6-f56c-43e7-95a2-4bb3031d96e7>
Tue, 27 Mar 2012 20:50:38 +0000 (20:50 +0000)
git-svn-id: https://lab.mitty.jp/svn/lab/trunk@133 7d2118f6-f56c-43e7-95a2-4bb3031d96e7

misc/removejs.pl [new file with mode: 0644]

diff --git a/misc/removejs.pl b/misc/removejs.pl
new file mode 100644 (file)
index 0000000..7436993
--- /dev/null
@@ -0,0 +1,46 @@
+#! /usr/bin/perl -w
+
+use strict;
+use warnings;
+
+my $source = shift @ARGV || die "usage: $0 source.html filtered.html";
+my $dest = shift @ARGV || die "usage: $0 source.html filtered.html";
+if (! -r $source) {
+    die "$0: cannot read $source";
+}
+if (-e $dest) {
+    die "$0: file exists! $dest";
+}
+
+open SOURCE, "<$source";
+open DEST, ">$dest";
+
+binmode(DEST);
+
+my $inscript = 0;
+my $startre = '<script\b[^>]*>';
+my $endre = '</script>';
+
+while (my $line = <SOURCE>) {
+    while ($line =~ /$startre/) {
+        $line =~ /^(.*?)$startre(.*)(\r?\n)$/;
+        if ($inscript == 0) {
+            print DEST "$1";
+        }
+        $inscript++;
+        $line = "$2$3";
+    }
+    
+    while ($line =~ /$endre/) {
+        $line =~ /^(.*?)$endre(.*)(\r?\n)$/;
+        if ($inscript <= 0) {
+            warn "$0: something wrong";
+        }
+        $inscript--;
+        $line = "$2$3";
+    }
+    
+    if ($line && $inscript <= 0) {
+        print DEST $line;
+    }
+}