texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: * tp/Texinfo/Convert/HTML.pm (%default_types_open


From: Patrice Dumas
Subject: branch master updated: * tp/Texinfo/Convert/HTML.pm (%default_types_open, default_types_open) (_convert, associate_pending_formatted_inline_content) (get_associated_formatted_inline_content), tp/Texinfo/Config.pm (texinfo_register_type_opening, GNUT_get_types_open): API to associate pending inline formatted text to an element, allowing to associate the pending content to the first opening inline element.
Date: Mon, 10 Jan 2022 15:09:57 -0500

This is an automated email from the git hooks/post-receive script.

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 008ae89838 * tp/Texinfo/Convert/HTML.pm (%default_types_open, 
default_types_open) (_convert, associate_pending_formatted_inline_content) 
(get_associated_formatted_inline_content), tp/Texinfo/Config.pm 
(texinfo_register_type_opening, GNUT_get_types_open): API to associate pending 
inline formatted text to an element, allowing to associate the pending content 
to the first opening inline element.
008ae89838 is described below

commit 008ae89838c82c6bc6ae927f8e680ddcdc17c4f2
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Mon Jan 10 21:05:42 2022 +0100

    * tp/Texinfo/Convert/HTML.pm (%default_types_open, default_types_open)
    (_convert, associate_pending_formatted_inline_content)
    (get_associated_formatted_inline_content),
    tp/Texinfo/Config.pm (texinfo_register_type_opening, GNUT_get_types_open):
    API to associate pending inline formatted text to an element, allowing
    to associate the pending content to the first opening inline element.
    
    * tp/Texinfo/Convert/HTML.pm (_convert_paragraph_type)
    (_open_inline_container_type, _convert_preformatted_type),
    tp/init/html32.pm (html32_convert_paragraph_type): use
    associate_pending_formatted_inline_content() and
    get_associated_formatted_inline_content() to get the inline formatted
    pending content.
---
 ChangeLog                                          |  17 ++
 tp/Texinfo/Config.pm                               |  15 ++
 tp/Texinfo/Convert/Converter.pm                    |   2 +-
 tp/Texinfo/Convert/HTML.pm                         | 155 +++++++++++++----
 tp/init/html32.pm                                  |   4 +-
 tp/t/181quotation.t                                |   5 +
 .../quotation/footnote_in_quotation_with_arg.pl    | 187 +++++++++++++++++++++
 7 files changed, 346 insertions(+), 39 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7ac330ef48..38261f8bb0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,6 +26,23 @@
        
        From Thérèse Godefroy <godef.th@free.fr>.
 
+2022-01-10  Patrice Dumas  <pertusus@free.fr>
+
+       * tp/Texinfo/Convert/HTML.pm (%default_types_open, default_types_open)
+       (_convert, associate_pending_formatted_inline_content)
+       (get_associated_formatted_inline_content),
+       tp/Texinfo/Config.pm (texinfo_register_type_opening, 
GNUT_get_types_open):
+       API to associate pending inline formatted text to an element, allowing
+       to associate the pending content to the first opening inline element.
+
+       * tp/Texinfo/Convert/HTML.pm (_convert_paragraph_type)
+       (_open_inline_container_type, _convert_preformatted_type),
+       tp/init/html32.pm (html32_convert_paragraph_type): use
+       associate_pending_formatted_inline_content() and
+       get_associated_formatted_inline_content() to get the inline formatted
+       pending content.
+
+
 2022-01-10  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/Convert/HTML.pm (%css_rules_not_collected, %css_map)
diff --git a/tp/Texinfo/Config.pm b/tp/Texinfo/Config.pm
index 177e0ed90e..332dcc690b 100644
--- a/tp/Texinfo/Config.pm
+++ b/tp/Texinfo/Config.pm
@@ -298,6 +298,7 @@ my $GNUT_formatting_references = {};
 my $GNUT_commands_conversion = {};
 my $GNUT_commands_open = {};
 my $GNUT_types_conversion = {};
+my $GNUT_types_open = {};
 my $GNUT_no_arg_commands_formatting_strings = {};
 my $GNUT_style_commands_formatting_info = {};
 
@@ -357,6 +358,20 @@ sub GNUT_get_types_conversion()
   return $GNUT_types_conversion;
 }
 
