texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

texinfo/tp/Texinfo/Convert HTML.pm


From: Patrice Dumas
Subject: texinfo/tp/Texinfo/Convert HTML.pm
Date: Tue, 03 May 2011 21:36:07 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        11/05/03 21:36:07

Modified files:
        tp/Texinfo/Convert: HTML.pm 

Log message:
        Use the command_* API for external nodes too.  Remove functions that are
        unneeded then, and also substitute some of the functions in 
        _element_direction.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/HTML.pm?cvsroot=texinfo&r1=1.52&r2=1.53

Patches:
Index: HTML.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- HTML.pm     2 May 2011 22:22:57 -0000       1.52
+++ HTML.pm     3 May 2011 21:36:06 -0000       1.53
@@ -278,6 +278,10 @@
 
   $filename = $self->{'current_filename'} if (!defined($filename));
 
+  if ($command->{'manual_content'}) {
+    return $self->_external_node_href($command, $filename);
+  }
+
   my $target = $self->command_target($command);
   return '' if (!defined($target));
   my $href = '';
@@ -339,6 +343,20 @@
     cluck "in command_text($type) command not defined";
   }
 
+  if ($command->{'manual_content'}) {
+    my $node_content = [];
+    $node_content = $command->{'node_content'}
+      if (defined($command->{'node_content'}));
+    my $tree = {'type' => '_code',
+          'contents' => [{'text' => '('}, @{$command->{'manual_content'}},
+                         {'text' => ')'}, @$node_content]};
+    if ($type eq 'tree') {
+      return $tree;
+    } else {
+      return $self->_convert($tree);
+    }
+  }
+
   if ($self->{'targets'}->{$command}) {
     my $target = $self->{'targets'}->{$command};
     if (defined($target->{$type})) {
@@ -1680,6 +1698,17 @@
 }
 $default_commands_conversion{'item'} = \&_convert_item_command;
 
+sub _convert_ref_commands($$$$)
+{
+  my $self = shift;
+  my $cmdname = shift;
+  my $command = shift;
+  my $args = shift;
+
+  
+}
+
+
 sub _convert_index_command($$$$)
 {
   my $self = shift;
@@ -2048,8 +2077,7 @@
   my $section;
   my $node_entry = $command->{'extra'}->{'menu_entry_node'};
   if ($node_entry->{'manual_content'}) {
-    $href = $self->_external_node_href($node_entry, 
-                                       $self->{'current_filename'});
+    $href = $self->command_href($node_entry); 
   } else {
     $node = $self->label_command($node_entry->{'normalized'});
     if ($node->{'extra'}->{'associated_section'} 
@@ -3507,19 +3535,6 @@
   }
 }
 
-sub _external_node_text ($$)
-{
-  my $self = shift;
-  my $external_node = shift;
-
-  my $node_content = [];
-  $node_content = $external_node->{'node_content'}
-    if (defined($external_node->{'node_content'}));
-  return $self->_convert({'type' => '_code',
-        'contents' => [{'text' => '('}, @{$external_node->{'manual_content'}},
-                       {'text' => ')'}, @$node_content]});
-}
-
 my %valid_types = (
   'href' => 1,
   'string' => 1,
@@ -3530,67 +3545,6 @@
   'node' => 1,
 );
 
-sub _external_node_reference($$$;$)
-{
-  my $self = shift;
-  my $external_node = shift;
-  my $type = shift;
-  my $filename = shift;
-
-  
-  if ($type eq 'href') {
-    return $self->_external_node_href($external_node, $filename);
-  } elsif ($type eq 'text' or $type eq 'node') {
-    return $self->_external_node_text($external_node);
-  }
-}
-
-sub _internal_node_href($$$)
-{
-  my $self = shift;
-  my $normalized_node_name = shift;
-  my $filename = shift;
-
-  my $command = $self->{'labels'}->{$normalized_node_name};
-  if ($command) {
-    return $self->command_href($command, $filename);
-  } else {
-    return '';
-  }
-}
-
-sub _internal_element_href($$$)
-{
-  my $self = shift;
-  my $element = shift;
-  my $filename = shift;
-
-  my $command = $element->{'extra'}->{'element_command'};
-  if (defined($command)) {
-    return $self->command_href($command, $filename);
-  } else {
-    return '';
-  }
-}
-
-sub _internal_node_element_href($$$)
-{
-  my $self = shift;
-  my $normalized_node_name = shift;
-  my $filename = shift;
-
-  my $command = $self->{'labels'}->{$normalized_node_name};
-  if ($command) {
-    if ($command->{'parent'}) {
-      return $self->_internal_element_href($command->{'parent'}, $filename);
-    } else {
-      return $self->command_href($command, $filename);
-    }
-  } else {
-    return '';
-  }
-}
-
 # FIXME global targets
 sub _element_direction($$$$;$)
 {
@@ -3627,18 +3581,26 @@
     }
     ########
     if ($element_target->{'type'} eq 'external_node') {
-      return $self->_external_node_reference($element_target->{'extra'}, 
-                                              $type, $filename);
+      my $external_node = $element_target->{'extra'};
+      if ($type eq 'href') {
+        return $self->command_href($external_node, $filename);
+      } elsif ($type eq 'text' or $type eq 'node') {
+        return $self->command_text($external_node);
+      }
     } elsif ($type eq 'node') {
       $command = $element_target->{'extra'}->{'node'};
       $target = $self->{'targets'}->{$command} if ($command);
       $type = 'text';
     } else {
-      if ($type eq 'href') {
-        return $self->_internal_element_href($element_target, $filename);
-      }
       # FIXME be able to chose node over sectioning or the other way around?
       $command = $element_target->{'extra'}->{'element_command'};
+      if ($type eq 'href') {
+        if (defined($command)) {
+          return $self->command_href($command, $filename);
+        } else {
+          return '';
+        }
+      }
       $target = $self->{'targets'}->{$command} if ($command);
     }
   } elsif ($self->special_element($direction)) {
@@ -4462,6 +4424,9 @@
 
   # process text
   if (defined($root->{'text'})) {
+    if ($root->{'type'} and $root->{'type'} eq '_converted') {
+      return $root->{'text'};
+    }
     my $result = &{$self->{'types_conversion'}->{'text'}} ($self, 
                                                       $root->{'type'},
                                                       $root,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]