From: Henning Hraban Ramm <angerweit@gmx.net>
Subject: Re: Converting to ConTeXt from other formats
Date: Mon, 1 Jul 2002 19:06:43 +0200 [thread overview]
Message-ID: <200207011906.43561.angerweit@gmx.net> (raw)
In-Reply-To: <20020701154125.38069.qmail@web10005.mail.yahoo.com>
[-- Attachment #1: Type: text/plain, Size: 279 bytes --]
Am Montag, 1. Juli 2002 17:41 schrieb Christopher Cardinale:
> Are there any programs for converting RTF or HTML documents into
> ConTeXt?
Here's a crude script for HTML attached.
Axel Rose is on enhancing it.
Grüßlis vom Hraban!
--
http://www.fiee.net/texnique/
---
[-- Attachment #2: html2context.pl --]
[-- Type: text/x-perl, Size: 3739 bytes --]
#!/usr/bin/perl -w
print "\nThis is HTML2ConTeXt. Version 2002-05-15\n";
print "I'll try to convert your HTML file for ConTeXt.\n";
print "copyleft Henning Hraban Ramm, http://www.fiee.net/texnique/\n\n";
unless ($ARGV[0]) {die "You must name a file to convert! $!"};
my $HTMLDatei = $ARGV[0];
unless (-T $HTMLDatei) {
print "$HTMLDatei not found!\n";
if (-T $HTMLDatei.'.htm') { $HTMLDatei .= ".htm"; }
if (-T $HTMLDatei.'.html') { $HTMLDatei .= ".html"; }
} # unless
$HTMLDatei =~ s/\\/\//g;
my $Table="n";
my $Encod="win";
open (QUELLE, $HTMLDatei) or die "Can't open $HTMLDatei! $!";
my $TeXDatei = $HTMLDatei;
$TeXDatei =~ s/\.htm$/\.tex/i;
print $TeXDatei."\n";
open (ZIEL, ">".$TeXDatei) or die "Can't make $TeXDatei! $!";
while (<QUELLE>) {
# single entities and chars
s§&(.)uml;§\\\"$1§g;
s§&(.)acute;§\\´$1§g;
s§&(.)grave;§\\`$1§g;
s§&(.)circ;§\\^$1§g;
s§&(.)ring;§\\°$1§g;
if ($Encod eq "win") {
s§ß§ß§g;
} else {
s§ß§\\ss{}§g;
} # if Encoding
s§&(\#150|endash);§--§g; # endash
s§ - § -- §g; # endash
s§ §~§g; # non breaking space
s§"([^<>]*)"§\\quotation{$1}§g;
s§&(r|l)aquo;([^<>]*)&(l|r)aquo;§\\quotation{$2}§g;
s§&\#132;([^<>]*)"§\\quotation{$1}§g;
s§&\#132;([^<>]*)$§\\quotation{$1§g; # uncompleted line
s§\s("|\")§ \\quotation{§g; # begin quote
s§"\s§} §g; # end quote
s§"§\"§g; # quote
s§([^\\=\s])\"§$1}§g; # end quote
s§%§|~|\\%{}§g; # percent
s§<§<§g;
s§>§>§g;
s§&§\&§g;
s§&sup(.);§^$1§g;
s§&frac(.)(.);§\\frac{$1}{$2}§g;
s§&\#133;§ §g;
# s§§§g;
# s§§§g;
# TeX words and marks
s§T<SUB>E</SUB>X§TeX§g;
s§pdfTeX§\\pdfTeX{}§gi;
s§ppchTeX§\\pdfTeX{}§gi;
s§ConTeXt§\\ConTeXt{}§g;
s§CONTEXT§\\ConTeXt{}§g;
s§(\s)TeX§$1\\TeX{}§g;
# environments
s§<BODY[^<>]*>§\\starttext§gi;
s§</BODY>§\\stoptext§gi;
s§(<BLOCKQUOTE>|<QUOTE>)§\\startquotation§gi;
s§(<\/BLOCKQUOTE>|<\/QUOTE>)§\\stopquotation§gi;
s§</*DIV[^<>]*>§§gi; # delete all divs
s§</*FONT[^<>]*(>|$)§§gi; # delete all font tags
# Headers
s§<H1>§\\chapter{§gi;
s§<H2>§\\section{§gi;
s§<H3>§\\subsection{§gi;
s§<H4>§\\subsubsection{§gi;
s§</H.>§}§gi;
# Links
s§<A\s(.*)HREF=\"(.*)\">(.*)</A>§\\goto{$3}[URL($2)]§gi;
s§<A\s(.*)NAME=\"(.*)\">(.*)</A>§\\reference[$2]{$3}§gi;
# Tables
if ($Table eq "y") {
s§<TABLE([^<>]*)>§\\bTABLE \%$1 §gi;
s§</TABLE>§\\eTABLE§gi;
s§</TD>§\\eTD §gi;
s§<TD([^<>]*)>§\\bTD §gi;
s§</TR>§\\eTR §gi;
s§<TR([^<>]*)>§\\bTR §gi;
} else {
s§</*T(ABLE|D|R|BODY)[^<>]*>§§gi; # delete all table tags
} # if Table
# Images
s§<IMG\s([^<>]*)>§\\externalfigure[$1]§gi;
s§<IMG\s([^"=]*)src=\"([^<>]*)\"([^<>]*)$§\\externalfigure[$2]\t\% $1 $3§gi;
# Lists
s§<UL>§\\startitemize\[1\]§gi;
s§<OL>§\\startitemize\[n\]§gi;
s§<DL>§\\startitemize\[1\]§gi; # ?
s§</.L>§\\stopitemize§gi;
s§<LI>§\\item §gi;
s§<DT>§\\item §gi; #
s§<DD>§\\item §gi; #
s§</LI>§§gi;
s§<P[^<>]*>§§gi;
# s§</P>§\\par§gi;
s§</P>§\n\n§gi;
s§<BR[^<>]*>§\n§gi;
s§<HR[^<>]*>§\\blank §gi;
s§<(PRE|TT|CODE)>§\\type{§gi;
s§<(STRONG|B)>§{\\bf §gi;
s§<(EM|I|U)>§{\\em §gi;
s§^</([^\s]*)>$§\\stop$1§gi;
s§^<([^\s]*)([^<>]*)>$§\\start$1\[$2\]§gi;
s§</.*>§}§gi; # all other closing tags become }
s§<([^\s]*)(\s)(.*)>§\\$1\[$3\]\{§gi; # all other opening tags become {
s§<([^\s]*)>§\\$1\{§gi; # all other opening tags become {
s§^\s*§§g; # remove trailing spaces
print ZIEL;
print ".";
} # while
print "\n";
close (ZIEL);
close (QUELLE);
# \goto{text}[URL(Link)]
prev parent reply other threads:[~2002-07-01 17:06 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-01 15:41 Christopher Cardinale
2002-07-01 17:06 ` Henning Hraban Ramm [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200207011906.43561.angerweit@gmx.net \
--to=angerweit@gmx.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).