texinfo-commits
[Top][All Lists]
Advanced

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

[no subject]


From: Patrice Dumas
Date: Sat, 6 Aug 2022 13:27:26 -0400 (EDT)

branch: master
commit 3125bc79398f30022056bb13822d449c44c54b6d
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sat Aug 6 18:51:32 2022 +0200

    Percent encode href or src attributes that may need it
    
    * tp/Texinfo/Convert/HTML.pm (protect_url_text)
    (_protect_url), tp/ext/epub3.pm (epub_convert_image_command):
    function protect_url_text() used to protect urls, both percent
    protect and protect HTML special characters with entities.
    * tp/Texinfo/Convert/HTML.pm (%default_commands_args)
    (_convert_email_command, _convert_uref_command):
    convert @uref/@url and @email first argument as simple
    text instead of string or monospace normal output, to
    use protect_url_text().
---
 ChangeLog                                          | 14 ++++
 tp/TODO                                            |  3 -
 tp/Texinfo/Convert/HTML.pm                         | 83 +++++++++++++++-------
 tp/ext/epub3.pm                                    |  7 +-
 tp/init/html32.pm                                  |  2 +-
 tp/t/results/converters_tests/image_formatting.pl  |  4 +-
 tp/t/results/coverage_braces/test_image.pl         | 48 ++++++-------
 .../uref_with_commands_characters.pl               |  2 +-
 tp/t/results/html_tests/commands_in_email.pl       |  2 +-
 tp/t/results/html_tests/mathjax_with_texinfo.pl    |  2 +-
 .../mathjax_with_texinfo_enable_encoding.pl        |  2 +-
 .../mathjax_with_texinfo_no_convert_to_latex.pl    |  2 +-
 tp/t/results/indices/explicit_sort_key.pl          |  2 +-
 tp/t/results/raw/displaymath.pl                    |  2 +-
 .../formatting/res_parser/cpp_lines/cpp_lines.html | 14 ++--
 .../non_ascii_command_line/Chapteur.html           |  8 +--
 .../res_parser/non_ascii_command_line/index.html   |  4 +-
 .../os\303\251_utf8_abt.html"                      |  4 +-
 .../layout/res_parser/formatting/formatting.html   | 20 +++---
 .../layout/res_parser/formatting_chm/chapter.html  | 12 ++--
 .../res_parser/formatting_chm/formatting.html      |  8 +--
 .../formatting_enable_encoding/formatting.html     | 20 +++---
 .../EPUB/xhtml/chapter.xhtml                       |  2 +-
 .../EPUB/xhtml/chapter2.xhtml                      |  2 +-
 .../EPUB/xhtml/formatting.xhtml                    |  2 +-
 .../EPUB/xhtml/formatting_abt.xhtml                |  2 +-
 .../EPUB/xhtml/formatting_fot.xhtml                |  2 +-
 .../EPUB/xhtml/formatting_ovr.xhtml                |  2 +-
 .../EPUB/xhtml/formatting_toc.xhtml                |  2 +-
 .../EPUB/xhtml/s_002d_002dect_002cion.xhtml        |  2 +-
 .../EPUB/xhtml/subsection.xhtml                    |  2 +-
 ...ion-_0060_0060simple_002ddouble_002d_002d.xhtml |  2 +-
 ...2d_002dfour_002d_002d_002d_002d_0027_0027.xhtml |  2 +-
 .../res_parser/formatting_exotic/chapter.html      | 12 ++--
 .../res_parser/formatting_fr_icons/formatting.html | 20 +++---
 .../res_parser/formatting_html/formatting.html     | 20 +++---
 .../res_parser/formatting_html32/formatting.html   | 20 +++---
 .../formatting_html_no_texi2html/formatting.html   | 12 ++--
 .../res_parser/formatting_html_nodes/chapter.html  | 12 ++--
 .../res_parser/formatting_html_nodes/index.html    |  8 +--
 .../formatting_inline_css/formatting.html          | 20 +++---
 .../res_parser/formatting_mathjax/formatting.html  | 22 +++---
 .../res_parser/formatting_nodes/chapter.html       | 12 ++--
 .../layout/res_parser/formatting_nodes/index.html  |  8 +--
 .../formatting_numerical_entities/formatting.html  | 20 +++---
 .../formatting_regions/formatting_regions.html     | 20 +++---
 .../formatting_weird_quotes/formatting.html        | 20 +++---
 .../res_parser/formatting_xhtml/formatting.html    | 20 +++---
 .../res_parser/formatting_singular/chapter.html    | 12 ++--
 .../res_parser/tex_gdef_mathjax/tex_gdef.html      |  2 +-
 50 files changed, 295 insertions(+), 252 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 1c28e08309..c67a81b7a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2022-08-06  Patrice Dumas  <pertusus@free.fr>
+
+       Percent encode href or src attributes that may need it
+
+       * tp/Texinfo/Convert/HTML.pm (protect_url_text)
+       (_protect_url), tp/ext/epub3.pm (epub_convert_image_command):
+       function protect_url_text() used to protect urls, both percent
+       protect and protect HTML special characters with entities.
+       * tp/Texinfo/Convert/HTML.pm (%default_commands_args)
+       (_convert_email_command, _convert_uref_command):
+       convert @uref/@url and @email first argument as simple
+       text instead of string or monospace normal output, to
+       use protect_url_text().
+
 2022-08-06  Gavin Smith  <gavinsmith0123@gmail.com>
 
        Better environments in LaTeX
diff --git a/tp/TODO b/tp/TODO
index 004c5060c5..a8d1fde0b8 100644
--- a/tp/TODO
+++ b/tp/TODO
@@ -31,9 +31,6 @@ HTML5 validation to check
 Spaces in href, and maybe other characters that are not % escaped
 are (also for <img>).  Only needed for url not conformaing to the
 inter manual XREF in HTML spec, ie in @url, @image.
-From the perl faq:
-https://perldoc.perl.org/perlfaq9#How-do-I-decode-or-create-those-%25-encodings-on-the-web?
-To encode a string yourself, use the URI::Escape module. The uri_escape 
function returns the escaped string
 It protects accented characters.
 The URL specification for HTML5 is at https://url.spec.whatwg.org/
 <a> escaping malformed URI reference
diff --git a/tp/Texinfo/Convert/HTML.pm b/tp/Texinfo/Convert/HTML.pm
index ca19484157..4c84b3ab47 100644
--- a/tp/Texinfo/Convert/HTML.pm
+++ b/tp/Texinfo/Convert/HTML.pm
@@ -50,7 +50,7 @@ use File::Copy qw(copy);
 
 use Storable;
 
