縦書きじぇねれーた

1・JavaScript部A

<SCRIPT LANGUAGE="javascript">
<!--
function tategaku(str, tate){
	var arystr=new Array(tate);
	var flg=0;
	var len=str.length;
	var rtnstr="";
	var cnt=0;

	for(cnt=0; cnt<tate; cnt++){
		arystr[cnt]="";
	}

	cnt=0;
	while(1){
		for(line=0, flg=0; line<tate; line++){
			if(line>tate-2){
				if(str.charAt(cnt+1)=="。"
				|| str.charAt(cnt+1)=="、"
				|| str.charAt(cnt+1)=="」"
				|| str.charAt(cnt+1)=="』"){
					flg=1;
				}
			}
			if(str.charAt(cnt)==unescape("%0A")
			|| str.charAt(cnt)==unescape("%0D")){
				if(line==0){cnt++;
					break;}
				flg=1;
				cnt++;
			}
			if(flg==1){
				arystr[line]="   ".concat(arystr[line]);
			}
			else if(str.charAt(cnt)=="。"){
				if(arystr[line].charAt(0)==" "){
					arystr[line]=arystr[line].substring(1);
				}
				arystr[line]="  °".concat(arystr[line]);
				cnt++;
			}
			else if(str.charAt(cnt)==" "
			|| str.charAt(cnt)=="("
			|| str.charAt(cnt)==")"){
				arystr[line]="   ".concat(arystr[line]);
				cnt++;
			}
			else if(str.charAt(cnt)=="、"){
				arystr[line]="  `".concat(arystr[line]);
				cnt++;
			}
			else if(str.charAt(cnt)=="」"
			|| str.charAt(cnt)=="』"){
				arystr[line]="└ ".concat(arystr[line]);
				cnt++;
			}
			else if(str.charAt(cnt)=="「"
			|| str.charAt(cnt)=="『"){
				if(arystr[line].charAt(0)==" "){
					arystr[line]=arystr[line].substring(1);
				}
				arystr[line]="  ┐".concat(arystr[line]);
				cnt++;
			}
			else if(str.charAt(cnt)=="…"){
				arystr[line]=" :".concat(arystr[line]);
				cnt++;
			}
			else if(str.charAt(cnt)=="ー" || str.charAt(cnt)=="―"){
				arystr[line]=" |".concat(arystr[line]);
				cnt++;
			}
			else{
				arystr[line]=(" "+str.charAt(cnt)).concat(arystr[line]);
				cnt++;
			}
		}
		if(cnt>len)	break;
	}

	for(line=0; line<tate; line++){
		rtnstr=rtnstr+arystr[line]+"<BR>";
	}

	rtnstr="<PRE><FONT FACE"MS ゴシック">"+rtnstr+"</FONT></PRE>"
	return rtnstr;
}
//-->
</SCRIPT>


2・JavaScript部B
<SCRIPT LANGUAGE="javascript">
<!--
var str=document.tategaki.screen.value;
var tate=document.tategaki.tate.value;

var kekka=tategaku(str, tate);
document.write(kekka);
//-->
</SCRIPT>


3・FORM部
<FORM NAME="tategaki">
<INPUT TYPE="hidden" NAME="tate" VALUE=(一行の文字数)>
<INPUT TYPE="hidden" NAME="screen" value="
(縦書きにしたい言葉。
タグ禁止。
改行はこんな感じに
普通に入れればOK)
">
</FORM>


● 設置方法
1・JavaScript部Aを設置したいHTMLの<HEAD>〜</HEAD>に、
2・FORM部B、3・FORM部を<BODY>〜</BODY>の中のお好きなところに貼り付けて下さい。
3・赤字の部分を適切なものに書き換えてください。

● 本日のテーマ
コメントを一言も書いていないのは、書いたところでどうせあとからどうこうしないだろという
ある意味的確な判断によります。
複雑なことはやってないけど妙なことはやってるのでわけわかりません。

● 今回の反省
縦書きHTMLタグ作成ソフトって、もっといいのがすでにあるよね……
なんか組み始めてからそういうの見ちゃってやる気萎えまくった結果がこれ。
JavaScriptなので変更時にわざわざタグから書き換える必要がないというのが利点ですと
唯一のメリットを何度も声高に叫んでみたりする。

【実行結果】 【戻る】