1
% htlatex tex4ht-javahelp-xtpipes "xhtml,next,3" "" "-d./"
3
\documentclass{article}
4
\Configure{ProTex}{log,<<<>>>,title,list,`,[[]]}
9
%%%%%%%%%%%%%%%%%%%%% definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
\newcount\tmpcnt \tmpcnt\time \divide\tmpcnt 60
12
\edef\temp{\the\tmpcnt}
13
\multiply\tmpcnt -60 \advance\tmpcnt \time
15
\edef\version{\the\year-\ifnum \month<10 0\fi
16
\the\month-\ifnum \day<10 0\fi\the\day
17
-\ifnum \temp<10 0\fi \temp
18
:\ifnum \tmpcnt<10 0\fi\the\tmpcnt}
21
\ifnum #1=\year #1\space\space\space\space\space\space
22
\else #1--\the\year\fi
25
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
32
\part{Post Processing for Html Output Mode}
40
\AtEndDocument{\OutputCodE\<javahelp.4xt\>}
42
\Needs{"xmllint --valid --noout javahelp.4xt"}
45
<?xml version="1.0" encoding="UTF-8" ?>
46
<!DOCTYPE xtpipes SYSTEM "xtpipes.dtd" >
47
<xtpipes preamble="yes" signature="javahelp.4xt (`version)">
48
<sax content-handler="xtpipes.util.ScriptsManager"
49
lexical-handler="xtpipes.util.ScriptsManagerLH" >
53
`<empty html element scriptNO`>
64
\section{email script}
68
<script element="span::email" >
69
`<set htm email links`>
78
<xslt name="." xml="." xsl="email" />
81
\<email templates\><<<
82
<xsl:template match=" text()[contains(.,'@')] " >
83
<span class="set-emails">
91
\<set htm email links\><<<
92
<sax name="." xml="." content-handler="tex4ht.XhtmlEmails" />
104
% \OutputCodE\<XhtmlEmails.java\>
107
% javac -classpath /home/4/gurari/tex4ht.dir/texmf/tex4ht/bin/tex4ht.jar
109
% -d /home/4/gurari/xtpipes.dir/.
112
\<XhtmlEmails.java\><<<
115
XhtmlEmails.java `<java licence`>
117
import xtpipes.XtpipesUni;
118
import org.xml.sax.*;
119
import org.xml.sax.helpers.DefaultHandler;
121
import java.lang.reflect.*;
122
import java.util.HashMap;
124
public class XhtmlEmails extends DefaultHandler {
125
PrintWriter out = null;
127
public XhtmlEmails(PrintWriter out,
128
HashMap<String,Object> scripts,
129
Method method, PrintWriter log, boolean trace) {
132
public void characters(char[] ch, int start, int length) {
133
data += new String(ch, start, length);
135
//XtpipesUni.toUni(ch, start, length, "<>&");
138
public void startElement(String ns, String sName,
141
String s = "<" + qName + "\n";
142
for (int i = 0; i < atts.getLength(); i++) {
143
String name = atts.getQName(i);
144
s += (" " + name + "=\""
145
+ XtpipesUni.toUni(atts.getValue(i), "<>&\"")
149
`<process email data`>
150
out.print(XtpipesUni.toUni(data, "&") + s);
153
public void endElement(String ns, String sName, String qName) {
154
String s = "</" + qName + ">";
155
`<process email data`>
156
out.print( XtpipesUni.toUni(data, "&") + s);
164
\<process email data\><<<
165
while( data.indexOf('@') >0 ){
169
data = XtpipesUni.toUni(data, "<>&");
176
String [] pre = data.split(
179
if( pre[0].endsWith("}") ){
180
if( pre[0].indexOf("{") != -1 ){
181
pre[0] = pre[0].substring( 0, pre[0].lastIndexOf("{") );
183
int len = pre[0] . length();
185
out.print( XtpipesUni.toUni(pre[0], "<>&") );
186
data = data.substring(len);
191
String [] post = data.split(
194
if( post[1] . length() > 0 ){
195
data = data.substring(0, data.length() - post[1] . length());
197
`<set a link to email`>
202
\<set a link to email\><<<
203
if( data.indexOf("{") == -1 ){
205
"<a href=\"mailto:" + XtpipesUni.toUni(data, "&") + "\">"
206
+ XtpipesUni.toUni(data, "<>&")
210
int idx = data.indexOf('@');
211
String ext = data.substring(idx);
212
data = data.substring(0,idx);
213
`<clean group prefix`>
219
\<clean group prefix\><<<
224
if( pre.length < 2 ){
225
out.print( XtpipesUni.toUni(data + ext, "<>&") );
229
len = pre[0] . length();
231
out.print( XtpipesUni.toUni(pre[0], "<>&") );
232
data = data.substring(len);
234
data = data.substring(0, data.length() - pre[1].length());
236
"<a href=\"mailto:" + XtpipesUni.toUni(data + ext, "&") + "\">"
237
+ XtpipesUni.toUni(data, "<>&")
245
\\p{javaLowerCase}\\p{javaUpperCase}\\d\\-_\\./&>>>
248
\url{http://tools.ietf.org/html/rfc2368}
251
Alice Smith" <alice@somewhere.com>
252
{alice, bob}@somewhere.com
253
alice@somewhere.com, bob@somewhere.com
257
\section{Long Tables}
262
\<longtable script\><<<
263
<script element="table::longtable" >
264
<set name="longtbl" >
266
`<longtable templates`>
267
`<close xslt script`>
269
<xslt name="." xml="." xsl="longtbl" />
274
\<longtable templates\><<<
275
<xsl:template match=" table[ @class='longtable' ]
276
/ tr[ (normalize-space(.)='') ] " >
277
<xsl:if test=" normalize-space(following-sibling::*) != '' ">
279
<xsl:apply-templates select="*|@*|text()|comment()" />
294
\<tabular script\><<<
295
<script element="table::tabular" >
296
<set name="tabular" >
298
`<tabular templates`>
299
`<close xslt script`>
301
<xslt name="." xml="." xsl="tabular" />
306
\<tabular templates\><<<
307
<xsl:template match=" table[ @class='tabular' ]
308
/ tr[ (normalize-space(.)='') ] " >
310
<xsl:message terminate="no">
314
<xsl:if test=" normalize-space(following-sibling::*) != '' ">
316
<xsl:apply-templates select="*|@*|text()|comment()" />
317
<xsl:message terminate="no">
329
\<tabular templates\><<<
330
<xsl:template match=" tr[ (normalize-space(.)='')
332
(parent::table[ @class='tabular' ])
335
<xsl:message terminate="no">
339
<xsl:if test=" normalize-space(following-sibling::*) != '' ">
341
<xsl:apply-templates select="*|@*|text()|comment()" />
342
<xsl:message terminate="no">
352
\section{Empty HTML Element Script}
355
\<empty html element script\><<<
356
<script element="meta" >
359
<xsl:template match="meta" >
360
<xsl:text disable-output-escaping="yes"><meta</xsl:text>
361
<xsl:apply-templates select="@*" mode="attrs" />
362
<xsl:text disable-output-escaping="yes">/></xsl:text>
365
`<close xslt script`>
367
<xslt name="." xml="." xsl="meta" />
372
\<empty html element script\><<<
373
<script element="area" >
376
<xsl:template match="area" >
377
<xsl:text disable-output-escaping="yes"><area</xsl:text>
378
<xsl:apply-templates select="@*" mode="attrs" />
379
<xsl:text disable-output-escaping="yes">/></xsl:text>
382
`<close xslt script`>
384
<xslt name="." xml="." xsl="area" />
391
\<empty html element script\><<<
392
<script element="base" >
395
<xsl:template match="base" >
396
<xsl:text disable-output-escaping="yes"><base</xsl:text>
397
<xsl:apply-templates select="@*" mode="attrs" />
398
<xsl:text disable-output-escaping="yes">/></xsl:text>
401
`<close xslt script`>
403
<xslt name="." xml="." xsl="base" />
410
\<empty html element script\><<<
411
<script element="basefont" >
412
<set name="basefont" >
414
<xsl:template match="basefont" >
415
<xsl:text disable-output-escaping="yes"><basefont</xsl:text>
416
<xsl:apply-templates select="@*" mode="attrs" />
417
<xsl:text disable-output-escaping="yes">/></xsl:text>
420
`<close xslt script`>
422
<xslt name="." xml="." xsl="basefont" />
429
\<empty html element script\><<<
430
<script element="br" >
433
<xsl:template match="br" >
434
<xsl:text disable-output-escaping="yes"><br</xsl:text>
435
<xsl:apply-templates select="@*" mode="attrs" />
436
<xsl:text disable-output-escaping="yes">/></xsl:text>
439
`<close xslt script`>
441
<xslt name="." xml="." xsl="br" />
448
\<empty html element script\><<<
449
<script element="col" >
452
<xsl:template match="col" >
453
<xsl:text disable-output-escaping="yes"><col</xsl:text>
454
<xsl:apply-templates select="@*" mode="attrs" />
455
<xsl:text disable-output-escaping="yes">/></xsl:text>
458
`<close xslt script`>
460
<xslt name="." xml="." xsl="col" />
467
\<empty html element script\><<<
468
<script element="frame" >
471
<xsl:template match="frame" >
472
<xsl:text disable-output-escaping="yes"><frame</xsl:text>
473
<xsl:apply-templates select="@*" mode="attrs" />
474
<xsl:text disable-output-escaping="yes">/></xsl:text>
477
`<close xslt script`>
479
<xslt name="." xml="." xsl="frame" />
486
\<empty html element script\><<<
487
<script element="hr" >
490
<xsl:template match="hr" >
491
<xsl:text disable-output-escaping="yes"><hr</xsl:text>
492
<xsl:apply-templates select="@*" mode="attrs" />
493
<xsl:text disable-output-escaping="yes">/></xsl:text>
496
`<close xslt script`>
498
<xslt name="." xml="." xsl="hr" />
505
\<empty html element script\><<<
506
<script element="img" >
509
<xsl:template match="img" >
510
<xsl:text disable-output-escaping="yes"><img</xsl:text>
511
<xsl:apply-templates select="@*" mode="attrs" />
512
<xsl:text disable-output-escaping="yes">/></xsl:text>
515
`<close xslt script`>
517
<xslt name="." xml="." xsl="img" />
524
\<empty html element script\><<<
525
<script element="input" >
528
<xsl:template match="input" >
529
<xsl:text disable-output-escaping="yes"><input</xsl:text>
530
<xsl:apply-templates select="@*" mode="attrs" />
531
<xsl:text disable-output-escaping="yes">/></xsl:text>
534
`<close xslt script`>
536
<xslt name="." xml="." xsl="input" />
543
\<empty html element script\><<<
544
<script element="isindex" >
545
<set name="isindex" >
547
<xsl:template match="isindex" >
548
<xsl:text disable-output-escaping="yes"><isindex</xsl:text>
549
<xsl:apply-templates select="@*" mode="attrs" />
550
<xsl:text disable-output-escaping="yes">/></xsl:text>
553
`<close xslt script`>
555
<xslt name="." xml="." xsl="isindex" />
562
\<empty html element script\><<<
563
<script element="link" >
566
<xsl:template match="link" >
567
<xsl:text disable-output-escaping="yes"><link</xsl:text>
568
<xsl:apply-templates select="@*" mode="attrs" />
569
<xsl:text disable-output-escaping="yes">/></xsl:text>
572
`<close xslt script`>
574
<xslt name="." xml="." xsl="link" />
581
\<empty html element script\><<<
582
<script element="param" >
585
<xsl:template match="param" >
586
<xsl:text disable-output-escaping="yes"><param</xsl:text>
587
<xsl:apply-templates select="@*" mode="attrs" />
588
<xsl:text disable-output-escaping="yes">/></xsl:text>
591
`<close xslt script`>
593
<xslt name="." xml="." xsl="param" />
606
\<copy attributes\><<<
607
<xsl:template match="@*" mode="attrs" >
608
<xsl:text> </xsl:text>
609
<xsl:value-of select="name()" />
610
<xsl:text>="</xsl:text>
611
<xsl:value-of select="." />
612
<xsl:text>"</xsl:text>
625
\<open xslt script\><<<
627
<xsl:stylesheet version="1.0"
628
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
630
<xsl:output omit-xml-declaration = "yes" method="xml" />
633
\<close xslt script\><<<
634
<xsl:template match="*|@*|text()|comment()" >
636
<xsl:apply-templates select="*|@*|text()|comment()" />
647
\AtEndDocument{\Needs{%
648
"cd /home/4/gurari/xtpipes.dir
652
mv tex4ht.jar /home/4/gurari/tex4ht.dir/texmf/tex4ht/bin/.
654
cp /home/4/gurari/xtpipes.dir/xtpipes/lib/*
655
/home/4/gurari/tex4ht.dir/texmf/tex4ht/xtpipes/.
659
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
661
%%%%%%%%%%%%%%%%%%%%%%%%%%%%