-use Encode qw(find_encoding decode);
+use Encode qw(find_encoding decode encode);
 
 use Texinfo::Common;
 use Texinfo::Config;
@@ -2135,11 +2135,11 @@ my %default_code_types = (
 # specification of arguments formatting
 my %default_commands_args = (
   'anchor' => [['monospacestring']],
-  'email' => [['monospace', 'monospacestring'], ['normal']],
+  'email' => [['monospacetext'], ['normal']],
   'footnote' => [[]],
   'printindex' => [[]],
-  'uref' => [['monospacestring'], ['normal'], ['normal']],
-  'url' => [['monospacestring'], ['normal'], ['normal']],
+  'uref' => [['monospacetext'], ['normal'], ['normal']],
+  'url' => [['monospacetext'], ['normal'], ['normal']],
   'sp' => [[]],
   'inforef' => [['monospace'],['normal'],['monospacetext']],
   'xref' => [['monospace'],['normal'],['normal'],['monospacetext'],['normal']],
@@ -2627,22 +2627,23 @@ sub _convert_email_command($$$$)
   my $mail_arg = shift @$args;
   my $text_arg = shift @$args;
   my $mail = '';
-  my $mail_string = '';
+  my $mail_string;
   if (defined($mail_arg)) {
-    $mail = $mail_arg->{'monospace'};
-    $mail_string = $mail_arg->{'monospacestring'};
+    $mail = $mail_arg->{'monospacetext'};
+    $mail_string
+      = &{$self->formatting_function('format_protect_text')}($self, $mail);
   }
   my $text = '';
   if (defined($text_arg)) {
     $text = $text_arg->{'normal'};
   }
-  $text = $mail unless ($text ne '');
+  $text = $mail_string unless ($text ne '');
   return $text if ($mail eq '');
   if ($self->in_string()) {
     return "$mail_string ($text)";
   } else {
     return $self->html_attribute_class('a', [$cmdname])
-                        ." href=\"mailto:$mail_string\";>$text</a>";
+    .' href="'.$self->protect_url_text("mailto:$mail_string";)."\">$text</a>";
   }
 }
 
@@ -2846,15 +2847,18 @@ sub _convert_uref_command($$$$)
   my $replacement_arg = shift @args;
 
   my ($url, $text, $replacement);
-  $url = $url_arg->{'monospacestring'} if defined($url_arg);
+  #$url = $url_arg->{'monospacestring'} if defined($url_arg);
+  $url = $url_arg->{'monospacetext'} if defined($url_arg);
   $text = $text_arg->{'normal'} if defined($text_arg);
   $replacement = $replacement_arg->{'normal'} if defined($replacement_arg);
 
   $text = $replacement if (defined($replacement) and $replacement ne '');
-  $text = $url if (!defined($text) or $text eq '');
+  $text = &{$self->formatting_function('format_protect_text')}($self, $url)
+            if (!defined($text) or $text eq '');
   return $text if (!defined($url) or $url eq '');
   return "$text ($url)" if ($self->in_string());
-  return $self->html_attribute_class('a', [$cmdname])." 
href=\"$url\">$text</a>";
+  return $self->html_attribute_class('a', [$cmdname])
+           .' href="'.$self->protect_url_text($url)."\">$text</a>";
 }
 
 $default_commands_conversion{'uref'} = \&_convert_uref_command;
@@ -2889,11 +2893,9 @@ sub _convert_image_command($$$$)
       $alt_string
        = &{$self->formatting_function('format_protect_text')}($self, 
$basefile);
     }
-    my $image_src
-     = &{$self->formatting_function('format_protect_text')}($self, 
$image_file);
     return $self->close_html_lone_element(
       $self->html_attribute_class('img', [$cmdname])
-        . " src=\"$image_src\" alt=\"$alt_string\"");
+        . ' src="'.$self->protect_url_text($image_file)."\" 
alt=\"$alt_string\"");
   }
   return '';
 }
@@ -3215,7 +3217,8 @@ sub _default_format_button_icon_img($$$;$)
     $alt = $button;
   }
   return $self->close_html_lone_element(
-    "<img src=\"$icon\" border=\"0\" alt=\"$alt\" align=\"middle\"");
+    '<img src="'.$self->protect_url_text($icon)
+       ."\" border=\"0\" alt=\"$alt\" align=\"middle\"");
 }
 
 sub _direction_href_attributes($$)
@@ -7087,6 +7090,30 @@ sub convert_tree($$;$)
   return $self->_convert($tree, $explanation);
 }
 
