texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: * tp/Texinfo/Convert/HTML.pm (nodes_tree): use fi


From: Patrice Dumas
Subject: branch master updated: * tp/Texinfo/Convert/HTML.pm (nodes_tree): use first non Top node for Top node next if there is no menu information.
Date: Sun, 21 Feb 2021 07:43:13 -0500

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

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 76f560c  * tp/Texinfo/Convert/HTML.pm (nodes_tree): use first non Top 
node for Top node next if there is no menu information.
76f560c is described below

commit 76f560cd234366d025234c715ec63d4957e3be89
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sun Feb 21 13:43:00 2021 +0100

    * tp/Texinfo/Convert/HTML.pm (nodes_tree): use first non Top node
    for Top node next if there is no menu information.
---
 ChangeLog                                          |  5 ++
 tp/Texinfo/Structuring.pm                          | 17 ++++--
 .../sectioning/character_and_spaces_in_node.pl     | 56 +++++++++++++++++--
 tp/t/results/sectioning/no_menu.pl                 | 65 ++++++++++++++++++++--
 4 files changed, 127 insertions(+), 16 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 80ec4fe..d118fd2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2021-02-21  Patrice Dumas  <pertusus@free.fr>
 
+       * tp/Texinfo/Convert/HTML.pm (nodes_tree): use first non Top node
+       for Top node next if there is no menu information.
+
+2021-02-21  Patrice Dumas  <pertusus@free.fr>
+
        use first section in file direction for footer if split at section or
        chapter
 
diff --git a/tp/Texinfo/Structuring.pm b/tp/Texinfo/Structuring.pm
index 4798431..eba90da 100644
--- a/tp/Texinfo/Structuring.pm
+++ b/tp/Texinfo/Structuring.pm
@@ -463,9 +463,6 @@ sub nodes_tree($)
   # differently; at least, there are no error messages for them.
   #
   foreach my $node (@{$self->{'nodes'}}) {
-    if ($node->{'extra'}->{'normalized'} eq 'Top') {
-      $top_node = $node;
-    }
     if ($node->{'menus'}) {
       if (@{$node->{'menus'}} > 1) {
         foreach my $menu (@{$node->{'menus'}}[1 .. $#{$node->{'menus'}}]) {
@@ -535,8 +532,10 @@ sub nodes_tree($)
   }
 
   # Go through all the nodes and set directions.
-  $top_node = $self->{'nodes'}->[0] if (!$top_node);
   foreach my $node (@{$self->{'nodes'}}) {
+    if ($node->{'extra'}->{'normalized'} eq 'Top') {
+      $top_node = $node;
+    }
     my $automatic_directions = 
       (scalar(@{$node->{'extra'}->{'nodes_manuals'}}) == 1);
 
@@ -617,6 +616,13 @@ sub nodes_tree($)
           if (!$node->{'menu_child'}->{'extra'}->{'manual_content'}) {
             $node->{'menu_child'}->{'node_prev'} = $node;
           }
+        } else {
+          foreach my $first_non_top_node (@{$self->{'nodes'}}) {
+            if ($first_non_top_node ne $node) {
+              $node->{'node_next'} = $first_non_top_node;
+              last;
+            }
+          }
         }
       }
     } else { # explicit directions
@@ -709,10 +715,11 @@ sub nodes_tree($)
       # FIXME check that node_up is not an external node (except for Top)?
     }
   }
+  $top_node = $self->{'nodes'}->[0] if (!$top_node);
+  $self->{'structuring'}->{'top_node'} = $top_node;
   if ($self->get_conf('FORMAT_MENU') ne 'sectiontoc') {
     _check_referenced_nodes($self, $top_node);
   }
-  $self->{'structuring'}->{'top_node'} = $top_node;
   return $top_node;
 }
 