+# called from init files
+sub texinfo_register_type_opening($$)
+{
+  my $type = shift;
+  my $reference = shift;
+  $GNUT_types_open->{$type} = $reference;
+}
+
+# called from the Converter
+sub GNUT_get_types_open()
+{
+  return $GNUT_types_open;
+}
+
 my $default_formatting_context = 'normal';
 my %possible_formatting_contexts;
 foreach my $possible_formatting_context (($default_formatting_context,
diff --git a/tp/Texinfo/Convert/Converter.pm b/tp/Texinfo/Convert/Converter.pm
index 8c06182962..1de7471afb 100644
--- a/tp/Texinfo/Convert/Converter.pm
+++ b/tp/Texinfo/Convert/Converter.pm
@@ -1814,7 +1814,7 @@ with the file name portion only (without directory).
 =item ($caption, $prepended) = $converter->float_name_caption ($float)
 
 I<$float> is a texinfo tree C<@float> element.  This function
-returns the caption that should be used for the float formatting
+returns the caption element that should be used for the float formatting
 and the I<$prepended> texinfo tree combining the type and label
 of the float.
 
diff --git a/tp/Texinfo/Convert/HTML.pm b/tp/Texinfo/Convert/HTML.pm
index 8e100a50af..9753cb3bbb 100644
--- a/tp/Texinfo/Convert/HTML.pm
+++ b/tp/Texinfo/Convert/HTML.pm
@@ -24,6 +24,8 @@
 #    %default_commands_open
 #  * type tree element (element without @-command) formatting
 #    functions, defaults in %default_types_conversion
+#  * type tree element opening functions defaults in
+#    %default_types_open
 #  * other formatting functions, defaults in
 #    %default_formatting_references
 #
@@ -1201,6 +1203,32 @@ sub get_pending_formatted_inline_content($) {
   }
 }
 
+# API to associate inline content to an element, typically
+# paragraph or preformatted.  Allows to associate the pending
+# content to the first inline element.
+sub associate_pending_formatted_inline_content($$$) {
+  my $self = shift;
+  my $element = shift;
+  my $inline_content = shift;
+
+  if (not $self->{'associated_inline_content'}->{$element}) {
+    $self->{'associated_inline_content'}->{$element} = '';
+  }
+  $self->{'associated_inline_content'}->{$element} .= $inline_content;
+}
+
+sub get_associated_formatted_inline_content($$) {
+  my $self = shift;
+  my $element = shift;
+
+  if ($self->{'associated_inline_content'}->{$element}) {
+    my $result = $self->{'associated_inline_content'}->{$element};
+    delete $self->{'associated_inline_content'}->{$element};
+    return $result;
+  }
+  return '';
+}
+
 # API to register an information to a file and get it.  To be able to
 # set an information during conversion and get it back during headers
 # and footers conversion
@@ -3856,6 +3884,10 @@ sub _convert_float_command($$$$$)
 
   my ($caption, $prepended)
      = Texinfo::Convert::Converter::float_name_caption($self, $command);
+  my $caption_command_name;
+  if (defined($caption)) {
+    $caption_command_name = $caption->{'cmdname'};
+  }
   my $caption_text = '';
   my $prepended_text;
   if ($self->in_string()) {
@@ -3900,11 +3932,17 @@ sub _convert_float_command($$$$$)
         }
       }
       push @caption_contents, @caption_original_contents;
+      #$self->register_pending_formatted_inline_content($caption_command_name, 
+      #         $self->convert_tree({'cmdname' => 'strong',
+      #         'args' => [{'type' => 'brace_command_arg',
+      #                    'contents' => [$prepended]}]}), 'float number 
type');
       if ($new_paragraph) {
         $caption_text = $self->convert_tree_new_formatting_context(
+         #$caption->{'args'}->[0], 'float caption');
          {'contents' => \@caption_contents}, 'float caption');
         $prepended_text = '';
       }