+# percent encode character string.  It is better use UTF-8 irrespective
+# of the actual charset of the HTML output file, according to the tests done.
+sub _protect_url($)
+{
+  my $input_string = shift;
+  my $result_string = encode("UTF-8", $input_string);
+  # found on the internet, original author unknown
+  # protect everything except unreserved characters
+  #$result_string =~ s/([^^A-Za-z0-9\-_.!~*'()])/ sprintf "%%%02x", ord $1 /eg;
+  # protect everything except unreserved and reserved characters + the % itself
+  $result_string =~ s/([^^A-Za-z0-9\-_.!~*'()\$&+,\/:;=\?@\[\]\#%])/ sprintf 
"%%%02x", ord $1 /eg;
+  return $result_string;
+}
+
+# FIXME documentas part of the API.  Make it a mandatory called function?
+# a format_* function?
+sub protect_url_text($$)
+{
+  my $self = shift;
+  my $input_string = shift;
+  my $href = _protect_url($input_string);
+  return &{$self->formatting_function('format_protect_text')}($self, $href);
+}
+
 sub _normalized_to_id($)
 {
   my $id = shift;
@@ -7127,7 +7154,8 @@ sub _default_format_css_lines($;$)
   $css_text .= "-->\n</style>\n";
   foreach my $ref (@$css_refs) {
     $css_text .= $self->close_html_lone_element(
-         "<link rel=\"stylesheet\" type=\"text/css\" href=\"$ref\"")."\n";
+         '<link rel="stylesheet" type="text/css" href="'.
+                $self->protect_url_text($ref).'"')."\n";
   }
   return $css_text;
 }
@@ -8480,7 +8508,7 @@ sub _default_format_end_file($$)
     if (defined($js_setting) and defined($js_path)
         and ($js_setting eq 'generate' or $js_setting eq 'reference')) {
       $pre_body_close .=
-        "<a href='$js_path' rel='jslicense'><small>"
+        '<a href="'.$self->protect_url_text($js_path).'" 
rel="jslicense"><small>'
         .$self->convert_tree($self->gdt('JavaScript license information'))
         .'</small></a>';
     }
@@ -8604,9 +8632,12 @@ sub _file_header_information($$;$)
       }
 
       $extra_head .= $self->close_html_lone_element(
-        '<link rel="stylesheet" type="text/css" 
href="'.$jsdir.'info.css"')."\n".
-'<script src="'.$jsdir.'modernizr.js" type="text/javascript"></script>
-<script src="'.$jsdir.'info.js" type="text/javascript"></script>';
+        '<link rel="stylesheet" type="text/css" href="'.
+                     $self->protect_url_text($jsdir).'info.css"')."\n".
+'<script src="'.$self->protect_url_text($jsdir)
+                      .'modernizr.js" type="text/javascript"></script>
+<script src="'.$self->protect_url_text($jsdir)
+                      .'info.js" type="text/javascript"></script>';
     }
   }
   if ((defined($self->get_conf('HTML_MATH'))
@@ -8627,7 +8658,7 @@ MathJax = {
 };
 </script>"
 .'<script type="text/javascript" id="MathJax-script" async
-  src="'.$mathjax_script.'">
+  src="'.$self->protect_url_text($mathjax_script).'">
 </script>';
 
   }
@@ -8969,9 +9000,11 @@ sub _do_jslicenses_file {
     foreach my $file (sort(keys %{$jslicenses->{$category}})) {
       my $file_info = $jslicenses->{$category}->{$file};
       $a .= "<tr>\n";
-      $a .= "<td><a href=\"$file\">$file</a></td>\n";
-      $a .= "<td><a href=\"$file_info->[1]\">$file_info->[0]</a></td>\n";
-      $a .= "<td><a href=\"$file_info->[2]\">$file_info->[2]</a></td>\n";
+      $a .= '<td><a 
href="'.$self->protect_url_text($file)."\">$file</a></td>\n";
+      $a .= '<td><a href="'.$self->protect_url_text($file_info->[1])
+                                         ."\">$file_info->[0]</a></td>\n";
+      $a .= '<td><a href="'.$self->protect_url_text($file_info->[2])
+                                         ."\">$file_info->[2]</a></td>\n";
       $a .= "</tr>\n";
     }
   }
diff --git a/tp/ext/epub3.pm b/tp/ext/epub3.pm
index 0767c7daea..fb6051a7e4 100644
--- a/tp/ext/epub3.pm
+++ b/tp/ext/epub3.pm
@@ -307,12 +307,11 @@ sub epub_convert_image_command($$$$)
       $alt_string
        = &{$self->formatting_function('format_protect_text')}($self, 
$basefile);
     }
-    my $image_src
-     = &{$self->formatting_function('format_protect_text')}($self,
-                                                    $destination_file_name);
+
     return $self->close_html_lone_element(
       $self->html_attribute_class('img', [$cmdname])
-        . " src=\"$image_src\" alt=\"$alt_string\"");
+        . ' src="'.$self->protect_url_text($destination_file_name)
+           ."\" alt=\"$alt_string\"");
   }
   return '';
 }
diff --git a/tp/init/html32.pm b/tp/init/html32.pm
index 7d18f8975b..4d3cc05d96 100644
--- a/tp/init/html32.pm
+++ b/tp/init/html32.pm
@@ -184,7 +184,7 @@ sub html32_convert_explained_command($$$$)
 
   my $result;
   if ($with_explanation) {
-    $result = $self->convert_tree ($self->gdt('{explained_string} 
({explanation})',
+    $result = $self->convert_tree($self->gdt('{explained_string} 
({explanation})',
           {'explained_string' => $args->[0]->{'tree'},
            'explanation' => $args->[1]->{'tree'} }));
   } else {
diff --git a/tp/t/results/converters_tests/image_formatting.pl 
b/tp/t/results/converters_tests/image_formatting.pl
index d3c4adaeed..7d0d3a82ca 100644
--- a/tp/t/results/converters_tests/image_formatting.pl
+++ b/tp/t/results/converters_tests/image_formatting.pl
@@ -2805,7 +2805,7 @@ $result_converted{'html_text'}->{'image_formatting'} = 
'<div class="top-level-ex
 <code class="code">@image{f--ile,,,,e-d-xt}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,e--xt}</code> <img class="image" 
src="f--ile.png" alt="alt">
 <code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" 
src="f-ile.jpg" alt="a&ndash;lt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} 
e--xt@}</code> <img class="image" src="f--ile@.file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} 
e--xt@}</code> <img class="image" src="f--ile@.file%20ext%20e--xt%7d" alt="alt">
 <img class="image" src="image.jpg" alt="image"> <img class="image" 
src="image.jpg" alt="image">
 </p>
 <div class="example">
@@ -2816,7 +2816,7 @@ $result_converted{'html_text'}->{'image_formatting'} = 
'<div class="top-level-ex
 <code class="code">@image{f--ile,,,,e-d-xt}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,e--xt}</code> <img class="image" 
src="f--ile.png" alt="alt">
 <code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" 
src="f-ile.jpg" alt="a&ndash;lt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} 
e--xt@}</code> <img class="image" src="f--ile@.file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} 
e--xt@}</code> <img class="image" src="f--ile@.file%20ext%20e--xt%7d" alt="alt">
 <img class="image" src="image.jpg" alt="image"> <img class="image" 
src="image.jpg" alt="image">
 </pre></div>
 
diff --git a/tp/t/results/coverage_braces/test_image.pl 
b/tp/t/results/coverage_braces/test_image.pl
index fe6ab0793d..f8908651c6 100644
--- a/tp/t/results/coverage_braces/test_image.pl
+++ b/tp/t/results/coverage_braces/test_image.pl
@@ -3925,40 +3925,40 @@ div.example {margin-left: 3.2em}
 
 <h1 class="node" id="Top">Top</h1>
 
-<img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; 
.ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="f@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 
-<p>In text <img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % 
&quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt 
&icirc;&ndash;le..  a
+<p>In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.
 </p>
 <p>Insertcopying
 </p><p>Text in copying.
-<img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; 
.ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="f@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 </p>
-<p>In text <img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % 
&quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt 
&icirc;&ndash;le..  a
+<p>In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.
 </p>
 <div class="example">
-<pre class="example-preformatted"><img class="image" src="f@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; 
@ % &quot; " alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<pre class="example-preformatted"><img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 
-In text <img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % 
&quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt 
&icirc;&ndash;le..  a
+In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.
 </pre></div>
 
 <div class="float" id="Image-with-commands">
