diff options
Diffstat (limited to 'Master/texmf-doc/doc/english/FAQ-en/texfaq2html')
-rw-r--r-- | Master/texmf-doc/doc/english/FAQ-en/texfaq2html | 434 |
1 files changed, 0 insertions, 434 deletions
diff --git a/Master/texmf-doc/doc/english/FAQ-en/texfaq2html b/Master/texmf-doc/doc/english/FAQ-en/texfaq2html deleted file mode 100644 index f8e2f5d7181..00000000000 --- a/Master/texmf-doc/doc/english/FAQ-en/texfaq2html +++ /dev/null @@ -1,434 +0,0 @@ -#!/usr/bin/perl -# -# ======================================================================== -# @perl-file{ -# author = "Alan Jeffrey", -# version = "0.19", -# date = "15 January 1996", -# time = "12:26:55 GMT", -# filename = "texfaq2html", -# address = "School of Cognitive and Computing Sciences -# University of Sussex -# Brighton BN1 9QH -# UK", -# FAX = "+44 1273 671320" -# email = "alanje@cogs.sussex.ac.uk", -# codetable = "ISO/ASCII", -# keywords = "LaTeX FAQ HTML", -# supported = "yes", -# abstract = "This perl script converts the UKTUG TeX FAQ -# LaTeX source document into HTML, on the fly." -# package = "stands alone", -# dependencies = "faqbody.tex, newfaq.aux, dirctan.tex, -# filectan,tex", -# } -# ======================================================================== - -# A script to provide a searchable WWW interface to the the UKTUG TeX -# FAQ file. -# -# The script takes parameters in the form of the QUERY_STRING environment -# variable. - -# Copyright 1994 Alan Jeffrey -# Maintenance, since 1997, Robin Fairbairns - -require "sanitize.pl"; - -# The site-specific stuff: - -$default_web = "www.tex.ac.uk"; -$href_script="http://$default_web/cgi-bin/texfaq2html"; -$home = "$ENV{FAQ_HOME}" || "/anfs/www/VH-tex/faq-source"; -$texfaq = "faqbody.tex"; -$auxfaq = "newfaq.aux"; -$ctandir = "dirctan.tex"; -$ctanfiles = "filectan.tex"; -$archive_list = "archive.list"; - -# defaults; these have to be allowed by the $archive_list file - -$default_archive = "cam.ctan.org"; -$fmt_1 = ".tar.gz"; -$fmt_2 = ".zip"; -$fmt_2_name = "zip"; -$fmt_3 = "/"; -$fmt_3_name = "browse"; - -# protocols for transferring files, browsing directories -$proto_f = "ftp"; -$host_f = $default_archive; -$proto_d = "http"; -$host_d = $default_web; - -$proto_1 = $proto_2 = $proto_f; -$host_1 = $host_2 = $host_f; -$proto_3 = $proto_d; -$host_3 = $host_d; - -# table of symbols we believe in -%SymbolChar = ( - 92 => "\\", - 123 => "\{", - 125 => "\}" -); - -# This script produces HTML: - -print ("Content-type: text/html\n\n"); - -# Parse the arguments, and substitute hex(nn) for %nn: - -$_=$ENV{QUERY_STRING}; - -while (/(\b\w*)\=([^\&]*)/g) { - ($key,$val)=($1,$2); - $val =~ s/\+/ /g; - $val =~ s/\%(\w\w)/sprintf("%c",hex($&))/eg; - $key =~ s/^archive$/a/; - $keys{$key} = $val; -} - -$original_keyword = $keys{'keyword'}; -$original_keyword =~ s/ /\+/g; -$keyword = $keys{'keyword'}; -$keyword =~ s/\+/ /g; -$introduction = $keys{'introduction'}; -$question = $keys{'question'}; -$label = $keys{'label'}; - -if ( $arch = $keys{'a'} ) { - $got_arch = 1; - $xtra_k = '&a=' . $arch } -else { - $arch = $default_archive } - -grep ($question{$_}=1, split(/\s+/,$question)); -grep ($label{"Q-$_"}=1, split(/\s+/,$label)); - -# By default, we convert LaTeX to HTML. - -$converting = 1; -$ignoring = 0; -$sectioning = 0; - -# two things used in conversion of \item[ ] - -$itemset = ""; -$enditemset = ""; - -# Get the list of CTAN directories: - -open (CTANDIR, "$home/$ctandir") - || &oh_dear ("Couldn't open $ctandir"); - -while (<CTANDIR>) { - if ( /\\CTANdirectory\{([^\}]*)\}\{([^\}]*)\}/ ) { - $ctanref{$1} = "$2"; - $ctanref_plus{$1} = 1; - } elsif ( /\\CTANdirectory\*\{([^\}]*)\}\{([^\}]*)\}/ ) { - $ctanref{$1} = "$2/"; - $ctanref_plus{$1} = 0; - } -} - -# Get the list of CTAN files - -open (CTANFILES, "$home/$ctanfiles") - || &oh_dear ("Couldn't open $ctanfiles"); - -while (<CTANFILES>) { - - if ( /\\CTANfile\{([^\}]*)\}\{([^\}]*)\}/ ) { - $ctanref{$1} = "$2"; - $ctanref_plus{$1} = -1; - } -} - -# Get the list of allowable archives - -open (ARCHIVE_LIST, "$home/$archive_list") - || &oh_dear ("Couldn't open $archive_list"); - -while (<ARCHIVE_LIST>) { - chop; - ($archive, $root_dir) = split(/\s+/, $_, 2); - $archive_root{$archive} = $root_dir; -} -unless ( $this_root = $archive_root{$arch} ) { - &oh_dear("Archive $arch isn't in my list") } -$arch_root = "$arch/$this_root/"; - -# Get the Qrefs: - -open (AUXFAQ, "$home/$auxfaq") - || &oh_dear ("Couldn't open $auxfaq"); - -$last_question = -1; -$labels = ""; - -while (<AUXFAQ>) { - if (/\\newlabel\{([^\}]*)\}\{\{([^\}]*)\}/) { - $last_question = $2; - next if ( !( ($this_Qlabel = $1) =~ /^Q-/ ) ); - $this_label = $this_Qlabel; - $this_label =~ s/^Q-//; - $label_list{$last_question} = $this_label . $xtra_k; - $question{$last_question}=1 if $label{$this_Qlabel}; - if ($question{$last_question}) { - $qref{$this_Qlabel} = "#[$this_Qlabel]"; - $labels .= "+" . $this_label; - } else { - $qref{$this_Qlabel} = - "$href_script?label=$this_label$xtra_k"; - } - } -} - -# $labels to hold a (list of) label names for these question(s) -$labels =~ s/^\+//; - -# Open the FAQ file: - -open (TEXFAQ, "$home/$texfaq") - || &oh_dear ("Couldn't open $texfaq"); - -# Run through to the introduction, grabbing useful info. - -while (<TEXFAQ>) { - last if /\\section\{Introduction\}/; - $fileversion=$1 if /\\def\\faqfileversion\{([^\}]*)\}/; - $filedate=$1 if /\\def\\faqfiledate\{([^\}]*)\}/; -} - -# Print the title (and build up some information for the trailer): - -$next_question = $previous_question = -1; - -$title_modifier=""; -if ($question || $label) { - $question_count=0; - foreach $key ( keys %question ) { - $question_count++; - $title_modifier=" -- question label \"$label_list{$key}\""; - $next_question = $key + 1; - if ( $key > 1 ) { - $previous_question = $key - 1; - } - } - if ( $question_count > 1 ) { - $title_modifier=""; - $next_question = $previous_question = -1; - $url_name = "these questions"; - } else { - $url_name = "this question"; - } -} - -if ( $next_question > 0 && - $next_question > $last_question ) { $next_question = -1 }; - -printf (" -<html><head> -<title>TeX Frequently Asked Questions $title_modifier</title> -</head><body> -<h1 align=\"center\">Welcome to the UK List of<br> - TeX Frequently Asked Questions<br> - on the Web</h1> -"); - -# Blast out the introduction until we get to the first section. - -if ($introduction) { - print "<center>Skip to <a href=#search>Search</a>"; - if ( $question || $label || $keyword ) { - print "\n"; - } else { - print " or <a href=#questions>List of questions</a></center>\n"; - } - print "<h2>Introduction</h2>\n"; - while (<TEXFAQ>) { - last if /\\section/; - &sanitize_line; - print; - } -} else { - $_ = ""; -} - -# Produce the form. - -printf " -<h2><a name=search>Searching</a></h2> -<form action=\"$href_script\" method=get> -The index of Frequently Asked Questions about TeX is searchable.<br> -Please enter your keyword here:"; -if ( $got_arch ) { - printf "\n<input type=hidden name=a value=\"$arch\">"; -} -print <<SEARCHES; -<input type=\"text\" name=\"keyword\"> -then press here: <input type=\"submit\" value=\"search\">, or: -</form> -<!-- Search Google --> -<center> -<FORM method=GET action="http://www.google.com/search"> -<TABLE bgcolor="#FFFFFF"><tr><td> -<A HREF="http://www.google.com/"> -<IMG SRC="http://www.google.com/logos/Logo_40wht.gif" -border="0" ALT="Google" align="absmiddle"></A> -<INPUT TYPE="text" name="q" size="25" maxlength="255" value=""> -<INPUT TYPE="hidden" name="q" value="TeX Frequently Asked Questions"> -<INPUT TYPE="hidden" name="sitesearch" value="tex.ac.uk"> -<INPUT TYPE="hidden" name="as_eq" value="matches"> -<INPUT type="submit" name="btnG" VALUE="Google Search"> -</td></tr></TABLE> -</FORM> -</center> -<!-- Search Google --> -<hr> - -SEARCHES - - -if ($question || $label) { - do { - if (s/^\s*\\Question(\[.*\])?\{(.*)\}\s*$/$2/) { - $qnum++; - &sanitize_line; - if ($question{$qnum}) { - print "<h2>"; - print "<a name=\"$1\">" if $1; - print; - print "</a>" if $1; - print "</h2>\n"; - } - } elsif ($question{$qnum}) { - $printed = 1; - &sanitize_line; - print; - } - } while (<TEXFAQ>); - print "<p>\n"; - if ( ! $printed ) { - print "<h2>Warning</h2>\n"; - print "There is no question '$question'!<p>\n" - if $question; - print "There is no question with label '$label'!<p>\n" - if $label; - } -} else { - if ($keyword) { - $_=$keyword; - sanitize_line; - print "Questions matching the expression '"; - print; - print "'"; - foreach $kwd ( split /\+/, $keyword ) { - $kwds{$kwd} = 1; - } - } else { - $kwds{"."} = 1; - $sectioning = 1; - } - print "<ul>"; - $firstsection = 1; - do { - if ($sectioning && $converting) { - if (/^\s*\\section\{(.*)\}\s*$/ ) { - $_=$1; - &sanitize_line; - if ( $firstsection ) { - print "</ul><h3><a name=questions>$_</a></h3><ul>\n"; - $firstsection = 0; - } else { - print "</ul><h3>$_</h3><ul>\n"; - } - $_=""; - } elsif ( /^\s*\\subsection\{(.*)\}\s*$/ ) { - $_=$1; - &sanitize_line; - print "</ul><h4>$_</h4><ul>\n"; - $_=""; - } - } - &sanitize_line; - if (/^\s*\\Question(\[.*\])?\{(.*)\}\s*$/) { - $qnum++; - $entry = "<li><a href=\"$href_script?label=$label_list{$qnum}$xtra_k\">$2</a>\n"; - } - foreach $kwd ( keys %kwds ) { - if (/$kwd/i && $qnum) { - print $entry; - $entry = ""; - $matches{$qnum} = 1; - last; - } - } - } while (<TEXFAQ>); - print "</ul>"; - @matches=sort(keys(%matches)); - if ($#matches == -1) { - print "<em>There were no matches.</em><p>\n"; - } elsif ($#matches == 0) { - print "There was one match.<p>\n"; - } else { - $stupid_perl = @matches; - print "There were $stupid_perl matches. ", - "You can get all of them by pressing ", - "<a href=\"$href_script?question=", - (join("+",@matches)),$xtra_k, - "\">here</a>.<p>\n"; - } -} - -# An error report: - -sub oh_dear { - print "<i>This shouldn\'t happen!</i><p>\n", - $_[0], - "\n<p>Please report this!\n"; - die $_; -} - -# print links to other questions - - -# Print a tail. - -printf(" -<hr><address> - Maintenance of the - <a href=\"http://www.tex.ac.uk/faq\">TeX FAQ</a> - is coordinated by Robin Fairbairns.<p> -"); -if ( $next_question >0 && $previous_question > 0 ) { - print "Go to <a href=\"$href_script?label=$label_list{$previous_question}\">\ - previous question</a>, or - <a href=\"$href_script?label=$label_list{$next_question}\">\ - next question</a>"; -} -elsif ( $next_question > 0 ) { - print "Go to <a href=\"$href_script?label=$label_list{$next_question}\">\ - next question</a>"; -} -elsif ( $previous_question > 0 ) { - print "Go to <a href=\"$href_script?label=$label_list{$previous_question}\">\ - previous question</a>"; -} -print "<p>\n"; - -if ( $question || $label ) { - print "URL for $url_name: $href_script?label=$labels<p>\n"; -} - -printf(" - Comments, suggestions, or error reports? - see - \"<a href=\"$href_script?label=noans+newans\">how to improve the FAQ</a>\". -<p> - This is FAQ version $fileversion, last modified on $filedate. -</address> -</body></html> -"); - -# That's it! |