+      #$self->cancel_pending_formatted_inline_content($caption_command_name);
     }
     if ($caption_text eq '') {
       $prepended_text = $self->convert_tree_new_formatting_context(
@@ -4787,6 +4825,16 @@ sub default_types_conversion($$)
   return $default_types_conversion{$type};
 }
 
+my %default_types_open;
+
+sub default_types_open($$)
+{
+  my $self = shift;
+  my $type = shift;
+  return $default_types_open{$type};
+}
+
+
 # Ignored commands
 foreach my $type ('empty_line_after_command', 'preamble_before_beginning',
             'preamble_before_setfilename',
@@ -4806,10 +4854,10 @@ sub _convert_paragraph_type($$$$)
 {
   my $self = shift;
   my $type = shift;
-  my $command = shift;
+  my $element = shift;
   my $content = shift;
 
-  $content = $self->get_pending_formatted_inline_content().$content;
+  $content = $self->get_associated_formatted_inline_content($element).$content;
 
   if ($self->paragraph_number() == 1) {
     my $in_format = $self->top_format();
@@ -4839,6 +4887,25 @@ sub _convert_paragraph_type($$$$)
 
 $default_types_conversion{'paragraph'} = \&_convert_paragraph_type;
 
+
+sub _open_inline_container_type($$$)
+{
+  my $self = shift;
+  my $type = shift;
+  my $element = shift;
+
+  my $pending_formatted = $self->get_pending_formatted_inline_content();
+
+  if (defined($pending_formatted)) {
+    $self->associate_pending_formatted_inline_content($element, 
$pending_formatted);
+  }
+  return '';
+}
+
+$default_types_open{'paragraph'} = \&_open_inline_container_type;
+$default_types_open{'preformatted'} = \&_open_inline_container_type;
+
+
 sub _preformatted_class()
 {
   my $self = shift;
@@ -4859,17 +4926,15 @@ sub _convert_preformatted_type($$$$)
 {
   my $self = shift;
   my $type = shift;
-  my $command = shift;
+  my $element = shift;
   my $content = shift;
 
   if (!defined($content)) {
     cluck "content undef in _convert_preformatted_type " 
-       .Texinfo::Common::debug_print_element($command);
+       .Texinfo::Common::debug_print_element($element);
   }
 
-  my $current = $command;
-
-  $content = $self->get_pending_formatted_inline_content().$content;
+  $content = $self->get_associated_formatted_inline_content($element).$content;
 
   return '' if ($content eq '');
 
@@ -4880,15 +4945,15 @@ sub _convert_preformatted_type($$$$)
     $content =~ s/\s*$//;
   }
 
-  # menu_entry_description is always in a preformatted container 
+  # menu_entry_description is always in a preformatted container
   # in the tree, as the whole menu is meant to be an
   # environment where spaces and newlines are preserved.
   #
-  # However, if not in preformatted block command (nor in SIMPLE_MENU), 
-  # we don't preserve spaces and newlines in menu_entry_description, 
+  # However, if not in preformatted block command (nor in SIMPLE_MENU),
+  # we don't preserve spaces and newlines in menu_entry_description,
   # instead the whole menu_entry is in a table, so here, not <pre>
-  if ($command->{'parent'}->{'type'} 
-      and $command->{'parent'}->{'type'} eq 'menu_entry_description'
+  if ($element->{'parent'}->{'type'}
+      and $element->{'parent'}->{'type'} eq 'menu_entry_description'
       and !$self->_in_preformatted_in_menu()) {
     return $content;
   }
@@ -4899,10 +4964,10 @@ sub _convert_preformatted_type($$$$)
   $content =~ s/^\n/\n\n/; # a newline immediately after a <pre> is ignored.
   my $result = $self->html_attribute_class('pre', 
$pre_class).">".$content."</pre>";
 
-  # this may happen with lines without textual content 
+  # this may happen with lines without textual content
   # between a def* and def*x.
-  if ($command->{'parent'}->{'cmdname'} 
-      and $command->{'parent'}->{'cmdname'} =~ /^def/) {
+  if ($element->{'parent'}->{'cmdname'}
+      and $element->{'parent'}->{'cmdname'} =~ /^def/) {
     $result = '<dd>'.$result.'</dd>';
   }
   return $result;
@@ -6166,6 +6231,19 @@ sub converter_initialize($)
           = $default_types_conversion{$type};
     }
   }
+
+  my $customized_types_open
+     = Texinfo::Config::GNUT_get_types_open();
+  foreach my $type (keys(%default_types_conversion)) {
+    if (exists($customized_types_open->{$type})) {
+      $self->{'types_open'}->{$type}
+          = $customized_types_open->{$type};
+    } elsif (exists($default_types_open{$type})) {
+      $self->{'types_open'}->{$type}
+           = $default_types_open{$type};
+    }
+  }
+
   # FIXME API with a function call?  Used in cvs.init.
   foreach my $type (keys(%default_code_types)) {
     $self->{'code_types'}->{$type} = $default_code_types{$type};
@@ -9219,30 +9297,36 @@ sub _convert($$;$)
       $element->{'cmdname'}
         if ($element->{'cmdname'});
 
-    if ($element->{'type'} eq 'paragraph') {
+    my $result = '';
+    my $type_name = $element->{'type'};
+    if (defined($self->{'types_open'}->{$type_name})) {
+      $result .= &{$self->{'types_open'}->{$type_name}}($self,
+                                               $type_name, $element);
+    }
+    if ($type_name eq 'paragraph') {
       
$self->{'document_context'}->[-1]->{'formatting_context'}->[-1]->{'paragraph_number'}++;
-    } elsif ($element->{'type'} eq 'preformatted'
-             or $element->{'type'} eq 'rawpreformatted') {
+    } elsif ($type_name eq 'preformatted'
+             or $type_name eq 'rawpreformatted') {
       
$self->{'document_context'}->[-1]->{'formatting_context'}->[-1]->{'preformatted_number'}++;
-    } elsif ($element->{'type'} eq 'unit'
-             or $element->{'type'} eq 'special_element') {
+    } elsif ($type_name eq 'unit'
+             or $type_name eq 'special_element') {
       $self->{'current_root_element'} = $element;
-    } elsif ($pre_class_types{$element->{'type'}}) {
+    } elsif ($pre_class_types{$type_name}) {
       push @{$self->{'document_context'}->[-1]->{'preformatted_classes'}},
-        $pre_class_types{$element->{'type'}};
+        $pre_class_types{$type_name};
       push @{$self->{'document_context'}->[-1]->{'composition_context'}},
-        $element->{'type'};
+        $type_name;
     }
 
-    if ($self->{'code_types'}->{$element->{'type'}}) {
+    if ($self->{'code_types'}->{$type_name}) {
       push @{$self->{'document_context'}->[-1]->{'monospace'}}, 1;
     }
-    if ($element->{'type'} eq '_string') {
+    if ($type_name eq '_string') {
       $self->{'document_context'}->[-1]->{'string'}++;
     }
 
     my $content_formatted;
-    if ($element->{'type'} eq 'definfoenclose_command') {
+    if ($type_name eq 'definfoenclose_command') {
       if ($element->{'args'}) {
         $content_formatted = $self->_convert($element->{'args'}->[0]);
       }
@@ -9250,29 +9334,28 @@ sub _convert($$;$)
       $content_formatted = $self->_convert_contents($element, $command_type);
     }
 
-    my $result = '';
-    if (exists($self->{'types_conversion'}->{$element->{'type'}})) {
-      $result = &{$self->{'types_conversion'}->{$element->{'type'}}} ($self,
-                                                 $element->{'type'},
+    if (exists($self->{'types_conversion'}->{$type_name})) {
+      $result = &{$self->{'types_conversion'}->{$type_name}} ($self,
+                                                 $type_name,
                                                  $element,
                                                  $content_formatted);
-      #print STDERR "Converting type $element->{'type'} -> $result\n";
+      #print STDERR "Converting type $type_name -> $result\n";
     } elsif (defined($content_formatted)) {
       $result = $content_formatted;
     }
-    if ($self->{'code_types'}->{$element->{'type'}}) {
+    if ($self->{'code_types'}->{$type_name}) {
       pop @{$self->{'document_context'}->[-1]->{'monospace'}};
     } 
-    if ($element->{'type'} eq '_string') {
+    if ($type_name eq '_string') {
       $self->{'document_context'}->[-1]->{'string'}--;
     }
-    if ($element->{'type'} eq 'unit' or $element->{'type'} eq 
'special_element') {
+    if ($type_name eq 'unit' or $type_name eq 'special_element') {
       delete $self->{'current_root_element'};
-    } elsif ($pre_class_types{$element->{'type'}}) {
+    } elsif ($pre_class_types{$type_name}) {
       pop @{$self->{'document_context'}->[-1]->{'preformatted_classes'}};
       pop @{$self->{'document_context'}->[-1]->{'composition_context'}};
     }
-    print STDERR "DO type ($element->{'type'}) => `$result'\n"
+    print STDERR "DO type ($type_name) => `$result'\n"
       if ($self->get_conf('DEBUG'));
     pop @{$self->{'document_context'}->[-1]->{'commands'}} 
         if ($element->{'cmdname'});
diff --git a/tp/init/html32.pm b/tp/init/html32.pm
index af68342a62..d9d725ec26 100644
--- a/tp/init/html32.pm
+++ b/tp/init/html32.pm
@@ -344,10 +344,10 @@ sub html32_convert_paragraph_type($$$$)
 {
   my $self = shift;
   my $type = shift;
-  my $command = shift;
+  my $element = shift;
   my $content = shift;
 
-  $content = $self->get_pending_formatted_inline_content().$content;
+  $content = $self->get_associated_formatted_inline_content($element).$content;
 
   if ($self->paragraph_number() == 1) {
     my $in_format = $self->top_format();
diff --git a/tp/t/181quotation.t b/tp/t/181quotation.t
index a7c90e6e6b..e8107b1bc0 100644
--- a/tp/t/181quotation.t
+++ b/tp/t/181quotation.t
@@ -91,6 +91,11 @@ In quotation
 In quotation
 @end quotation
 '],
+['footnote_in_quotation_with_arg',
+'@quotation lean
+A@footnote{My feet} b.
+@end quotation
+'],
 ['quotation_beginning_and_end_on_line',
 '@quotation in quotation @end quotation
 '],
diff --git a/tp/t/results/quotation/footnote_in_quotation_with_arg.pl 
b/tp/t/results/quotation/footnote_in_quotation_with_arg.pl
new file mode 100644
index 0000000000..1f1cb5aca1
--- /dev/null
+++ b/tp/t/results/quotation/footnote_in_quotation_with_arg.pl
@@ -0,0 +1,187 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors 
+   %result_indices %result_sectioning %result_nodes %result_menus
+   %result_floats %result_converted %result_converted_errors 
+   %result_elements %result_directions_text %result_indices_sort_strings);
+
+use utf8;
+
+$result_trees{'footnote_in_quotation_with_arg'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'lean'
+                }
+              ],
+              'extra' => {
+                'spaces_after_argument' => '
+'
+              },
+              'parent' => {},
+              'type' => 'block_line_arg'
+            }
+          ],
+          'cmdname' => 'quotation',
+          'contents' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'A'
+                },
+                {
+                  'args' => [
+                    {
+                      'contents' => [
+                        {
+                          'contents' => [
+                            {
+                              'parent' => {},
+                              'text' => 'My feet'
+                            }
+                          ],
+                          'parent' => {},
+                          'type' => 'paragraph'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'brace_command_context'
+                    }
+                  ],
+                  'cmdname' => 'footnote',
+                  'contents' => [],
+                  'line_nr' => {
+                    'file_name' => '',
+                    'line_nr' => 2,
+                    'macro' => ''
+                  },
+                  'parent' => {}
+                },
+                {
+                  'parent' => {},
+                  'text' => ' b.
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'paragraph'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'quotation'
+                    }
+                  ],
+                  'extra' => {
+                    'spaces_after_argument' => '
+'
+                  },
+                  'parent' => {},
+                  'type' => 'line_arg'
+                }
+              ],
+              'cmdname' => 'end',
+              'extra' => {
+                'command_argument' => 'quotation',
+                'spaces_before_argument' => ' ',
+                'text_arg' => 'quotation'
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              },
+              'parent' => {}
+            }
+          ],
+          'extra' => {
+            'end_command' => {},
+            'spaces_before_argument' => ' '
+          },
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 1,
+            'macro' => ''
+          },
+          'parent' => {}
+        }
+      ],
+      'parent' => {},
+      'type' => 'before_node_section'
+    }
+  ],
+  'type' => 'document_root'
+};
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'contents'}[1];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[1];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'extra'}{'end_command'}
 = 
$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'contents'}[1];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0];
+$result_trees{'footnote_in_quotation_with_arg'}{'contents'}[0]{'parent'} = 
$result_trees{'footnote_in_quotation_with_arg'};
+
+$result_texis{'footnote_in_quotation_with_arg'} = '@quotation lean
+A@footnote{My feet} b.
+@end quotation
+';
+
+
+$result_texts{'footnote_in_quotation_with_arg'} = 'lean
+A b.
+';
+
+$result_errors{'footnote_in_quotation_with_arg'} = [];
+
+
+$result_floats{'footnote_in_quotation_with_arg'} = {};
+
+
+
+$result_converted{'plaintext'}->{'footnote_in_quotation_with_arg'} = '     
lean: A(1) b.
+
+   ---------- Footnotes ----------
+
+   (1) My feet
+
+';
+
+
+$result_converted{'html_text'}->{'footnote_in_quotation_with_arg'} = 
'<blockquote>
+<p><b class="b">lean:</b> A<a class="footnote" id="DOCF1" 
href="#FOOT1"><sup>1</sup></a> b.
+</p></blockquote>
+<div class="footnote">
+<hr>
+<h4 class="footnotes-heading">Footnotes</h4>
+
+<h5><a id="FOOT1" href="#DOCF1">(1)</a></h5>
+<p>My feet</p>
+</div>
+';
+
+
+$result_converted{'xml'}->{'footnote_in_quotation_with_arg'} = '<quotation 
spaces=" " endspaces=" "><quotationtype>lean</quotationtype>
+<para>A<footnote><para>My feet</para></footnote> b.
+</para></quotation>
+';
+
+
+$result_converted{'docbook'}->{'footnote_in_quotation_with_arg'} = 
'<blockquote><para><emphasis role="bold">lean:</emphasis> A<footnote><para>My 
feet</para></footnote> b.
+</para></blockquote>';
+
+1;



reply via email to

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