-<img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; 
.ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="f@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 
-<p>In text <img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % 
&quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt 
&icirc;&ndash;le..  a
+<p>In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.
 </p>
 
-<div class="caption"><img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; 
&amp; @ % &quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " 
alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<div class="caption"><img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 
-<p><strong class="strong">Image 1: </strong>In text <img class="image" 
src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; .ext@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt &icirc;&ndash;le..  a
+<p><strong class="strong">Image 1: </strong>In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.</p></div></div>
 <dl class="listoffloats">
-<dt><a href="#Image-with-commands">Image 1</a></dt><dd 
class="caption-in-listoffloats"><img class="image" src="f@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; 
@ % &quot; " alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<dt><a href="#Image-with-commands">Image 1</a></dt><dd 
class="caption-in-listoffloats"><img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 
-<p>In text <img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % 
&quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt 
&icirc;&ndash;le..  a
+<p>In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.</p></dd>
 </dl>
 
@@ -4166,40 +4166,40 @@ $result_converted{'html_text'}->{'test_image'} = '
 
 <h1 class="node" id="Top">Top</h1>
 
-<img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; 
.ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="f@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 
-<p>In text <img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % 
&quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt 
&icirc;&ndash;le..  a
+<p>In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.
 </p>
 <p>Insertcopying
 </p><p>Text in copying.
-<img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; 
.ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="f@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 </p>
-<p>In text <img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % 
&quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt 
&icirc;&ndash;le..  a
+<p>In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.
 </p>
 <div class="example">
-<pre class="example-preformatted"><img class="image" src="f@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; 
@ % &quot; " alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<pre class="example-preformatted"><img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 
-In text <img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % 
&quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt 
&icirc;&ndash;le..  a
+In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.
 </pre></div>
 
 <div class="float" id="Image-with-commands">
-<img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; 
.ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="f@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 
-<p>In text <img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % 
&quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt 
&icirc;&ndash;le..  a
+<p>In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.
 </p>
 
-<div class="caption"><img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; 
&amp; @ % &quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " 
alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<div class="caption"><img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 
-<p><strong class="strong">Image 1: </strong>In text <img class="image" 
src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; .ext@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt &icirc;&ndash;le..  a
+<p><strong class="strong">Image 1: </strong>In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.</p></div></div>
 <dl class="listoffloats">
-<dt><a href="#Image-with-commands">Image 1</a></dt><dd 
class="caption-in-listoffloats"><img class="image" src="f@i--le..  
a@&lt;&quot;%@  &lt; &amp; @ % &quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; 
@ % &quot; " alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
+<dt><a href="#Image-with-commands">Image 1</a></dt><dd 
class="caption-in-listoffloats"><img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; ">
 
-<p>In text <img class="image" src="f@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % 
&quot; .ext@i--le..  a@&lt;&quot;%@  &lt; &amp; @ % &quot; " alt="alt 
&icirc;&ndash;le..  a
+<p>In text <img class="image" 
src="f@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20.ext@i--le..%20%20a@%3c%22%@%20%20%3c%20&amp;%20@%20%%20%22%20"
 alt="alt &icirc;&ndash;le..  a
 &lt;&quot;%@  &lt; &amp; @ % &quot; ">.</p></dd>
 </dl>
 
diff --git a/tp/t/results/coverage_braces/uref_with_commands_characters.pl 
b/tp/t/results/coverage_braces/uref_with_commands_characters.pl
index 77e8a05bf8..0cc7240b1e 100644
--- a/tp/t/results/coverage_braces/uref_with_commands_characters.pl
+++ b/tp/t/results/coverage_braces/uref_with_commands_characters.pl
@@ -189,7 +189,7 @@ p+h#aaa)
 ';
 
 
-$result_converted{'html_text'}->{'uref_with_commands_characters'} = '<p><a 
class="uref" href="http://my-host.com/~toto%5Cs\'q&quot;a&amp;e?b}b{ba@s\\s 
p+h#aaa">see that <strong class="strong">LaTeX</strong></a>
+$result_converted{'html_text'}->{'uref_with_commands_characters'} = '<p><a 
class="uref" 
href="http://my-host.com/~toto%5Cs\'q%22a&amp;e?b%7db%7bba@s%5cs%20p+h#aaa">see 
that <strong class="strong">LaTeX</strong></a>
 </p>';
 
 
diff --git a/tp/t/results/html_tests/commands_in_email.pl 
b/tp/t/results/html_tests/commands_in_email.pl
index e42059fe64..ee99e7cba4 100644
--- a/tp/t/results/html_tests/commands_in_email.pl
+++ b/tp/t/results/html_tests/commands_in_email.pl
@@ -111,6 +111,6 @@ $result_floats{'commands_in_email'} = {};
 
 
 
-$result_converted{'html_text'}->{'commands_in_email'} = '<p><a class="email" 
href="mailto:endots ... in code">endots <small class="enddots">...</small> 
<code class="code">in code</code></a></p>';
+$result_converted{'html_text'}->{'commands_in_email'} = '<p><a class="email" 
href="mailto:endots%20...%20in%20code";>endots ... in code</a></p>';
 
 1;
