|
Packit Service |
50c9f2 |
#
|
|
Packit Service |
50c9f2 |
# Below is a stripped down version of bib2xhtml used by doxygen.
|
|
Packit Service |
50c9f2 |
# For the full version see http://www.spinellis.gr/sw/textproc/bib2xhtml/
|
|
Packit Service |
50c9f2 |
#
|
|
Packit Service |
50c9f2 |
# Convert from bibtex to XHTML.
|
|
Packit Service |
50c9f2 |
#
|
|
Packit Service |
50c9f2 |
# (C) Copyright 1995, 1996 David Hull.
|
|
Packit Service |
50c9f2 |
# (David Hull / hull@cs.uiuc.edu / http://www.uiuc.edu/ph/www/dlhull)
|
|
Packit Service |
50c9f2 |
#
|
|
Packit Service |
50c9f2 |
# (C) Copyright 2002-2010 Diomidis Spinellis
|
|
Packit Service |
50c9f2 |
# http://www.spinellis.gr
|
|
Packit Service |
50c9f2 |
#
|
|
Packit Service |
50c9f2 |
# This program is free software. You can redistribute it and/or modify
|
|
Packit Service |
50c9f2 |
# it under the terms of the GNU General Public License. See the
|
|
Packit Service |
50c9f2 |
# files README and COPYING for details.
|
|
Packit Service |
50c9f2 |
#
|
|
Packit Service |
50c9f2 |
# This source code contains UTF-8 characters. You might want to use
|
|
Packit Service |
50c9f2 |
# an appropriate editor, if you want to view/modify the LaTeX to Unicode
|
|
Packit Service |
50c9f2 |
# substitution commands.
|
|
Packit Service |
50c9f2 |
#
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
use Getopt::Std;
|
|
Packit Service |
50c9f2 |
use open IO => ':crlf';
|
|
Packit Service |
50c9f2 |
$label_styles{'numbered'} = $LABEL_NUMBERED = 2;
|
|
Packit Service |
50c9f2 |
$list_start[$LABEL_NUMBERED] = 'dl class="citelist"';
|
|
Packit Service |
50c9f2 |
$list_end[$LABEL_NUMBERED] = "/dl";
|
|
Packit Service |
50c9f2 |
@tmpfiles = ();
|
|
Packit Service |
50c9f2 |
sub html_ent {
|
|
Packit Service |
50c9f2 |
s/\\i\b/i/g;
|
|
Packit Service |
50c9f2 |
s/\\\'(\001\d+)\{([AEIOUaeiou])\1\}/&$2acute;/gs;
|
|
Packit Service |
50c9f2 |
s/\\\'([AEIOUaeiou])/&$1acute;/g;
|
|
Packit Service |
50c9f2 |
s/\\\`(\001\d+)\{([AEIOUaeiou])\1\}/&$2grave;/gs;
|
|
Packit Service |
50c9f2 |
s/\\\`([AEIOUaeiou])/&$1grave;/g;
|
|
Packit Service |
50c9f2 |
s/\\\"(\001\d+)\{([AEIOUaeiouy])\1\}/&$2uml;/gs;
|
|
Packit Service |
50c9f2 |
s/\\\"([AEIOUaeiouy])/&$1uml;/g;
|
|
Packit Service |
50c9f2 |
s/\\\~(\001\d+)\{([ANOano])\1\}/&$2tilde;/gs;
|
|
Packit Service |
50c9f2 |
s/\\\~([ANOano])/&$1tilde;/g;
|
|
Packit Service |
50c9f2 |
s/\\\^(\001\d+)\{([AEIOUaeiou])\1\}/&$2circ;/gs;
|
|
Packit Service |
50c9f2 |
s/\\\^([AEIOUaeiou])/&$1circ;/g;
|
|
Packit Service |
50c9f2 |
s/\\c(\001\d+)\{([Cc])\1\}/&$2cedil;/gs;
|
|
Packit Service |
50c9f2 |
s/\\u(\001\d+)\{(.)\1\}/$2/gs;
|
|
Packit Service |
50c9f2 |
s/\\v(\001\d+)\{(.)\1\}/$2/gs;
|
|
Packit Service |
50c9f2 |
s/\\([lL])\b/$1/g;
|
|
Packit Service |
50c9f2 |
s/\\\=(\001\d+)\{(.)\1\}/$2/gs;
|
|
Packit Service |
50c9f2 |
s/\\\=(.)/$1/g;
|
|
Packit Service |
50c9f2 |
s/\\\.(\001\d+)\{(.)\1\}/$2/gs;
|
|
Packit Service |
50c9f2 |
s/\\\.(.)/$1/g;
|
|
Packit Service |
50c9f2 |
s/\\([Oo])\b\s*/&$1slash;/g;
|
|
Packit Service |
50c9f2 |
s/\\AA\b\s*/Å/g;
|
|
Packit Service |
50c9f2 |
s/\\aa\b\s*/å/g;
|
|
Packit Service |
50c9f2 |
s/\\AE\b\s*/Æ/g;
|
|
Packit Service |
50c9f2 |
s/\\ae\b\s*/æ/g;
|
|
Packit Service |
50c9f2 |
s/\\ss\b\s*/ß/g;
|
|
Packit Service |
50c9f2 |
s/\\S\b\s*/§/g;
|
|
Packit Service |
50c9f2 |
s/\\P\b\s*/¶/g;
|
|
Packit Service |
50c9f2 |
s/\\pounds\b\s*/£/g;
|
|
Packit Service |
50c9f2 |
s/\?\`/¿/g;
|
|
Packit Service |
50c9f2 |
s/\!\`/¡/g;
|
|
Packit Service |
50c9f2 |
s/\-\-\-/—/g;
|
|
Packit Service |
50c9f2 |
s/([^\!])\-\-([^\>])/$1–$2/g;
|
|
Packit Service |
50c9f2 |
s/\\([aA]lpha)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([bB]eta)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([gG]amma)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([dD]elta)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\varepsilon\b/ε/g;
|
|
Packit Service |
50c9f2 |
s/\\([eE]psilon)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([zZ]eta)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([eE]ta)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([tT]heta)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\vartheta\b/θ/g;
|
|
Packit Service |
50c9f2 |
s/\\([iI]ota)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([kK]appa)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([lL]ambda)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([mM]u)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([nN]u)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([xX]i)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([oO]micron)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([pP]i)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\varpi\b/π/g;
|
|
Packit Service |
50c9f2 |
s/\\([rR]ho)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\varrho\b/ρ/g;
|
|
Packit Service |
50c9f2 |
s/\\([sS]igma)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\varsigma\b/ς/g;
|
|
Packit Service |
50c9f2 |
s/\\([tT]au)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([uU]psilon)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([pP]hi)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\varphi\b/φ/g;
|
|
Packit Service |
50c9f2 |
s/\\([cC]hi)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([pP]si)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\([oO]mega)\b/&$;;/g;
|
|
Packit Service |
50c9f2 |
s/\\S\b/§/g;
|
|
Packit Service |
50c9f2 |
s/^\\circ\b/°/g;
|
|
Packit Service |
50c9f2 |
s/\\infty\b/∞/g;
|
|
Packit Service |
50c9f2 |
s/\\emptyset\b/∅/g;
|
|
Packit Service |
50c9f2 |
s/\\pm\b/±/g;
|
|
Packit Service |
50c9f2 |
s/\\times\b/×/g;
|
|
Packit Service |
50c9f2 |
s/\\cdot\b/⋅/g;
|
|
Packit Service |
50c9f2 |
s/\\partial\b/∂/g;
|
|
Packit Service |
50c9f2 |
s/\\nabla\b/∇/g;
|
|
Packit Service |
50c9f2 |
s/\\surd\b/√/g;
|
|
Packit Service |
50c9f2 |
s/\\perp\b/⊥/g;
|
|
Packit Service |
50c9f2 |
s/\\sum\b/∑/g;
|
|
Packit Service |
50c9f2 |
s/\\int\b/∫/g;
|
|
Packit Service |
50c9f2 |
s/\\prod\b/∏/g;
|
|
Packit Service |
50c9f2 |
s/\\sim\b/∼/g;
|
|
Packit Service |
50c9f2 |
s/\\approx\b/≈/g;
|
|
Packit Service |
50c9f2 |
s/\\ne\b/≠/g;
|
|
Packit Service |
50c9f2 |
s/\\equiv\b/≡/g;
|
|
Packit Service |
50c9f2 |
s/\\propto\b/∝/g;
|
|
Packit Service |
50c9f2 |
s/\\le\b/≤/g;
|
|
Packit Service |
50c9f2 |
s/\\ge\b/≥/g;
|
|
Packit Service |
50c9f2 |
s/\\leftarrow\b/←/g;
|
|
Packit Service |
50c9f2 |
s/\\rightarrow\b/→/g;
|
|
Packit Service |
50c9f2 |
s/\\in\b/∈/g;
|
|
Packit Service |
50c9f2 |
s/\\notin\b/∉/g;
|
|
Packit Service |
50c9f2 |
s/\\lceil\b/⌈/g;
|
|
Packit Service |
50c9f2 |
s/\\rceil\b/⌉/g;
|
|
Packit Service |
50c9f2 |
s/\\lfloor\b/⌊/g;
|
|
Packit Service |
50c9f2 |
s/\\rfloor\b/⌋/g;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
foreach (@ARGV) {
|
|
Packit Service |
50c9f2 |
if (/\.bib$/) {
|
|
Packit Service |
50c9f2 |
$bibfile = $_;
|
|
Packit Service |
50c9f2 |
$bibfile =~ s/\.bib$//;
|
|
Packit Service |
50c9f2 |
push(@bibfiles,$bibfile);
|
|
Packit Service |
50c9f2 |
} else {
|
|
Packit Service |
50c9f2 |
$htmlfile = $_;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
exit(1) unless defined($htmlfile);
|
|
Packit Service |
50c9f2 |
$bibdatacmd="\\bibdata{".join(',',@bibfiles)."}";
|
|
Packit Service |
50c9f2 |
$label_style = $LABEL_NUMBERED;
|
|
Packit Service |
50c9f2 |
$bstfile = "doxygen";
|
|
Packit Service |
50c9f2 |
umask(077);
|
|
Packit Service |
50c9f2 |
open(HTMLFILE,">$htmlfile$$");
|
|
Packit Service |
50c9f2 |
if (open(OHTMLFILE, "$htmlfile")) {
|
|
Packit Service |
50c9f2 |
$mode = (stat OHTMLFILE)[2] & 0xfff;
|
|
Packit Service |
50c9f2 |
} else {
|
|
Packit Service |
50c9f2 |
print "Error opening $htmlfile\n";
|
|
Packit Service |
50c9f2 |
exit(1);
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
$beginstring = "";
|
|
Packit Service |
50c9f2 |
$endstring = "";
|
|
Packit Service |
50c9f2 |
@citations = ();
|
|
Packit Service |
50c9f2 |
loop:
|
|
Packit Service |
50c9f2 |
while (<OHTMLFILE>) {
|
|
Packit Service |
50c9f2 |
print HTMLFILE;
|
|
Packit Service |
50c9f2 |
last loop if m/^$beginstring$/;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
loop:
|
|
Packit Service |
50c9f2 |
while (<OHTMLFILE>) {
|
|
Packit Service |
50c9f2 |
print HTMLFILE;
|
|
Packit Service |
50c9f2 |
last loop if m/^$endstring$/;
|
|
Packit Service |
50c9f2 |
push(@citations, $2) if m/^([^\\]*)?(.+\})(.*)?$/;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
push(@citations, $bibdatacmd);
|
|
Packit Service |
50c9f2 |
$auxfile = "bib$$";
|
|
Packit Service |
50c9f2 |
push(@tmpfiles, "$auxfile.aux");
|
|
Packit Service |
50c9f2 |
open(AUXFILE, ">$auxfile" . ".aux");
|
|
Packit Service |
50c9f2 |
print AUXFILE "\\relax\n\\bibstyle{$bstfile}\n";
|
|
Packit Service |
50c9f2 |
foreach $citation (@citations) {
|
|
Packit Service |
50c9f2 |
print AUXFILE "$citation\n";
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
close(AUXFILE);
|
|
Packit Service |
50c9f2 |
push(@tmpfiles, "$auxfile.blg");
|
|
Packit Service |
50c9f2 |
push(@tmpfiles, "$auxfile.bbl");
|
|
Packit Service |
50c9f2 |
`bibtex $auxfile 2>&1;;
|
|
Packit Service |
50c9f2 |
if ($?==-1)
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
print "bibtex command failed: $!\n";
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
$beginstring = "";
|
|
Packit Service |
50c9f2 |
$endstring = "";
|
|
Packit Service |
50c9f2 |
loop:
|
|
Packit Service |
50c9f2 |
while (<OHTMLFILE>) {
|
|
Packit Service |
50c9f2 |
last loop if m/^$beginstring$/;
|
|
Packit Service |
50c9f2 |
print HTMLFILE;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
loop:
|
|
Packit Service |
50c9f2 |
while (<OHTMLFILE>) {
|
|
Packit Service |
50c9f2 |
last loop if m/^$endstring$/;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
print HTMLFILE "$beginstring\n";
|
|
Packit Service |
50c9f2 |
$t = $auxfile . ".bbl";
|
|
Packit Service |
50c9f2 |
$/ = "";
|
|
Packit Service |
50c9f2 |
open(BBLFILE, "<$t") || die "error opening $t: $!\n";
|
|
Packit Service |
50c9f2 |
$nentry = 0;
|
|
Packit Service |
50c9f2 |
loop:
|
|
Packit Service |
50c9f2 |
while (<BBLFILE>) {
|
|
Packit Service |
50c9f2 |
if (($nentry == 0) && (m/^#/)) {
|
|
Packit Service |
50c9f2 |
if ((m/#\s*label-style:\s*(\S+)/) && (! defined $label_style)) {
|
|
Packit Service |
50c9f2 |
$label_style = $label_styles{$1};
|
|
Packit Service |
50c9f2 |
if (! defined $label_style) {
|
|
Packit Service |
50c9f2 |
print STDERR "label style unknown: \n";
|
|
Packit Service |
50c9f2 |
next loop;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
next loop;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
$nentry++;
|
|
Packit Service |
50c9f2 |
($bcite, $blabel) = m+\[([^\]]*)\]+;
|
|
Packit Service |
50c9f2 |
$blabel = "$nentry";
|
|
Packit Service |
50c9f2 |
$bibcite{$bcite} = $blabel;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
close(BBLFILE);
|
|
Packit Service |
50c9f2 |
$label_style = $LABEL_DEFAULT if (! defined $label_style);
|
|
Packit Service |
50c9f2 |
$list_start = $list_start[$label_style];
|
|
Packit Service |
50c9f2 |
$list_end = $list_end[$label_style];
|
|
Packit Service |
50c9f2 |
print HTMLFILE "<$list_start>\n\n";
|
|
Packit Service |
50c9f2 |
open(BBLFILE, "<$t") || die "error opening $t: $!\n";
|
|
Packit Service |
50c9f2 |
$nentry = 0;
|
|
Packit Service |
50c9f2 |
loop:
|
|
Packit Service |
50c9f2 |
while (<BBLFILE>) {
|
|
Packit Service |
50c9f2 |
next loop if (($nentry == 0) && (m/^#/));
|
|
Packit Service |
50c9f2 |
$nentry++;
|
|
Packit Service |
50c9f2 |
s/\\\{/\002/g;
|
|
Packit Service |
50c9f2 |
s/\\\}/\003/g;
|
|
Packit Service |
50c9f2 |
s/\\\$/\004/g;
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
local ($c, $l, $z) = (0, 0, ());
|
|
Packit Service |
50c9f2 |
s/([\{\}])/join("","\001",($1 eq "\{" ? $z[$l++]=$c++ : $z[--$l]),$1)/ge;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
s/\%\n//g;
|
|
Packit Service |
50c9f2 |
s/(\.(<\/cite>|<\/a>|\')+)\./$1/g;
|
|
Packit Service |
50c9f2 |
s:(\[)[^\]]*(\]):$1$nentry$2:;
|
|
Packit Service |
50c9f2 |
while (m/(\\(cite(label)?)(\001\d+)\{([^\001]+)\4\})/) {
|
|
Packit Service |
50c9f2 |
$old = $1;
|
|
Packit Service |
50c9f2 |
$cmd = $2;
|
|
Packit Service |
50c9f2 |
$doxref = defined($3);
|
|
Packit Service |
50c9f2 |
$bcite = $5;
|
|
Packit Service |
50c9f2 |
if (! defined $bibcite{$bcite}) {
|
|
Packit Service |
50c9f2 |
$blabel = " [" . $bcite . "]";
|
|
Packit Service |
50c9f2 |
} elsif ($doxref) {
|
|
Packit Service |
50c9f2 |
$blabel = " [" . $bibcite{$bcite} . "]<\/a>";
|
|
Packit Service |
50c9f2 |
} else {
|
|
Packit Service |
50c9f2 |
$blabel = " [" . $bibcite{$bcite} . "]";
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
$old =~ s/(\W)/\\$1/g;
|
|
Packit Service |
50c9f2 |
s/\s*$old/$blabel/g;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
s/In ()([^\[]+) \[(\2)/In $1\[$2/;
|
|
Packit Service |
50c9f2 |
s/\\htmladdnormallink(foot)?(\001\d+)\{([^\001]+)\2\}(\001\d+)\{([^\001]+)\4\}/$3<\/a>/gs;
|
|
Packit Service |
50c9f2 |
s/\&/\005/g;
|
|
Packit Service |
50c9f2 |
s/\\?&/&/g;
|
|
Packit Service |
50c9f2 |
s/\005/&/g;
|
|
Packit Service |
50c9f2 |
html_ent();
|
|
Packit Service |
50c9f2 |
while (m/\\char([\'\"]?[0-9a-fA-F]+)/) {
|
|
Packit Service |
50c9f2 |
$o = $r = $1;
|
|
Packit Service |
50c9f2 |
if ($r =~ s/^\'//) {
|
|
Packit Service |
50c9f2 |
$r = oct($r);
|
|
Packit Service |
50c9f2 |
} elsif ($r =~ s/^\"//) {
|
|
Packit Service |
50c9f2 |
$r = hex($r);
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
s/\\char$o\s*/&#$r;/g;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
s/{\\etalchar\001(\d+)\{(.)}\001\1\}/$2/g;
|
|
Packit Service |
50c9f2 |
s/\\par\b//g;
|
|
Packit Service |
50c9f2 |
s/\\url(\001\d+)\{(.*)\1\}/$2<\/a>/gs;
|
|
Packit Service |
50c9f2 |
s/\\href(\001\d+)\{(.*)\1\}(\001\d+)\{([^\001]*)\3\}/$4<\/a>/gs;
|
|
Packit Service |
50c9f2 |
s/\\href(\001\d+)\{(.*)\1\}/$2<\/a>/gs;
|
|
Packit Service |
50c9f2 |
s/(\001\d+)\{\\rm\s+(.*)\1\}/$2/gs;
|
|
Packit Service |
50c9f2 |
s/\\textrm(\001\d+)\{(.*)\1\}/$2/gs;
|
|
Packit Service |
50c9f2 |
s/(\001\d+)\{\\em\s+(.*)\1\}/$2<\/em>/gs;
|
|
Packit Service |
50c9f2 |
s/(\001\d+)\{\\it\s+(.*)\1\}/$2<\/i>/gs;
|
|
Packit Service |
50c9f2 |
s/(\001\d+)\{\\bf\s+(.*)\1\}/$2<\/b>/gs;
|
|
Packit Service |
50c9f2 |
s/(\001\d+)\{\\tt\s+(.*)\1\}/<tt>$2<\/tt>/gs;
|
|
Packit Service |
50c9f2 |
s/\\emph(\001\d+)\{(.*)\1\}/$2<\/em>/gs;
|
|
Packit Service |
50c9f2 |
s/\\textit(\001\d+)\{(.*)\1\}/$2<\/i>/gs;
|
|
Packit Service |
50c9f2 |
s/\\textbf(\001\d+)\{(.*)\1\}/$2<\/b>/gs;
|
|
Packit Service |
50c9f2 |
s/\\texttt(\001\d+)\{(.*)\1\}/<tt>$2<\/tt>/gs;
|
|
Packit Service |
50c9f2 |
s/\\mathrm(\001\d+)\{(.*)\1\}/$2/gs;
|
|
Packit Service |
50c9f2 |
s/\\mathnormal(\001\d+)\{(.*)\1\}/$2/gs;
|
|
Packit Service |
50c9f2 |
s/\\mathsf(\001\d+)\{(.*)\1\}/$2/gs;
|
|
Packit Service |
50c9f2 |
s/\\mathbf(\001\d+)\{(.*)\1\}/$2<\/b>/gs;
|
|
Packit Service |
50c9f2 |
s/\\mathcal(\001\d+)\{(.*)\1\}/$2<\/i>/gs;
|
|
Packit Service |
50c9f2 |
s/\\mathit(\001\d+)\{(.*)\1\}/$2<\/i>/gs;
|
|
Packit Service |
50c9f2 |
s/\\mathtt(\001\d+)\{(.*)\1\}/<tt>$2<\/tt>/gs;
|
|
Packit Service |
50c9f2 |
s/\\bibxhtmlname(\001\d+)\{(.*)\1\}/$2/ges;
|
|
Packit Service |
50c9f2 |
sub domath {
|
|
Packit Service |
50c9f2 |
local($t) = @_;
|
|
Packit Service |
50c9f2 |
$t =~ s/\^(\001\d+)\{\\circ\1\}/\&\#176;/gs;
|
|
Packit Service |
50c9f2 |
$t =~ s/\^\\circ/\&\#176;/g;
|
|
Packit Service |
50c9f2 |
$t =~ s/\^(\001\d+)\{(.*)\1\}/<sup>$2<\/sup>/gs;
|
|
Packit Service |
50c9f2 |
$t =~ s/\^(\w)/<sup>$1<\/sup>/g;
|
|
Packit Service |
50c9f2 |
$t =~ s/\_(\001\d+)\{(.*)\1\}/<sub>$2<\/sub>/gs;
|
|
Packit Service |
50c9f2 |
$t =~ s/\_(\w)/<sub>$1<\/sub>/g;
|
|
Packit Service |
50c9f2 |
$t;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
s/(\$([^\$]+)\$)/&domath($2)/ge;
|
|
Packit Service |
50c9f2 |
s/(\\\((([^\\]|\\[^\(\)])+)\\\))/&domath($2)/ge;
|
|
Packit Service |
50c9f2 |
s/\\mbox(\001\d+)\{(.*)\1\}/$2/gs;
|
|
Packit Service |
50c9f2 |
while (s/(\
|
|
Packit Service |
50c9f2 |
s/([^\\])~/$1 /g;
|
|
Packit Service |
50c9f2 |
s/\\\,/ /g;
|
|
Packit Service |
50c9f2 |
s/\\ldots\b/…/g;
|
|
Packit Service |
50c9f2 |
s/\\dots\b/…/g;
|
|
Packit Service |
50c9f2 |
s/\005/\~/g;
|
|
Packit Service |
50c9f2 |
s/\\ / /g;
|
|
Packit Service |
50c9f2 |
s/\\textasciitilde\b\s*/~/g;
|
|
Packit Service |
50c9f2 |
s/\\([\#\&\%\~\_\^\|])/$1/g;
|
|
Packit Service |
50c9f2 |
s/\\\W//g;
|
|
Packit Service |
50c9f2 |
s/\001(\d+)\{\\[A-Za-z]+\001(\d+)\{([^\001]*)\001\2\}\001\1\}/$3/g;
|
|
Packit Service |
50c9f2 |
s/\\([A-Za-z]+)/ $1 /g;
|
|
Packit Service |
50c9f2 |
s+In ++;
|
|
Packit Service |
50c9f2 |
s/\001\d+[\{\}]//gs;
|
|
Packit Service |
50c9f2 |
tr/\002\003\004/{}$/;
|
|
Packit Service |
50c9f2 |
print HTMLFILE $_;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
close(BBLFILE);
|
|
Packit Service |
50c9f2 |
print HTMLFILE "<$list_end>\n\n$endstring\n";
|
|
Packit Service |
50c9f2 |
while (<OHTMLFILE>) {
|
|
Packit Service |
50c9f2 |
print HTMLFILE;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
close (OHTMLFILE);
|
|
Packit Service |
50c9f2 |
close(HTMLFILE);
|
|
Packit Service |
50c9f2 |
chmod($mode, "$htmlfile$$");
|
|
Packit Service |
50c9f2 |
rename("$htmlfile$$", $htmlfile);
|
|
Packit Service |
50c9f2 |
unlink(@tmpfiles);
|
|
Packit Service |
50c9f2 |
exit(0);
|