diff --git a/tp/t/results/sectioning/character_and_spaces_in_node.pl 
b/tp/t/results/sectioning/character_and_spaces_in_node.pl
index 27579ff..a4ffb1a 100644
--- a/tp/t/results/sectioning/character_and_spaces_in_node.pl
+++ b/tp/t/results/sectioning/character_and_spaces_in_node.pl
@@ -505,8 +505,52 @@ $result_nodes{'character_and_spaces_in_node'} = {
   'extra' => {
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
+  },
+  'node_next' => {
+    'cmdname' => 'node',
+    'extra' => {
+      'normalized' => 'other-nodes',
+      'spaces_before_argument' => ' '
+    },
+    'node_next' => {
+      'cmdname' => 'node',
+      'extra' => {
+        'normalized' => 
'_0021_005f_0022_0023_0024_0025_0026_0027_0028_0029_002a_002b_002d_002e',
+        'spaces_before_argument' => ' '
+      },
+      'node_next' => {
+        'cmdname' => 'node',
+        'extra' => {
+          'normalized' => 
'_002f_003b_003c_003d_003e_003f_005b_005c_005d_005e_005f_0060_007c_007e',
+          'spaces_before_argument' => ' '
+        },
+        'node_next' => {
+          'cmdname' => 'node',
+          'extra' => {
+            'normalized' => 'local-node',
+            'spaces_before_argument' => '  '
+          },
+          'node_prev' => {},
+          'node_up' => {}
+        },
+        'node_prev' => {},
+        'node_up' => {}
+      },
+      'node_prev' => {},
+      'node_up' => {}
+    },
+    'node_prev' => {},
+    'node_up' => {}
   }
 };
+$result_nodes{'character_and_spaces_in_node'}{'node_next'}{'node_next'}{'node_next'}{'node_next'}{'node_prev'}
 = 
$result_nodes{'character_and_spaces_in_node'}{'node_next'}{'node_next'}{'node_next'};
+$result_nodes{'character_and_spaces_in_node'}{'node_next'}{'node_next'}{'node_next'}{'node_next'}{'node_up'}
 = $result_nodes{'character_and_spaces_in_node'}{'node_next'};
+$result_nodes{'character_and_spaces_in_node'}{'node_next'}{'node_next'}{'node_next'}{'node_prev'}
 = $result_nodes{'character_and_spaces_in_node'}{'node_next'}{'node_next'};
+$result_nodes{'character_and_spaces_in_node'}{'node_next'}{'node_next'}{'node_next'}{'node_up'}
 = $result_nodes{'character_and_spaces_in_node'}{'node_next'};
+$result_nodes{'character_and_spaces_in_node'}{'node_next'}{'node_next'}{'node_prev'}
 = $result_nodes{'character_and_spaces_in_node'}{'node_next'};
+$result_nodes{'character_and_spaces_in_node'}{'node_next'}{'node_next'}{'node_up'}
 = $result_nodes{'character_and_spaces_in_node'}{'node_next'};
