[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch master updated: * tp/Texinfo/Config.pm (texinfo_register_file_id_
From: |
Patrice Dumas |
Subject: |
branch master updated: * tp/Texinfo/Config.pm (texinfo_register_file_id_setting_function) (GNUT_get_file_id_setting_references), tp/Texinfo/Convert/HTML.pm (converter_initialize) (_normalized_label_id_file, _new_sectioning_command_target) (_set_root_commands_targets_node_files, _html_set_pages_files) (_prepare_special_elements), tp/init/book.pm: set customized functions used to set file names and targets through texinfo_register_file_id_setting_function() in Texinfo::Config. Use them in HTML.pm. |
Date: |
Sun, 23 Jan 2022 10:48:23 -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 84080c2c03 * tp/Texinfo/Config.pm
(texinfo_register_file_id_setting_function)
(GNUT_get_file_id_setting_references), tp/Texinfo/Convert/HTML.pm
(converter_initialize) (_normalized_label_id_file,
_new_sectioning_command_target) (_set_root_commands_targets_node_files,
_html_set_pages_files) (_prepare_special_elements), tp/init/book.pm: set
customized functions used to set file names and targets through
texinfo_register_file_id_setting_function() in Texinfo::Config. Use them in
HTML.pm.
84080c2c03 is described below
commit 84080c2c039bcc06e870e885684cf4cf19786af7
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sun Jan 23 16:48:09 2022 +0100
* tp/Texinfo/Config.pm (texinfo_register_file_id_setting_function)
(GNUT_get_file_id_setting_references),
tp/Texinfo/Convert/HTML.pm (converter_initialize)
(_normalized_label_id_file, _new_sectioning_command_target)
(_set_root_commands_targets_node_files, _html_set_pages_files)
(_prepare_special_elements), tp/init/book.pm: set customized
functions used to set file names and targets through
texinfo_register_file_id_setting_function() in Texinfo::Config.
Use them in HTML.pm.
---
ChangeLog | 12 ++++++++
tp/TODO | 6 ----
tp/Texinfo/Config.pm | 15 ++++++++++
tp/Texinfo/Convert/HTML.pm | 58 +++++++++++++++++++++++++++-----------
tp/init/book.pm | 3 +-
tp/t/init/misc_file_collision.init | 5 ++--
tp/t/init/only_toc_out.init | 5 ++--
tp/t/init/t2h_singular.init | 2 +-
8 files changed, 75 insertions(+), 31 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b0f65b2979..3e1876992a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2022-01-23 Patrice Dumas <pertusus@free.fr>
+
+ * tp/Texinfo/Config.pm (texinfo_register_file_id_setting_function)
+ (GNUT_get_file_id_setting_references),
+ tp/Texinfo/Convert/HTML.pm (converter_initialize)
+ (_normalized_label_id_file, _new_sectioning_command_target)
+ (_set_root_commands_targets_node_files, _html_set_pages_files)
+ (_prepare_special_elements), tp/init/book.pm: set customized
+ functions used to set file names and targets through
+ texinfo_register_file_id_setting_function() in Texinfo::Config.
+ Use them in HTML.pm.
+
2022-01-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Config.pm (texinfo_register_type_format_info)
diff --git a/tp/TODO b/tp/TODO
index 2f82397397..cab87c9aee 100644
--- a/tp/TODO
+++ b/tp/TODO
@@ -23,12 +23,6 @@ HTML API
Issues
------
-node_target_name
-node_file_name
-sectioning_command_target_name
-element_file_name
-special_element_target_file_name
-
Some internal state used in conversion:
_convert_anchor_command:
$self->{'multiple_pass'}
diff --git a/tp/Texinfo/Config.pm b/tp/Texinfo/Config.pm
index 49cf8882b9..18a0520928 100644
--- a/tp/Texinfo/Config.pm
+++ b/tp/Texinfo/Config.pm
@@ -298,6 +298,7 @@ sub GNUT_get_stage_handlers()
#####################################################################
# API used to override formatting. Used in HTML only.
+my $GNUT_file_id_setting_references = {};
my $GNUT_formatting_references = {};
my $GNUT_commands_conversion = {};
my $GNUT_commands_open = {};
@@ -307,6 +308,20 @@ my $GNUT_no_arg_commands_formatting_strings = {};
my $GNUT_style_commands_formatting_info = {};
my $GNUT_types_formatting_info = {};
+# called from init files
+sub texinfo_register_file_id_setting_function($$)
+{
+ my $thing = shift;
+ my $handler = shift;
+ $GNUT_file_id_setting_references->{$thing} = $handler;
+}
+
+# called from the Converter
+sub GNUT_get_file_id_setting_references()
+{
+ return $GNUT_file_id_setting_references;
+}
+
# called from init files
sub texinfo_register_formatting_function($$)
{
diff --git a/tp/Texinfo/Convert/HTML.pm b/tp/Texinfo/Convert/HTML.pm
index 267f627651..145f03ef4c 100644
--- a/tp/Texinfo/Convert/HTML.pm
+++ b/tp/Texinfo/Convert/HTML.pm
@@ -6079,6 +6079,14 @@ sub _pop_document_context($)
}
}
+# can be set through Texinfo::Config::texinfo_register_file_id_setting_function
+my %customizable_file_id_setting_references;
+foreach my $customized_reference ('label_target_name', 'node_file_name',
+ 'sectioning_command_target_name', 'tree_unit_file_name',
+ 'special_element_target_file_name') {
+ $customizable_file_id_setting_references{$customized_reference} = 1;
+}
+
# Functions accessed with e.g. 'format_heading_text'.
# used in Texinfo::Config
%default_formatting_references = (
@@ -6356,6 +6364,7 @@ sub _load_htmlxref_files {
# FIXME: always point to default?)
#
# API exists
+# file_id_setting
# commands_conversion
# commands_open
# types_conversion
@@ -6656,6 +6665,21 @@ sub converter_initialize($)
}
}
+ my $customized_file_id_setting_references
+ = Texinfo::Config::GNUT_get_file_id_setting_references();
+ # first check the validity of the names
+ foreach my $customized_file_id_setting_ref
+ (sort(keys(%{$customized_file_id_setting_references}))) {
+ if
(!$customizable_file_id_setting_references{$customized_file_id_setting_ref}) {
+ $self->document_warn($self,
+ sprintf(__("Unknown file and id setting function:
%s"),
+ $customized_file_id_setting_ref));
+ } else {
+ $self->{'file_id_setting'}->{$customized_file_id_setting_ref}
+ =
$customized_file_id_setting_references->{$customized_file_id_setting_ref};
+ }
+ }
+
my $customized_formatting_references =
Texinfo::Config::GNUT_get_formatting_references();
# first check that all the customized_formatting_references
# are in default_formatting_references
@@ -6919,9 +6943,9 @@ sub _normalized_label_id_file($$)
$target = '';
}
# to find out the Top node, one could check $label_info->{'normalized'}
- # FIXME change name? It is not only for nodes
- if (defined($Texinfo::Config::node_target_name)) {
- $target = &$Texinfo::Config::node_target_name($label_info, $target);
+ if (defined($self->{'file_id_setting'}->{'label_target_name'})) {
+ $target = &{$self->{'file_id_setting'}->{'label_target_name'}}(
+ $label_info, $target);
}
my $filename = $self->node_information_filename($label_info);
@@ -6983,10 +7007,10 @@ sub _new_sectioning_command_target($$)
}
}
- if (defined($Texinfo::Config::sectioning_command_target_name)) {
+ if (defined($self->{'file_id_setting'}->{'sectioning_command_target_name'}))
{
($target, $target_contents,
$target_shortcontents, $filename)
- = &$Texinfo::Config::sectioning_command_target_name($self,
+ =
&{$self->{'file_id_setting'}->{'sectioning_command_target_name'}}($self,
$command, $target,
$target_contents,
$target_shortcontents,
@@ -7042,9 +7066,9 @@ sub _set_root_commands_targets_node_files($$)
my ($filename, $target)
= $self->_normalized_label_id_file($label_element->{'extra'});
$filename .= $extension;
- if (defined($Texinfo::Config::node_file_name)) {
- $filename = &$Texinfo::Config::node_file_name($self, $label_element,
- $filename);
+ if (defined($self->{'file_id_setting'}->{'node_file_name'})) {
+ $filename = &{$self->{'file_id_setting'}->{'node_file_name'}}(
+ $self, $label_element,
$filename);
}
if ($self->get_conf('DEBUG')) {
print STDERR "Label($label_element) \@$label_element->{'cmdname'}
$target, $filename\n";
@@ -7254,11 +7278,11 @@ sub _html_set_pages_files($$$$$$$$)
}
foreach my $tree_unit (@$tree_units) {
- if (defined($Texinfo::Config::element_file_name)) {
+ if (defined($self->{'file_id_setting'}->{'tree_unit_file_name'})) {
# NOTE the information that it is associated with @top or @node Top
# may be determined with $self->element_is_tree_unit_top($tree_unit);
- my $filename = &$Texinfo::Config::element_file_name($self, $tree_unit,
-
$tree_unit->{'structure'}->{'unit_filename'});
+ my $filename = &{$self->{'file_id_setting'}->{'tree_unit_file_name'}}(
+ $self, $tree_unit,
$tree_unit->{'structure'}->{'unit_filename'});
$self->set_tree_unit_file($tree_unit, $filename, $destination_directory)
if (defined($filename));
}
@@ -7405,9 +7429,9 @@ sub _prepare_special_elements($$$$)
}
my $filename;
- if (defined($Texinfo::Config::special_element_target_file_name)) {
+ if
(defined($self->{'file_id_setting'}->{'special_element_target_file_name'})) {
($target, $filename)
- = &$Texinfo::Config::special_element_target_file_name(
+ = &{$self->{'file_id_setting'}->{'special_element_target_file_name'}}(
$self,
$element,
$target,
@@ -7445,9 +7469,9 @@ sub _prepare_special_elements($$$$)
# only the filename is used
my ($target, $filename);
- if (defined($Texinfo::Config::special_element_target_file_name)) {
+ if
(defined($self->{'file_id_setting'}->{'special_element_target_file_name'})) {
($target, $filename)
- = &$Texinfo::Config::special_element_target_file_name(
+ =
&{$self->{'file_id_setting'}->{'special_element_target_file_name'}}(
$self,
$element,
$target,
@@ -7509,9 +7533,9 @@ sub _prepare_contents_elements($)
= $contents_element;
my $target = $self->{'special_elements_targets'}->{$element_type};
my $filename;
- if (defined($Texinfo::Config::special_element_target_file_name)) {
+ if
(defined($self->{'file_id_setting'}->{'special_element_target_file_name'})) {
($target, $filename)
- = &$Texinfo::Config::special_element_target_file_name(
+ =
&{$self->{'file_id_setting'}->{'special_element_target_file_name'}}(
$self,
$contents_element,
$target,
diff --git a/tp/init/book.pm b/tp/init/book.pm
index 595c7f6284..d6adf59422 100644
--- a/tp/init/book.pm
+++ b/tp/init/book.pm
@@ -382,6 +382,7 @@ sub book_element_file_name($$$)
return $new_file_name;
}
-$element_file_name = \&book_element_file_name;
+texinfo_register_file_id_setting_function('tree_unit_file_name',
+ \&book_element_file_name);
1;
diff --git a/tp/t/init/misc_file_collision.init
b/tp/t/init/misc_file_collision.init
index 12e1af6520..45efa97a31 100644
--- a/tp/t/init/misc_file_collision.init
+++ b/tp/t/init/misc_file_collision.init
@@ -1,8 +1,7 @@
use strict;
-use vars qw($element_file_name);
-
-$element_file_name = \&test_misc_file_name;
+texinfo_register_file_id_setting_function('tree_unit_file_name',
+ \&test_misc_file_name);
sub test_misc_file_name($$$)
{
diff --git a/tp/t/init/only_toc_out.init b/tp/t/init/only_toc_out.init
index 88cf74a17b..84616f8226 100644
--- a/tp/t/init/only_toc_out.init
+++ b/tp/t/init/only_toc_out.init
@@ -1,8 +1,7 @@
use strict;
-use vars qw($special_element_target_file_name);
-
-$special_element_target_file_name = \&toc_out_element_file_name;
+texinfo_register_file_id_setting_function('special_element_target_file_name',
+ \&toc_out_element_file_name);
sub toc_out_element_file_name($$$$$)
{
diff --git a/tp/t/init/t2h_singular.init b/tp/t/init/t2h_singular.init
index d062cfb0f2..a2015e27cf 100644
--- a/tp/t/init/t2h_singular.init
+++ b/tp/t/init/t2h_singular.init
@@ -312,6 +312,6 @@ sub t2h_node_file_name($$$)
return $filename;
}
-$node_file_name = \&t2h_node_file_name;
+texinfo_register_file_id_setting_function('node_file_name',
\&t2h_node_file_name);
1; # This must be the last line
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: * tp/Texinfo/Config.pm (texinfo_register_file_id_setting_function) (GNUT_get_file_id_setting_references), tp/Texinfo/Convert/HTML.pm (converter_initialize) (_normalized_label_id_file, _new_sectioning_command_target) (_set_root_commands_targets_node_files, _html_set_pages_files) (_prepare_special_elements), tp/init/book.pm: set customized functions used to set file names and targets through texinfo_register_file_id_setting_function() in Texinfo::Config. Use them in HTML.pm.,
Patrice Dumas <=