Texinfo::Convert::NodeNameNormalization - Normalize and transliterate Texinfo trees
use Texinfo::Convert::NodeNameNormalization qw(convert_to_identifier normalize_transliterate_texinfo); my $normalized = convert_to_identifier($node_element->{'args'}->[0]); my $file_name = normalize_transliterate_texinfo($section_element->{'args'}->[0]);
The Texinfo Perl module main purpose is to be used in texi2any
to convert
Texinfo to other formats. There is no promise of API stability.
Texinfo::Convert::NodeNameNormalization
allows to normalize node names
with convert_to_normalized
and convert_to_identifier
.
convert_to_identifier
follows the specification described in the Texinfo
manual HTML Xref node. This is useful whenever one want a unique identifier
for Texinfo content, which is only composed of letter, digits, -
and _
,
for example for @node
, @float
and @anchor
names normalization.
convert_to_normalized
leaves out the step of protecting characters.
It is also possible to transliterate non-ASCII letters, instead of mangling
them, with normalize_transliterate_texinfo
, losing the uniqueness feature of
normalized node names.
Another method, transliterate_protect_file_name
transliterates non-ASCII
letters and protect characters that should not appear on file names.
The Texinfo $tree is returned as a string, with @-commands and spaces normalized as described in the Texinfo manual HTML Xref node. ASCII 7-bit characters other than spaces and non-ASCII characters are left as is in the resulting string.
The Texinfo $tree is returned as a string, normalized as described in the Texinfo manual HTML Xref node.
The result will be poor for Texinfo trees which are not @-command arguments
(on an @-command line or in braces), for instance if the tree contains
@node
or block commands.
The Texinfo $tree is returned as a string, with non-ASCII letters
transliterated as ASCII, but otherwise similar with convert_to_identifier
output. If the optional $no_unidecode argument is set, Text::Unidecode
is not used for characters whose transliteration is not built-in.
The Texinfo $tree is returned as a string, with non-ASCII letters
transliterated as ASCII. If the optional $no_unidecode argument is set,
Text::Unidecode
is not used for characters whose transliteration is not
built-in.
The string $string is returned with non-ASCII letters transliterated as
ASCII, and ASCII characters not safe in file names protected as in
node normalization. If the optional $no_unidecode argument is set,
Text::Unidecode
is not used for characters whose transliteration is not
built-in.
Copyright 2010- Free Software Foundation, Inc. See the source file for all copyright years.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.