diff --git a/tp/t/results/html_tests/mathjax_with_texinfo.pl 
b/tp/t/results/html_tests/mathjax_with_texinfo.pl
index 44cbbdeda4..a111cd7b58 100644
--- a/tp/t/results/html_tests/mathjax_with_texinfo.pl
+++ b/tp/t/results/html_tests/mathjax_with_texinfo.pl
@@ -397,7 +397,7 @@ MathJax = {
 <p>Some <em class="math tex2jax_process">\\(a - b \\geq{} 
\\mathord{\\text{\\AA{}}} \\hat{e}\\)</em>.
 </p>
 
-<a href=\'js_licenses.html\' rel=\'jslicense\'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.html" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
 ';
diff --git a/tp/t/results/html_tests/mathjax_with_texinfo_enable_encoding.pl 
b/tp/t/results/html_tests/mathjax_with_texinfo_enable_encoding.pl
index baaa375374..0317f8ca52 100644
--- a/tp/t/results/html_tests/mathjax_with_texinfo_enable_encoding.pl
+++ b/tp/t/results/html_tests/mathjax_with_texinfo_enable_encoding.pl
@@ -412,7 +412,7 @@ MathJax = {
 <p>Some <em class="math tex2jax_process">\\(a - b \\geq{} Å ê\\)</em>.
 </p>
 
-<a href=\'js_licenses.html\' rel=\'jslicense\'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.html" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
 ';
diff --git 
a/tp/t/results/html_tests/mathjax_with_texinfo_no_convert_to_latex.pl 
b/tp/t/results/html_tests/mathjax_with_texinfo_no_convert_to_latex.pl
index 2be26cf42a..75475cda5b 100644
--- a/tp/t/results/html_tests/mathjax_with_texinfo_no_convert_to_latex.pl
+++ b/tp/t/results/html_tests/mathjax_with_texinfo_no_convert_to_latex.pl
@@ -397,7 +397,7 @@ MathJax = {
 <p>Some <em class="math tex2jax_process">\\(a - b &ge; &Aring; &ecirc;\\)</em>.
 </p>
 
-<a href=\'js_licenses.html\' rel=\'jslicense\'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.html" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
 ';
diff --git a/tp/t/results/indices/explicit_sort_key.pl 
b/tp/t/results/indices/explicit_sort_key.pl
index 0d5c54484f..ad8f0203f0 100644
--- a/tp/t/results/indices/explicit_sort_key.pl
+++ b/tp/t/results/indices/explicit_sort_key.pl
@@ -1025,7 +1025,7 @@ $result_converted{'html_text'}->{'explicit_sort_key'} = 
'<div class="top-level-e
 <p>in a reuglar para. <code class="code">inside another</code>.
 </p>
 <p>.
-<a class="url" href="and cmd">and cmd</a>.
+<a class="url" href="and%20cmd">and cmd</a>.
 </p>
 <div class="printindex SK-printindex">
 <table class="SK-letters-header-printindex"><tr><th>Jump to: &nbsp; 
</th><td><a class="summary-letter-printindex" 
href="#t_i_SK_symbol-1"><b>0</b></a>
diff --git a/tp/t/results/raw/displaymath.pl b/tp/t/results/raw/displaymath.pl
index c4256fb32b..02e6e0a346 100644
--- a/tp/t/results/raw/displaymath.pl
+++ b/tp/t/results/raw/displaymath.pl
@@ -332,7 +332,7 @@ MathJax = {
 \\]</em></div><p>after
 </p>
 
-<a href=\'js_licenses.html\' rel=\'jslicense\'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.html" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
 ';
diff --git a/tp/tests/formatting/res_parser/cpp_lines/cpp_lines.html 
b/tp/tests/formatting/res_parser/cpp_lines/cpp_lines.html
index 72f262d89f..8a00e1341e 100644
--- a/tp/tests/formatting/res_parser/cpp_lines/cpp_lines.html
+++ b/tp/tests/formatting/res_parser/cpp_lines/cpp_lines.html
@@ -24,7 +24,7 @@ span.program-in-footer {font-size: smaller}
 <body lang="en">
 
 
-<p><a class="email" href="mailto:before top">before top</a>.
+<p><a class="email" href="mailto:before%20top";>before top</a>.
 </p>
 <a class="node" id="Top"></a>
 <p># 10 25 209
@@ -34,27 +34,27 @@ span.program-in-footer {font-size: smaller}
   #line 5 &quot;f&quot;
 </pre>
 
-<p><a class="email" href="mailto:after lacro def">after lacro def</a>
+<p><a class="email" href="mailto:after%20lacro%20def";>after lacro def</a>
 </p>
 <p># line 7 &quot;k&quot;
 </p>
-<p><a class="email" href="mailto:after macro call">after macro call</a>.
+<p><a class="email" href="mailto:after%20macro%20call";>after macro call</a>.
 </p>
 
-<p><a class="email" href="mailto:after macrotwo def">after macrotwo def</a>
+<p><a class="email" href="mailto:after%20macrotwo%20def";>after macrotwo def</a>
 </p>
 <p>line before
 # line 666 &quot;x&quot;
 </p>
-<p><a class="email" href="mailto:after macrotwo call">after macrotwo call</a>. 
+<p><a class="email" href="mailto:after%20macrotwo%20call";>after macrotwo 
call</a>. 
 </p>
-<p><a class="email" href="mailto:after inc">after inc</a>. 
+<p><a class="email" href="mailto:after%20inc";>after inc</a>. 
 </p>
 <p><code class="verb">
 #line 5 &quot;in verb&quot;
 </code>
 </p>
-<p><a class="email" href="mailto:after verb">after verb</a>
+<p><a class="email" href="mailto:after%20verb";>after verb</a>
 </p>
 
 
diff --git 
a/tp/tests/formatting/res_parser/non_ascii_command_line/Chapteur.html 
b/tp/tests/formatting/res_parser/non_ascii_command_line/Chapteur.html
index 663144e65f..73108c5bdf 100644
--- a/tp/tests/formatting/res_parser/non_ascii_command_line/Chapteur.html
+++ b/tp/tests/formatting/res_parser/non_ascii_command_line/Chapteur.html
@@ -32,8 +32,8 @@ ul.mark-néni {list-style-type: "vàça"}
 
 -->
 </style>
-<link rel="stylesheet" type="text/css" href="rëf">
-<link rel="stylesheet" type="text/css" href="öref">
+<link rel="stylesheet" type="text/css" href="r%c3%abf">
+<link rel="stylesheet" type="text/css" href="%c3%b6ref">
 
 
 </head>
@@ -64,9 +64,9 @@ ul.mark-néni {list-style-type: "vàça"}
 </p>
 <p>In included téxt.
 </p>
-<img class="image" src="an_ïmage.png" alt="öld">
+<img class="image" src="an_%c3%afmage.png" alt="öld">
 
-<img class="image" src="dîrectory/imàge.êxt" alt="âlt">
+<img class="image" src="d%c3%aerectory/im%c3%a0ge.%c3%aaxt" alt="âlt">
 
 
 <pre class="verbatim">In included téxt.
diff --git a/tp/tests/formatting/res_parser/non_ascii_command_line/index.html 
b/tp/tests/formatting/res_parser/non_ascii_command_line/index.html
index 4f26afb9ca..15317f2151 100644
--- a/tp/tests/formatting/res_parser/non_ascii_command_line/index.html
+++ b/tp/tests/formatting/res_parser/non_ascii_command_line/index.html
@@ -32,8 +32,8 @@ ul.mark-néni {list-style-type: "vàça"}
 
 -->
 </style>
-<link rel="stylesheet" type="text/css" href="rëf">
-<link rel="stylesheet" type="text/css" href="öref">
+<link rel="stylesheet" type="text/css" href="r%c3%abf">
+<link rel="stylesheet" type="text/css" href="%c3%b6ref">
 
 
 </head>
diff --git 
"a/tp/tests/formatting/res_parser/non_ascii_command_line/os\303\251_utf8_abt.html"
 
"b/tp/tests/formatting/res_parser/non_ascii_command_line/os\303\251_utf8_abt.html"
index afbdfec325..ea7e6c864d 100644
--- 
"a/tp/tests/formatting/res_parser/non_ascii_command_line/os\303\251_utf8_abt.html"
+++ 
"b/tp/tests/formatting/res_parser/non_ascii_command_line/os\303\251_utf8_abt.html"
@@ -32,8 +32,8 @@ ul.mark-néni {list-style-type: "vàça"}
 
 -->
 </style>
-<link rel="stylesheet" type="text/css" href="rëf">
-<link rel="stylesheet" type="text/css" href="öref">
+<link rel="stylesheet" type="text/css" href="r%c3%abf">
+<link rel="stylesheet" type="text/css" href="%c3%b6ref">
 
 
 </head>
diff --git a/tp/tests/layout/res_parser/formatting/formatting.html 
b/tp/tests/layout/res_parser/formatting/formatting.html
index 097d3fc841..4b365363f1 100644
--- a/tp/tests/layout/res_parser/formatting/formatting.html
+++ b/tp/tests/layout/res_parser/formatting/formatting.html
@@ -1842,10 +1842,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2920,10 +2920,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4054,10 +4054,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -5130,10 +5130,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -6348,10 +6348,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/layout/res_parser/formatting_chm/chapter.html 
b/tp/tests/layout/res_parser/formatting_chm/chapter.html
index 97c746742c..69b5135a14 100644
--- a/tp/tests/layout/res_parser/formatting_chm/chapter.html
+++ b/tp/tests/layout/res_parser/formatting_chm/chapter.html
@@ -1843,10 +1843,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -2919,10 +2919,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4137,10 +4137,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/layout/res_parser/formatting_chm/formatting.html 
b/tp/tests/layout/res_parser/formatting_chm/formatting.html
index 894814ecb0..142c45e07b 100644
--- a/tp/tests/layout/res_parser/formatting_chm/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_chm/formatting.html
@@ -1835,10 +1835,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2913,10 +2913,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
diff --git 
a/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html 
b/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html
index 9560c3a9b6..cb8f967d5f 100644
--- a/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html
@@ -1842,10 +1842,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2920,10 +2920,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4054,10 +4054,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -5130,10 +5130,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -6348,10 +6348,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
index b47b50627a..d62f82ba5d 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
@@ -4893,6 +4893,6 @@ Invalid use of @':
 </div>
 
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
index d75852ce2e..fa237a56d7 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
@@ -1395,6 +1395,6 @@ h1.centerchap {text-align:center}
 </div>
 
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting.xhtml
index f4378dc66f..83cfbe07f0 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting.xhtml
@@ -3039,6 +3039,6 @@ html ''
 
 <a class="node" id="Top"></a><a class="top" id="Top-section"></a>
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml
index 94af5a028a..8d431066af 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml
@@ -956,6 +956,6 @@ g-roupe
 </ul>
 </div>
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml
index 41c783ce11..745e314b3e 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml
@@ -888,6 +888,6 @@ g-roupe
 <p>in footnote</p>
 </div>
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml
index 1f81a2a99c..8d281f1e81 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml
@@ -868,6 +868,6 @@ ul.toc-numbered-mark {list-style: none}
 </div>
 </div>
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml
index 8f8c8f7b4b..acf5ef7793 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml
@@ -879,6 +879,6 @@ ul.toc-numbered-mark {list-style: none}
 </div>
 </div>
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/s_002d_002dect_002cion.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/s_002d_002dect_002cion.xhtml
index e325bb7ace..b7c264f2c4 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/s_002d_002dect_002cion.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/s_002d_002dect_002cion.xhtml
@@ -859,6 +859,6 @@ g-roupe
 </div>
 
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsection.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsection.xhtml
index 5fb04e7211..9ba066aa93 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsection.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsection.xhtml
@@ -860,6 +860,6 @@ g-roupe
 </div>
 
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-_0060_0060simple_002ddouble_002d_002d.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-_0060_0060simple_002ddouble_002d_002d.xhtml
index 406b6ebd5c..9fe993134a 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-_0060_0060simple_002ddouble_002d_002d.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-_0060_0060simple_002ddouble_002d_002d.xhtml
@@ -858,6 +858,6 @@ g-roupe
 </div>
 
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.xhtml
 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.xhtml
index 432fd5c2f0..9c31391877 100644
--- 
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.xhtml
+++ 
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.xhtml
@@ -858,6 +858,6 @@ g-roupe
 </div>
 
 
-<a href='js_licenses.xhtml' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.xhtml" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git a/tp/tests/layout/res_parser/formatting_exotic/chapter.html 
b/tp/tests/layout/res_parser/formatting_exotic/chapter.html
index 20f113bdc4..2f6b9cbbb4 100644
--- a/tp/tests/layout/res_parser/formatting_exotic/chapter.html
+++ b/tp/tests/layout/res_parser/formatting_exotic/chapter.html
@@ -1860,10 +1860,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -2936,10 +2936,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4150,10 +4150,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html 
b/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html
index 29dacd61d0..5037664bff 100644
--- a/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html
@@ -1842,10 +1842,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2920,10 +2920,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4054,10 +4054,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -5130,10 +5130,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -6348,10 +6348,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/layout/res_parser/formatting_html/formatting.html 
b/tp/tests/layout/res_parser/formatting_html/formatting.html
index 097d3fc841..4b365363f1 100644
--- a/tp/tests/layout/res_parser/formatting_html/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_html/formatting.html
@@ -1842,10 +1842,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2920,10 +2920,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4054,10 +4054,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -5130,10 +5130,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -6348,10 +6348,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/layout/res_parser/formatting_html32/formatting.html 
b/tp/tests/layout/res_parser/formatting_html32/formatting.html
index 81feb6c708..a7d0d2a384 100644
--- a/tp/tests/layout/res_parser/formatting_html32/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_html32/formatting.html
@@ -1788,10 +1788,10 @@ html ''
 <code>@image{f--ile,l--i}</code> <img src="f--ile.png" alt="f--ile">
 <code>@image{f--ile,,l--e}</code> <img src="f--ile.png" alt="f--ile">
 <code>@image{f--ile,aze,az,alt,.e--xt}</code> <img src="f--ile.e--xt" 
alt="alt">
-<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img 
src="f--ile@..file ext e--xt}" alt="alt">
+<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img 
src="f--ile@..file%20ext%20e--xt%7d" alt="alt">
 </p>
 <p><code>@image{f--ile,aze,az,@verb{:jk _&#34; %@:} @b{in b 
&#34;},e--xt}</code> <img src="f--ile.e--xt" alt="jk _&#34; %@ in b &#34;">
-<code>@image{file@verb{:jk _&#34; %@:},,,alt@verb{:jk _&#34; %@:}}</code> <img 
src="filejk _&#34; %@.jpg" alt="altjk _&#34; %@">
+<code>@image{file@verb{:jk _&#34; %@:},,,alt@verb{:jk _&#34; %@:}}</code> <img 
src="filejk%20_%22%20%@.jpg" alt="altjk _&#34; %@">
 </p>
 
 <strong>author</strong><br>
@@ -2840,10 +2840,10 @@ html ''
 <code>@image{f--ile,l--i}</code> <img src="f--ile.png" alt="f--ile">
 <code>@image{f--ile,,l--e}</code> <img src="f--ile.png" alt="f--ile">
 <code>@image{f--ile,aze,az,alt,.e--xt}</code> <img src="f--ile.e--xt" 
alt="alt">
-<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img 
src="f--ile@..file ext e--xt}" alt="alt">
+<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img 
src="f--ile@..file%20ext%20e--xt%7d" alt="alt">
 </p>
 <p><code>@image{f--ile,aze,az,@verb{:jk _&#34; %@:} @b{in b 
&#34;},e--xt}</code> <img src="f--ile.e--xt" alt="jk _&#34; %@ in b &#34;">
-<code>@image{file@verb{:jk _&#34; %@:},,,alt@verb{:jk _&#34; %@:}}</code> <img 
src="filejk _&#34; %@.jpg" alt="altjk _&#34; %@">
+<code>@image{file@verb{:jk _&#34; %@:},,,alt@verb{:jk _&#34; %@:}}</code> <img 
src="filejk%20_%22%20%@.jpg" alt="altjk _&#34; %@">
 </p>
 
 
@@ -3948,10 +3948,10 @@ html ''
 <code>@image{f--ile,l--i}</code> <img src="f--ile.png" alt="f--ile">
 <code>@image{f--ile,,l--e}</code> <img src="f--ile.png" alt="f--ile">
 <code>@image{f--ile,aze,az,alt,.e--xt}</code> <img src="f--ile.e--xt" 
alt="alt">
-<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img 
src="f--ile@..file ext e--xt}" alt="alt">
+<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img 
src="f--ile@..file%20ext%20e--xt%7d" alt="alt">
 </p>
 <p><code>@image{f--ile,aze,az,@verb{:jk _&#34; %@:} @b{in b 
&#34;},e--xt}</code> <img src="f--ile.e--xt" alt="jk _&#34; %@ in b &#34;">
-<code>@image{file@verb{:jk _&#34; %@:},,,alt@verb{:jk _&#34; %@:}}</code> <img 
src="filejk _&#34; %@.jpg" alt="altjk _&#34; %@">
+<code>@image{file@verb{:jk _&#34; %@:},,,alt@verb{:jk _&#34; %@:}}</code> <img 
src="filejk%20_%22%20%@.jpg" alt="altjk _&#34; %@">
 </p>
 
 
@@ -4998,10 +4998,10 @@ html ''
 <code>@image{f--ile,l--i}</code> <img src="f--ile.png" alt="f--ile">
 <code>@image{f--ile,,l--e}</code> <img src="f--ile.png" alt="f--ile">
 <code>@image{f--ile,aze,az,alt,.e--xt}</code> <img src="f--ile.e--xt" 
alt="alt">
-<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img 
src="f--ile@..file ext e--xt}" alt="alt">
+<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img 
src="f--ile@..file%20ext%20e--xt%7d" alt="alt">
 </p>
 <p><code>@image{f--ile,aze,az,@verb{:jk _&#34; %@:} @b{in b 
&#34;},e--xt}</code> <img src="f--ile.e--xt" alt="jk _&#34; %@ in b &#34;">
-<code>@image{file@verb{:jk _&#34; %@:},,,alt@verb{:jk _&#34; %@:}}</code> <img 
src="filejk _&#34; %@.jpg" alt="altjk _&#34; %@">
+<code>@image{file@verb{:jk _&#34; %@:},,,alt@verb{:jk _&#34; %@:}}</code> <img 
src="filejk%20_%22%20%@.jpg" alt="altjk _&#34; %@">
 </p>
 
 
@@ -6189,10 +6189,10 @@ Invalid use of @':
 <code>@image{f--ile,l--i}</code> <img src="f--ile.png" alt="f--ile">
 <code>@image{f--ile,,l--e}</code> <img src="f--ile.png" alt="f--ile">
 <code>@image{f--ile,aze,az,alt,.e--xt}</code> <img src="f--ile.e--xt" 
alt="alt">
-<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img 
src="f--ile@..file ext e--xt}" alt="alt">
+<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img 
src="f--ile@..file%20ext%20e--xt%7d" alt="alt">
 
 <code>@image{f--ile,aze,az,@verb{:jk _&#34; %@:} @b{in b &#34;},e--xt}</code> 
<img src="f--ile.e--xt" alt="jk _&#34; %@ in b &#34;">
-<code>@image{file@verb{:jk _&#34; %@:},,,alt@verb{:jk _&#34; %@:}}</code> <img 
src="filejk _&#34; %@.jpg" alt="altjk _&#34; %@">
+<code>@image{file@verb{:jk _&#34; %@:},,,alt@verb{:jk _&#34; %@:}}</code> <img 
src="filejk%20_%22%20%@.jpg" alt="altjk _&#34; %@">
 
 
 
diff --git 
a/tp/tests/layout/res_parser/formatting_html_no_texi2html/formatting.html 
b/tp/tests/layout/res_parser/formatting_html_no_texi2html/formatting.html
index db8bfe3ecf..a1c89ed0d2 100644
--- a/tp/tests/layout/res_parser/formatting_html_no_texi2html/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_html_no_texi2html/formatting.html
@@ -1901,10 +1901,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -2977,10 +2977,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4195,10 +4195,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/layout/res_parser/formatting_html_nodes/chapter.html 
b/tp/tests/layout/res_parser/formatting_html_nodes/chapter.html
index 67df850fc7..9d0673e1bb 100644
--- a/tp/tests/layout/res_parser/formatting_html_nodes/chapter.html
+++ b/tp/tests/layout/res_parser/formatting_html_nodes/chapter.html
@@ -1863,10 +1863,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -2939,10 +2939,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4157,10 +4157,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/layout/res_parser/formatting_html_nodes/index.html 
b/tp/tests/layout/res_parser/formatting_html_nodes/index.html
index f77b5aa949..464e1220c5 100644
--- a/tp/tests/layout/res_parser/formatting_html_nodes/index.html
+++ b/tp/tests/layout/res_parser/formatting_html_nodes/index.html
@@ -1837,10 +1837,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2915,10 +2915,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
diff --git a/tp/tests/layout/res_parser/formatting_inline_css/formatting.html 
b/tp/tests/layout/res_parser/formatting_inline_css/formatting.html
index 18e21fb1f1..a4e0e5a208 100644
--- a/tp/tests/layout/res_parser/formatting_inline_css/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_inline_css/formatting.html
@@ -1814,10 +1814,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2892,10 +2892,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4026,10 +4026,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -5102,10 +5102,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -6320,10 +6320,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/layout/res_parser/formatting_mathjax/formatting.html 
b/tp/tests/layout/res_parser/formatting_mathjax/formatting.html
index d22faa1b07..585dfb4611 100644
--- a/tp/tests/layout/res_parser/formatting_mathjax/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_mathjax/formatting.html
@@ -1850,10 +1850,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2926,10 +2926,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4058,10 +4058,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -5132,10 +5132,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -6348,10 +6348,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
@@ -7963,6 +7963,6 @@ Menu comment
   <span class="program-in-footer">This document was generated on <em 
class="emph">a sunny day</em> using <a class="uref" 
href="http://www.gnu.org/software/texinfo/";><em 
class="emph">texi2any</em></a>.</span>
 </p>
 
-<a href='js_licenses.html' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.html" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>
diff --git a/tp/tests/layout/res_parser/formatting_nodes/chapter.html 
b/tp/tests/layout/res_parser/formatting_nodes/chapter.html
index 67df850fc7..9d0673e1bb 100644
--- a/tp/tests/layout/res_parser/formatting_nodes/chapter.html
+++ b/tp/tests/layout/res_parser/formatting_nodes/chapter.html
@@ -1863,10 +1863,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -2939,10 +2939,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4157,10 +4157,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/layout/res_parser/formatting_nodes/index.html 
b/tp/tests/layout/res_parser/formatting_nodes/index.html
index f77b5aa949..464e1220c5 100644
--- a/tp/tests/layout/res_parser/formatting_nodes/index.html
+++ b/tp/tests/layout/res_parser/formatting_nodes/index.html
@@ -1837,10 +1837,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2915,10 +2915,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
diff --git 
a/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html 
b/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html
index f6c7ffd3bc..8b468072a0 100644
--- a/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html
@@ -1842,10 +1842,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2920,10 +2920,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4054,10 +4054,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -5130,10 +5130,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -6348,10 +6348,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git 
a/tp/tests/layout/res_parser/formatting_regions/formatting_regions.html 
b/tp/tests/layout/res_parser/formatting_regions/formatting_regions.html
index 5812832ba2..c1f6dc2140 100644
--- a/tp/tests/layout/res_parser/formatting_regions/formatting_regions.html
+++ b/tp/tests/layout/res_parser/formatting_regions/formatting_regions.html
@@ -1842,10 +1842,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2919,10 +2919,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4029,10 +4029,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -5246,10 +5246,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
@@ -6335,10 +6335,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
diff --git a/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html 
b/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html
index a785165043..54062aff8a 100644
--- a/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html
@@ -1842,10 +1842,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 <strong class="author">author</strong><br>
@@ -2920,10 +2920,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4054,10 +4054,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -5130,10 +5130,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -6348,10 +6348,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/layout/res_parser/formatting_xhtml/formatting.html 
b/tp/tests/layout/res_parser/formatting_xhtml/formatting.html
index 9438d38974..7e7fd3c9dc 100644
--- a/tp/tests/layout/res_parser/formatting_xhtml/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_xhtml/formatting.html
@@ -1842,10 +1842,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile"/>
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile"/>
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt"/>
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@"/>
 </p>
 
 <strong class="author">author</strong><br/>
@@ -2920,10 +2920,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile"/>
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile"/>
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt"/>
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@"/>
 </p>
 
 
@@ -4054,10 +4054,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile"/>
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile"/>
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt"/>
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@"/>
 </p>
 
 
@@ -5130,10 +5130,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile"/>
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile"/>
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt"/>
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@"/>
 </p>
 
 
@@ -6348,10 +6348,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile"/>
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile"/>
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt"/>
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@"/>
 
 
 
diff --git a/tp/tests/tex_html/res_parser/formatting_singular/chapter.html 
b/tp/tests/tex_html/res_parser/formatting_singular/chapter.html
index b2ac0363bb..228c9be6a4 100644
--- a/tp/tests/tex_html/res_parser/formatting_singular/chapter.html
+++ b/tp/tests/tex_html/res_parser/formatting_singular/chapter.html
@@ -1989,10 +1989,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -3202,10 +3202,10 @@ html ''
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 </p>
 <p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 </p>
 
 
@@ -4557,10 +4557,10 @@ Invalid use of @':
 <code class="code">@image{f--ile,l--i}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,,l--e}</code> <img class="image" 
src="f--ile.png" alt="f--ile">
 <code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" 
src="f--ile.e--xt" alt="alt">
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file ext e--xt}" alt="alt">
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} 
e--xt@}</code> <img class="image" src="f--ile@..file%20ext%20e--xt%7d" 
alt="alt">
 
 <code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b 
&quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ 
in b &quot;">
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk _&quot; %@.jpg" alt="altjk _&quot; 
%@">
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; 
%@:}}</code> <img class="image" src="filejk%20_%22%20%@.jpg" alt="altjk _&quot; 
%@">
 
 
 
diff --git a/tp/tests/tex_html/res_parser/tex_gdef_mathjax/tex_gdef.html 
b/tp/tests/tex_html/res_parser/tex_gdef_mathjax/tex_gdef.html
index 9c75996a8b..bd24b25279 100644
--- a/tp/tests/tex_html/res_parser/tex_gdef_mathjax/tex_gdef.html
+++ b/tp/tests/tex_html/res_parser/tex_gdef_mathjax/tex_gdef.html
@@ -51,6 +51,6 @@ MathJax = {
   <span class="program-in-footer">This document was generated on <em 
class="emph">a sunny day</em> using <a class="uref" 
href="http://www.gnu.org/software/texinfo/";><em 
class="emph">texi2any</em></a>.</span>
 </p>
 
-<a href='js_licenses.html' rel='jslicense'><small>JavaScript license 
information</small></a>
+<a href="js_licenses.html" rel="jslicense"><small>JavaScript license 
information</small></a>
 </body>
 </html>



reply via email to

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