+$result_nodes{'character_and_spaces_in_node'}{'node_next'}{'node_prev'} = 
$result_nodes{'character_and_spaces_in_node'};
+$result_nodes{'character_and_spaces_in_node'}{'node_next'}{'node_up'} = 
$result_nodes{'character_and_spaces_in_node'};
 
 $result_menus{'character_and_spaces_in_node'} = {
   'cmdname' => 'node',
@@ -526,7 +570,7 @@ $result_floats{'character_and_spaces_in_node'} = {};
 $result_converted{'info'}->{'character_and_spaces_in_node'} = 'This is , 
produced from .
 
 
-File: ,  Node: Top,  Up: (dir)
+File: ,  Node: Top,  Next: other nodes,  Up: (dir)
 
 
 File: ,  Node: other nodes,  Next: !_"#$%&\'()*+-.,  Prev: Top,  Up: Top
@@ -544,10 +588,10 @@ File: ,  Node: local node,  Prev: /;<=>?[\\]^_`|~,  Up: 
other nodes
 
 Tag Table:
 Node: Top27
-Node: other nodes61
-Node: !_"#$%&\'()*+-.136
-Node: /;<=>?[\\]^_`|~230
-Node: local node323
+Node: other nodes81
+Node: !_"#$%&\'()*+-.156
+Node: /;<=>?[\\]^_`|~250
+Node: local node343
 
 End Tag Table
 
@@ -599,7 +643,7 @@ ul.no-bullet {list-style: none}
 
 <span id="Top"></span><div class="header">
 <p>
- &nbsp; </p>
+Next: <a href="#other-nodes" accesskey="n" rel="next">other nodes</a> &nbsp; 
</p>
 </div>
 <h1 class="node-heading">Top</h1>
 <hr>
diff --git a/tp/t/results/sectioning/no_menu.pl 
b/tp/t/results/sectioning/no_menu.pl
index 125a905..34baebd 100644
--- a/tp/t/results/sectioning/no_menu.pl
+++ b/tp/t/results/sectioning/no_menu.pl
@@ -477,8 +477,63 @@ $result_nodes{'no_menu'} = {
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
+  },
+  'node_next' => {
+    'cmdname' => 'node',
+    'extra' => {
+      'associated_section' => {
+        'cmdname' => 'chapter',
+        'extra' => {
+          'spaces_before_argument' => ' '
+        },
+        'level' => 1,
+        'number' => 1
+      },
+      'normalized' => 'c1',
+      'spaces_before_argument' => ' '
+    },
+    'node_next' => {
+      'cmdname' => 'node',
+      'extra' => {
+        'associated_section' => {
+          'cmdname' => 'chapter',
+          'extra' => {
+            'spaces_before_argument' => ' '
+          },
+          'level' => 1,
+          'number' => 2
+        },
+        'normalized' => 'c2',
+        'spaces_before_argument' => ' '
+      },
+      'node_next' => {
+        'cmdname' => 'node',
+        'extra' => {
+          'associated_section' => {
+            'cmdname' => 'chapter',
+            'extra' => {
+              'spaces_before_argument' => ' '
+            },
+            'level' => 1,
+            'number' => 3
+          },
+          'normalized' => 'c3',
+          'spaces_before_argument' => ' '
+        },
+        'node_prev' => {},
+        'node_up' => {}
+      },
+      'node_prev' => {},
+      'node_up' => {}
+    },
+    'node_up' => {}
   }
 };
+$result_nodes{'no_menu'}{'node_next'}{'node_next'}{'node_next'}{'node_prev'} = 
$result_nodes{'no_menu'}{'node_next'}{'node_next'};
+$result_nodes{'no_menu'}{'node_next'}{'node_next'}{'node_next'}{'node_up'} = 
$result_nodes{'no_menu'};
+$result_nodes{'no_menu'}{'node_next'}{'node_next'}{'node_prev'} = 
$result_nodes{'no_menu'}{'node_next'};
+$result_nodes{'no_menu'}{'node_next'}{'node_next'}{'node_up'} = 
$result_nodes{'no_menu'};
+$result_nodes{'no_menu'}{'node_next'}{'node_up'} = $result_nodes{'no_menu'};
 
 $result_menus{'no_menu'} = {
   'cmdname' => 'node',
@@ -498,7 +553,7 @@ $result_floats{'no_menu'} = {};
 $result_converted{'info'}->{'no_menu'} = 'This is , produced from .
 
 
-File: ,  Node: Top,  Up: (dir)
+File: ,  Node: Top,  Next: c1,  Up: (dir)
 
 * Menu:
 
@@ -528,9 +583,9 @@ File: ,  Node: c3,  Prev: c2,  Up: Top
 
 Tag Table:
 Node: Top27
-Node: c192
-Node: c2145
-Node: c3209
+Node: c1103
+Node: c2156
+Node: c3220
 
 End Tag Table
 
@@ -582,7 +637,7 @@ ul.no-bullet {list-style: none}
 <div class="top" id="Top">
 <div class="header">
 <p>
- &nbsp; </p>
+Next: <a href="#c1" accesskey="n" rel="next">c1</a> &nbsp; </p>
 </div>
 <span id="SEC_Top"></span>
 <ul class="section-toc">



reply via email to

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