🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.editor.xemacs
Article #187

Re: Japanese text in HTML

#187
From: Go Watanabe
Date: Mon, 24 Sep 2001 01:05
123 lines
4032 bytes
<86iteayvy1.wl@goliath.otacky.jp>$B$N5-;v$K$*$$$F(B
fukuda@computer.org$B$5$s$O=q$-$^$7$?!#(B

>    $B$3$l$O$`$7$m(B HTML $B$N9q:]2=$NLdBj$J$s$G$9$M!"$-$C$H!#$$$$(B
>    $B$8$^$5$s$X$N%j%W%i%$$K!V9TKv$K(B#&xxxx $B$N%3!<%I$r!W1>!9$H(B
>    $B=q$-$^$7$?$,!"9M$($F$_$l$P!"C18l$r6uGr$G$/$.$i$J$$8@8l$O(B
>    $BF|K\8l$NB>$K$b$"$k$N$@$+$i!"$=$s$J;v$r$7$J$/$F$b!";HMQ8@(B
>    $B8l$K1~$8$F(Brun-off $B$NJ}K!$rJQ$($k!"Ey$H$$$&5!G=$,(B HTML $B$K(B
>    $B=i$a$+$iHw$o$C$F$$$F$bNI$$$h$&$J5$$,$7$F$-$^$7$?!#(B

HTML $BE*$K$O$3$N<o$N6uGr$NI=<(=hM}$O8@8l$K1~$8$F<BAu0MB8$H$$$&$3$H$K(B
$B$J$C$F$$$^$9!#Nc$($P(B IE $B$O2~9TJ8;zD>A0$K(BCJK$BJ8;z$,Mh$k>l9g$O!"(B
$B2~9TJ8;z$r6uGr$H$O8+$J$5$::o=|$7$^$9$N$G!"JQ$J6uGr$O6u$-$^$;$s!#(B

$B$A$J$_$K;d$O(B lex $B$G2<$N$h$&$J%U%#%k%?=q$$$F=hM}$7$F$^$9!#(B
$BD6E,Ev$G(B EUC $B@lMQ!#:Y$+$$J8K!$^$G$O8+$F$J$$$G$9!#$4;29M$^$G$K!#(B

---- htmlfilter.l -----------------------------------------------------------------
%{
#include <stdio.h>
int kanjiflag = 0;
int crflag = 0;
int afterstart = 0;
int preflag = 0;
int startflag = 1;

void check(void)
{
    if (crflag == 2) printf("\n\n"); else if (crflag == 1) printf("\n");
    afterstart = 0;
    crflag = 0;
    kanjiflag = 0;
    startflag = 0;
}

%}

kanji           [\200-\377]
startpre        <[pP][rR][eE][^>]*>
endpre          <\/[pP][rR][eE][^>]*>
starttag        <[\!a-zA-Z][a-zA-Z0-9]*[^>]*>
endtag          <\/[a-zA-Z][a-zA-Z0-9]*>
ws              [ \t]+
nl              \n
entity          \&[a-zA-Z][a-zA-Z0-9]*\;

%%
{startpre} {
    if (crflag == 2) printf("\n\n"); else if (crflag == 1) printf("\n");
    crflag = 0;
    afterstart = 0;
    kanjiflag = 0;
    preflag = 1;
    startflag = 0;
    printf("%s",yytext);}

{endpre} {
    preflag = 0;
    printf("%s",yytext);}

{starttag} {
    char *p = yytext;
    if (crflag == 2) printf("\n\n"); else if (crflag == 1) printf("\n");
    crflag = 0;
    kanjiflag = 0;
    afterstart = 1;
    startflag = 0;
    while (*p) {
#if 0
        if (*p == '~')
            printf("%%7E");
        else
#endif
            fputc(*p, stdout);
        p++;
    }}

{kanji} {
    crflag = 0;
    afterstart = 0;
    kanjiflag = 1;
    startflag = 0;
    printf("%s",yytext);}

{ws} {
    if (!afterstart) printf("%s",yytext);}

{nl}{nl}+ {
    if (!startflag) {
        if (preflag) {
            printf("%s",yytext);
        } else if (!kanjiflag) {
            if (afterstart)
                printf("\n"); 
            else
                printf("\n\n"); 
        } else crflag = 2;
    }}

{nl} {
    if (!startflag)
        if (preflag || !kanjiflag) printf("\n"); else crflag = 1;}

{endtag}|{entity} {
    check();
    printf("%s",yytext);}

& {
    check();
    printf("&amp;");}

"<" {
    check();
    printf("&lt;");}


 {
    check();
    fputc(yytext[0],stdout);}

%%
--
$BEOn49d(B (Watanabe,Go) go@dsl.gr.jp / go@denpa.org
Technical Details
Message-ID: <9om2b1$nqf$1@sv.dsl.gr.jp>
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!headwall.stanford.edu!newsfeed.media.kyoto-u.ac.jp!news.ksw.feedmania.org!news1.miyuki-kasei.co.jp!pooh.isoternet.org!news.dsl.gr.jp!go
References: <86n13mzya1.wl@goliath.otacky.jp> <9781.1001223010@insigna.ie.u-ryukyu.ac.jp> <86iteayvy1.wl@goliath.otacky.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 1107f7,8ed34cf8603aa849
X-Google-Attributes: gid1107f7,public
X-Google-ArrivalTime: 2001-09-23 18:42:11 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!headwall.stanford.edu!newsfeed.media.kyoto-u.ac.jp!news.ksw.feedmania.org!news1.miyuki-kasei.co.jp!pooh.isoternet.org!news.dsl.gr.jp!go
From: go@denpa.org (Go Watanabe)
Newsgroups: fj.editor.xemacs
Subject: Re: Japanese text in HTML
Date: Mon, 24 Sep 2001 10:05:06 +0900
Organization: Society of Distributed Systems http://www.dsl.gr.jp
Lines: 123
Message-ID: <9om2b1$nqf$1@sv.dsl.gr.jp>
References: <86n13mzya1.wl@goliath.otacky.jp>
 <9781.1001223010@insigna.ie.u-ryukyu.ac.jp>
 <86iteayvy1.wl@goliath.otacky.jp>
NNTP-Posting-Host: sv.dsl.gr.jp
X-Trace: sv.dsl.gr.jp 1001295009 24399 210.239.46.42 (24 Sep 2001 01:30:09 GMT)
X-Complaints-To: usenet@dsl.gr.jp
NNTP-Posting-Date: 24 Sep 2001 01:30:09 GMT
X-Newsreader: mnews [version 1.22] 1999-12/19(Sun)