[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Overstrike.pm
File is not writable. Editing disabled.
# Pod::Text::Overstrike -- Convert POD data to formatted overstrike text # # This was written because the output from: # # pod2text Text.pm > plain.txt; less plain.txt # # is not as rich as the output from # # pod2man Text.pm | nroff -man > fancy.txt; less fancy.txt # # and because both Pod::Text::Color and Pod::Text::Termcap are not device # independent. # # Created by Joe Smith <Joe.Smith@inwap.com> 30-Nov-2000 # (based on Pod::Text::Color by Russ Allbery <rra@stanford.edu>) # Copyright 2000 Joe Smith <Joe.Smith@inwap.com>. # Copyright 2001, 2004, 2008 Russ Allbery <rra@stanford.edu>. # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. ############################################################################## # Modules and declarations ############################################################################## package Pod::Text::Overstrike; require 5.004; use Pod::Text (); use strict; use vars qw(@ISA $VERSION); @ISA = qw(Pod::Text); $VERSION = '2.05'; ############################################################################## # Overrides ############################################################################## # Make level one headings bold, overridding any existing formatting. sub cmd_head1 { my ($self, $attrs, $text) = @_; $text =~ s/\s+$//; $text = $self->strip_format ($text); $text =~ s/(.)/$1\b$1/g; return $self->SUPER::cmd_head1 ($attrs, $text); } # Make level two headings bold, overriding any existing formatting. sub cmd_head2 { my ($self, $attrs, $text) = @_; $text =~ s/\s+$//; $text = $self->strip_format ($text); $text =~ s/(.)/$1\b$1/g; return $self->SUPER::cmd_head2 ($attrs, $text); } # Make level three headings underscored, overriding any existing formatting. sub cmd_head3 { my ($self, $attrs, $text) = @_; $text =~ s/\s+$//; $text = $self->strip_format ($text); $text =~ s/(.)/_\b$1/g; return $self->SUPER::cmd_head3 ($attrs, $text); } # Level four headings look like level three headings. sub cmd_head4 { my ($self, $attrs, $text) = @_; $text =~ s/\s+$//; $text = $self->strip_format ($text); $text =~ s/(.)/_\b$1/g; return $self->SUPER::cmd_head4 ($attrs, $text); } # The common code for handling all headers. We have to override to avoid # interpolating twice and because we don't want to honor alt. sub heading { my ($self, $text, $indent, $marker) = @_; $self->item ("\n\n") if defined $$self{ITEM}; $text .= "\n" if $$self{opt_loose}; my $margin = ' ' x ($$self{opt_margin} + $indent); $self->output ($margin . $text . "\n"); return ''; } # Fix the various formatting codes. sub cmd_b { local $_ = $_[0]->strip_format ($_[2]); s/(.)/$1\b$1/g; $_ } sub cmd_f { local $_ = $_[0]->strip_format ($_[2]); s/(.)/_\b$1/g; $_ } sub cmd_i { local $_ = $_[0]->strip_format ($_[2]); s/(.)/_\b$1/g; $_ } # Output any included code in bold. sub output_code { my ($self, $code) = @_; $code =~ s/(.)/$1\b$1/g; $self->output ($code); } # Strip all of the formatting from a provided string, returning the stripped # version. sub strip_format { my ($self, $text) = @_; $text =~ s/(.)[\b]\1/$1/g; $text =~ s/_[\b]//g; return $text; } # We unfortunately have to override the wrapping code here, since the normal # wrapping code gets really confused by all the backspaces. sub wrap { my $self = shift; local $_ = shift; my $output = ''; my $spaces = ' ' x $$self{MARGIN}; my $width = $$self{opt_width} - $$self{MARGIN}; while (length > $width) { # This regex represents a single character, that's possibly underlined # or in bold (in which case, it's three characters; the character, a # backspace, and a character). Use [^\n] rather than . to protect # against odd settings of $*. my $char = '(?:[^\n][\b])?[^\n]'; if (s/^((?>$char){0,$width})(?:\Z|\s+)//) { $output .= $spaces . $1 . "\n"; } else { last; } } $output .= $spaces . $_; $output =~ s/\s+$/\n\n/; return $output; } ############################################################################## # Module return value and documentation ############################################################################## 1; __END__ =head1 NAME =for stopwords overstrike Pod::Text::Overstrike - Convert POD data to formatted overstrike text =for stopwords overstruck Overstruck Allbery terminal's =head1 SYNOPSIS use Pod::Text::Overstrike; my $parser = Pod::Text::Overstrike->new (sentence => 0, width => 78); # Read POD from STDIN and write to STDOUT. $parser->parse_from_filehandle; # Read POD from file.pod and write to file.txt. $parser->parse_from_file ('file.pod', 'file.txt'); =head1 DESCRIPTION Pod::Text::Overstrike is a simple subclass of Pod::Text that highlights output text using overstrike sequences, in a manner similar to nroff. Characters in bold text are overstruck (character, backspace, character) and characters in underlined text are converted to overstruck underscores (underscore, backspace, character). This format was originally designed for hard-copy terminals and/or line printers, yet is readable on soft-copy (CRT) terminals. Overstruck text is best viewed by page-at-a-time programs that take advantage of the terminal's B<stand-out> and I<underline> capabilities, such as the less program on Unix. Apart from the overstrike, it in all ways functions like Pod::Text. See L<Pod::Text> for details and available options. =head1 BUGS Currently, the outermost formatting instruction wins, so for example underlined text inside a region of bold text is displayed as simply bold. There may be some better approach possible. =head1 SEE ALSO L<Pod::Text>, L<Pod::Simple> The current version of this module is always available from its web site at L<http://www.eyrie.org/~eagle/software/podlators/>. It is also part of the Perl core distribution as of 5.6.0. =head1 AUTHOR Joe Smith <Joe.Smith@inwap.com>, using the framework created by Russ Allbery <rra@stanford.edu>. =head1 COPYRIGHT AND LICENSE Copyright 2000 by Joe Smith <Joe.Smith@inwap.com>. Copyright 2001, 2004, 2008 by Russ Allbery <rra@stanford.edu>. This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =cut
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server05.hostinghome.co.in
Server IP: 192.168.74.40
PHP Version: 7.4.33
Server Software: Apache
System: Linux server05.hostinghome.co.in 3.10.0-962.3.2.lve1.5.81.el7.x86_64 #1 SMP Wed May 31 10:36:47 UTC 2023 x86_64
HDD Total: 1.95 TB
HDD Free: 691.61 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Disabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: itsweb
User ID (UID): 1619
Group ID (GID): 1621
Script Owner UID: 1619
Current Dir Owner: N/A