色をCSSで指定する
色をCSSで指定する
これまで、色の指定を
<FONT COLOR="xxx">AAA</FONT>
という形で行ってきたが、CSSで以下のように定義しておき
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML lang="ja"> <HEAD> <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> <style type="text/css"> <!-- PRE SPAN.KEY{color:BLUE;} /* 予約語 */ PRE SPAN.IDW{color:BLACK;} /* 識別子 */ PRE SPAN.STR{color:RED;} /* 文字列 */ PRE SPAN.CHA{color:BLACK;} /* 文字 */ PRE SPAN.NUM{color:BLACK;} /* 数字 */ PRE SPAN.COM{color:GREEN;} /* コメント */ PRE SPAN.OPE{color:BLACK;} /* 演算子 */ PRE SPAN.DLM{color:BLACK;} /* 区切り記号 */ PRE SPAN.DIR{color:BLUE;} /* ディレクティブ */ --> </style> </HEAD> <BODY> <PRE>
ソース部分では以下のように指定する。
<SPAN CLASS="xxx">AAA</SPAN>
public void tohtml(Reader reader, Writer writer)
{
//ファイルの終わりまで、1区切りずつ読んで
Token token;
while((token = getToken(reader)) != null)
{
//文字列の種類に応じた色指定タグで挟んで出力する
if (token.tokenKind == "予約語")
{
writer.putString("<SPAN CLASS=\"KEY\">");
writer.putString(token.tokenString);
writer.putString("</SPAN>");
}
else if (token.tokenKind == "コメント")
{
writer.putString("<SPAN CLASS=\"COM\">");
writer.putString(token.tokenString);
writer.putString("</SPAN>");
}
else if (token.tokenKind == "文字列")
{
writer.putString("<SPAN CLASS=\"STR\">");
writer.putString(token.tokenString);
writer.putString("</SPAN>");
}
else if (token.tokenKind == "文字")
{
writer.putString("<SPAN CLASS=\"CHA\">");
writer.putString(token.tokenString);
writer.putString("</SPAN>");
}
else if (token.tokenKind == "数字")
{
writer.putString("<SPAN CLASS=\"NUM\">");
writer.putString(token.tokenString);
writer.putString("</SPAN>");
}
else if (token.tokenKind == "識別子")
{
writer.putString("<SPAN CLASS=\"IDW\">");
writer.putString(token.tokenString);
writer.putString("</SPAN>");
}
else if (token.tokenKind == "演算子")
{
writer.putString("<SPAN CLASS=\"OPE\">");
writer.putString(token.tokenString);
writer.putString("</SPAN>");
}
else if (token.tokenKind == "区切り記号")
{
writer.putString("<SPAN CLASS=\"DLM\">");
writer.putString(token.tokenString);
writer.putString("</SPAN>");
}
else if (token.tokenKind == "ディレクティブ")
{
writer.putString("<SPAN CLASS=\"DIR\">");
writer.putString(token.tokenString);
writer.putString("</SPAN>");
}
else
{
writer.putString(token.tokenString);
}
}
}