package LiveGeez::HTML; use base qw(HTML::Filter Exporter); BEGIN { use strict; use vars qw($VERSION @EXPORT); $VERSION = '0.20'; require 5.000; @EXPORT = qw(FileBuffer); use LiveGeez::WebFonts; require Convert::Ethiopic; # use Convert::Ethiopic::System; require LiveGeez::Directives; require HTML::Entities; } sub UpdateForSysOut { my $file; ($file, $_ ) = @_; my $sysOut = $file->{request}->{sysOut}->{sysName}; my $menuFont = $sysOut; $menuFont .= ".$file->{request}->{WebFont}" if ( $file->{request}->{WebFont} ); # # This updates the font menus: # s/(value="$menuFont") LIVEGEEZSYS(OUT|IN)>/$1 selected>/g; s/ LIVEGEEZSYS(OUT|IN)>/>/g; $sysOut .= ".$file->{request}->{sysOut}->{xfer}" if ( $file->{request}->{sysOut}->{xfer} ne "notv" ); $sysPragmaOut = ( $file->{request}->{pragma} ) ? "$sysOut&pragma=$file->{request}->{pragma}" : $sysOut ; s/LIVEGEEZSYS/$sysPragmaOut/g; # # Legacy Calendar Links # s/cal=/sys=$sysPragmaOut&cal=/g unless ( $file->{request}->{usecookies} ); my $langOut = $file->{request}->{sysOut}->{lang}; s/(value="$langOut") LIVEGEEZLANG(OUT|IN)>/$1 selected>/g; s/ LIVEGEEZLANG(OUT|IN)>/>/g; s/LIVEGEEZLANG/$langOut/g; # # Downloadable Font Links # $_ = AddWebFont ( $file, $_ ) if ( $file->{request}->{WebFont} ); # # Encoding Specific updates: # s/(
(\s+)?)/$1$2/i if ( $file->{request}->{sysOut}->{xfer} eq "utf8" ); s/(value="7-bit")>/$1 checked>/ if ( $file->{request}->{sysOut}->{'7-bit'} eq "true" ); if ( $file->{request}->{sysOut}->{sysName} =~ "JIS" ) { # this should be in the jis filter, but this is easier s/\«/şü/ig; s/\«/şü/g; s/\»/şı/ig; s/\»/şı/g; } s/(\n$1/i if ( !$file->{baseUpdated} && $file->{request}->{config}->{set_local_base} ); $_; } sub FileBuffer { my $file = shift; my $seraFile = $file->{uris}->{source}; my $fileStream = ($file->{isZipped}) ? "gzip -d --stdout $seraFile |" : "$seraFile"; # if ( $file->{request}->{sysIn} ) { # printf STDERR "Converting $file->{request}->{file} in language $file->{request}->{sysIn}->{langNum}"; # printf STDERR " out language $file->{request}->{sysOut}->{langNum}\n"; # } # else { # printf STDERR "No Language Set! Dumping $file->{request}->{file}.\n"; # } open ( FILE, $fileStream ); # printf STDERR "Converting[$$] $fileStream => $file->{request}->{sysOut}->{sysName}\n"; # printf STDERR "Error<0>[$$]: [$!] [$@]\n"; $_ = ( $file->{request}->{sysIn} ) ? Convert::Ethiopic::ConvertEthiopicFileToString ( \*FILE, $file->{request}->{sysIn}, $file->{request}->{sysOut} ) : join ( "",