]> granicus.if.org Git - python/commitdiff
Patch HREFs in html files, replacing nodeXXX.html with label.html.
authorJeremy Hylton <jeremy@alum.mit.edu>
Wed, 18 Feb 1998 13:53:48 +0000 (13:53 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Wed, 18 Feb 1998 13:53:48 +0000 (13:53 +0000)
Doc/node2label.pl [new file with mode: 0755]
Doc/tools/node2label.pl [new file with mode: 0755]

diff --git a/Doc/node2label.pl b/Doc/node2label.pl
new file mode 100755 (executable)
index 0000000..8a77cbf
--- /dev/null
@@ -0,0 +1,38 @@
+#!/depot/gnu/plat/bin/perl -i~
+
+# read the labels, then reverse the mappings
+require "labels.pl";
+
+%nodes = ();
+foreach $label (keys %external_labels) {
+  $nodes{$external_labels{$label}} = $label;
+}
+
+# collect labels that have been used
+%newnames = ();
+
+while (<>) {
+  # don't want to do one s/// per line per node
+  # so look for lines with hrefs, then do s/// on nodes present
+  if (/HREF=\"([^\#\"]*)html[\#\"]/) {
+    @parts = split(/HREF\=\"/);
+    shift @parts;
+    for $node (@parts) {
+      $node =~ s/[\#\"].*$//g;
+      chop($node);
+      if (defined($nodes{$node})) {
+       $label = $nodes{$node};
+       if (s/HREF=\"$node([\#\"])/HREF=\"$label.html$1/g) {
+         s/HREF=\"$label.html#SECTION\d+/HREF=\"$label.html/g;
+         $newnames{$node} = "$label.html";
+       }
+      }
+    }
+  }
+  print;
+}
+
+foreach $oldname (keys %newnames) {
+# or mv
+  system("ln -s $oldname $newnames{$oldname}");
+}
diff --git a/Doc/tools/node2label.pl b/Doc/tools/node2label.pl
new file mode 100755 (executable)
index 0000000..8a77cbf
--- /dev/null
@@ -0,0 +1,38 @@
+#!/depot/gnu/plat/bin/perl -i~
+
+# read the labels, then reverse the mappings
+require "labels.pl";
+
+%nodes = ();
+foreach $label (keys %external_labels) {
+  $nodes{$external_labels{$label}} = $label;
+}
+
+# collect labels that have been used
+%newnames = ();
+
+while (<>) {
+  # don't want to do one s/// per line per node
+  # so look for lines with hrefs, then do s/// on nodes present
+  if (/HREF=\"([^\#\"]*)html[\#\"]/) {
+    @parts = split(/HREF\=\"/);
+    shift @parts;
+    for $node (@parts) {
+      $node =~ s/[\#\"].*$//g;
+      chop($node);
+      if (defined($nodes{$node})) {
+       $label = $nodes{$node};
+       if (s/HREF=\"$node([\#\"])/HREF=\"$label.html$1/g) {
+         s/HREF=\"$label.html#SECTION\d+/HREF=\"$label.html/g;
+         $newnames{$node} = "$label.html";
+       }
+      }
+    }
+  }
+  print;
+}
+
+foreach $oldname (keys %newnames) {
+# or mv
+  system("ln -s $oldname $newnames{$oldname}");
+}