[gutvol-p] Bookmark (perl)

bert bertius at sympatico.ca
Sun Jan 9 20:44:31 PST 2005


This Perl script transforms a txt into html and ads the javscript for 
bookmarking lines. The script takes one argument as parameter, the name 
of the txt file (ex.: 8946-8.txt) and outputs a html file (ex.: 
8946-8.html). This is not a program and so requires a Perl interpretor 
to be installed.

$file = $ARGV[0];
open(IN, $file);
@lines = <IN>;
close(IN);

$ARGV[0] =~ /(.*)\.(.*)/;
$file = $1 . '.html';
open(OUT, ">$file");

print OUT '<html><head>';
print OUT "<script>function 
getCookie(NameOfCookie){if(document.cookie.length>0){var 
begin=document.cookie.indexOf(NameOfCookie+'=');if(begin!=-1){begin+=NameOfCookie.length+1;var 
end=document.cookie.indexOf(';',begin);if(end==-1)end=document.cookie.length;return 
unescape(document.cookie.substring(begin,end));}}return null;}function 
setCookie(NameOfCookie,value,expiredays){var ExpireDate=new 
Date();ExpireDate.setTime(ExpireDate.getTime()+(expiredays*24*3600*1000));document.cookie=NameOfCookie+'='+escape(value)+((expiredays==null)?'':'; 
expires='+ExpireDate.toGMTString());}var bookmark=0;function 
init(){bookmark=getCookie('bookmark');if(bookmark==null){bookmark=0;}var 
a=document.getElementById('bookmark');a.href='#'+bookmark;a=document.getElementById(bookmark);a.style.backgroundColor='lavender';}function 
highlight(e){var 
a=document.getElementById(bookmark);a.style.backgroundColor='white';bookmark=e.id;e.style.backgroundColor='lavender';setCookie('bookmark',e.name,365);a=document.getElementById('bookmark');a.href='#'+bookmark;}</script>";
print OUT '</head><body onload="init();">';
print OUT '<div><a id="bookmark" href="#0">bookmark</a></div><p>';

$i = 0;
foreach $line (@lines)
{
    if ($line eq "\n")
    {
        print OUT '</p><p>';
    }
    else
    {
        print OUT '<a id="' . $i . '" ondblclick="highlight(this);" 
name="' . $i++ . '">' . $line . '</a>';
    }
}

print OUT '</p></body></html>';
close(OUT);



More information about the gutvol-p mailing list