[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [help-texinfo] Section numbers in filenames
From: |
Gavin Smith |
Subject: |
Re: [help-texinfo] Section numbers in filenames |
Date: |
Sat, 2 Mar 2019 20:31:16 +0000 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Tue, Feb 19, 2019 at 07:09:32AM -0800, Mike Gran wrote:
> I had a need to make some plain text documentation where the
> output is split up into multiple files, and I was pleased to find
> that the --split options works for plain text texinfo output. So
> texinfo would be great, except that is isn't obvious how order the
> output files, since the filenames are the section names.
Hi Mike, I hadn't known that this was a feature, but it does work. I am
not that familiar with the code, but I found that running,
./texi2any.pl --plaintext --split=node ../doc/info-stnd.texi -o test
would use the code in tp/Texinfo/Convert/Converter.pm. Here is a quick
and dirty change that puts numbers in the file names:
diff --git a/tp/Texinfo/Convert/Converter.pm b/tp/Texinfo/Convert/Converter.pm
index 53a925e..da48fb3 100644
--- a/tp/Texinfo/Convert/Converter.pm
+++ b/tp/Texinfo/Convert/Converter.pm
@@ -565,11 +565,12 @@ sub _node_filename($$)
return $filename;
}
-sub _set_element_file($$$)
+sub _set_element_file($$$$)
{
my $self = shift;
my $element = shift;
my $filename = shift;
+ my $file_nr = shift;
if (!defined($filename)) {
cluck("_set_element_file: filename not defined\n");
@@ -589,7 +590,8 @@ sub _set_element_file($$$)
if (defined($self->{'destination_directory'})
and $self->{'destination_directory'} ne '') {
$element->{'out_filename'} =
- File::Spec->catfile($self->{'destination_directory'}, $filename);
+ File::Spec->catfile($self->{'destination_directory'},
+ sprintf("%04d", $file_nr) . ' ' . $filename);
} else {
$element->{'out_filename'} = $filename;
}
@@ -675,11 +677,12 @@ sub _set_pages_files($$)
my $top_node_filename = $self->_top_node_filename();
# first determine the top node file name.
+ my $num = 1;
if ($self->get_conf('NODE_FILENAMES') and $node_top
and defined($top_node_filename)) {
my ($node_top_element) = $self->_get_element($node_top);
die "BUG: No element for top node" if (!defined($node_top));
- $self->_set_element_file($node_top_element, $top_node_filename);
+ $self->_set_element_file($node_top_element, $top_node_filename, $num++);
}
my $file_nr = 0;
my $previous_page;
@@ -706,7 +709,7 @@ sub _set_pages_files($$)
$node_filename .= '.'.$self->get_conf('NODE_FILE_EXTENSION')
if (defined($self->get_conf('NODE_FILE_EXTENSION'))
and $self->get_conf('NODE_FILE_EXTENSION') ne '');
- $self->_set_element_file($file_element, $node_filename);
+ $self->_set_element_file($file_element, $node_filename, $num++);
last;
}
}
@@ -716,21 +719,21 @@ sub _set_pages_files($$)
if ($command) {
if ($command->{'cmdname'} eq 'top' and !$node_top
and defined($top_node_filename)) {
- $self->_set_element_file($file_element, $top_node_filename);
+ $self->_set_element_file($file_element, $top_node_filename,
$num++);
} else {
my ($normalized_name, $filename)
= $self->_sectioning_command_normalized_filename($command);
- $self->_set_element_file($file_element, $filename)
+ $self->_set_element_file($file_element, $filename, $num++)
}
} else {
# when everything else has failed
if ($file_nr == 0 and !$node_top
and defined($top_node_filename)) {
- $self->_set_element_file($file_element, $top_node_filename);
+ $self->_set_element_file($file_element, $top_node_filename,
$file_nr);
} else {
my $filename = $self->{'document_name'} . "_$file_nr";
$filename .= $extension;
- $self->_set_element_file($element, $filename);
+ $self->_set_element_file($element, $filename, $num++);
}
$file_nr++;
}
@@ -740,7 +743,7 @@ sub _set_pages_files($$)
$filename .= '.'.$self->get_conf('EXTENSION')
if (defined($self->get_conf('EXTENSION'))
and $self->get_conf('EXTENSION') ne '');
- $self->_set_element_file($file_element, $filename);
+ $self->_set_element_file($file_element, $filename, $num++);
$file_nr++;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [help-texinfo] Section numbers in filenames,
Gavin Smith <=