[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 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.,
Patrice Dumas <=