「★ソース高速HTML化」の編集履歴(バックアップ)一覧はこちら
★ソース高速HTML化 - (2008/10/01 (水) 20:52:53) の最新版との変更点
追加された行は緑色になります。
削除された行は赤色になります。
*情報
作者名:はっぱ
引用元:[[なでしこプログラム掲示板「ソース高速HTML化」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=444&rev=&no=0]]
*概要
なでしこのソースをエディタ上と同じように見えるように色付けします。
*解説
モードの説明
モードには0と1が指定できます。
通常は0で十分です。
HTML化するソースがたくさんある場合には、
1モードにして、
<style type="text/css"><!--
.nstr { color : #000080 ; }
.ncomment { color : #008000 ; }
.function { color : #FF00FF ; }
.member { color : #800080 ; }
.nsign { color : #008080 ; }
.nnumber { color : #000080 ; }
.particle { color : #800000 ; }
.special { color : #000080 ; }
--></style>
上をHTMLファイルのどこかに(<head>タグ内推奨)書くか、
上が書かれたcssファイルをアップして置き、そこにリンクするようにしておくと、
多少HTMLがきれいになります。
*//本体
#ソース高速HTML化
!母艦設計=「母艦の可視はオフ」
#実行部分
#実際に使う時は、ここを必要に応じて変えてください。
#-----------------------------------------------------------------------
デバッグエディタハンドルに「copy」を、COPYDATA送信。
ソースはクリップボード
もし、ソース=空なら、
"nako"のファイル選択。
もし、それ=空なら終わる。
違えば
それを開く。
ソース=それ。
開始時間=システム時間。
ソースを0/*モード*/でHTML化。
完成文はそれ。
終了時間=システム時間。
所要時間=(終了時間-開始時間)/1000
'フッタの挿入。
'ここも必要に応じて変えてください。
クリップボード=完成文
ダイアログタイトル=「所要時間:{所要時間}秒」
「コード部分をクリップボードへコピーしました。
見てみますか?」と、二択。
もし、それなら
それ=「<html><body>{改行}」&完成文&「{改行}</body></html>」
「temp.html」へ、保存。
「temp.html」を、起動。
終わり。
#-----------------------------------------------------------------------
*HTML化(ソースをモードで)
'定数
タブ文字は「 」
文字列色は"#000080"
コメント色は"#008000"
関数色は"#FF00FF"
項目色は"#800080"
記号色は"{CHR(3)}008080"
数字色は"{CHR(3)}000080"
助詞色は"{CHR(3)}800000"
特殊色は"{CHR(3)}000080"
# CR=CHR(13)
助詞一覧=「とは{~}は{~}について{~}ならば{~}なら{~}でなければ{~}から
まで{~}までを{~}までの{~}で{~}を{~}の{~}が{~}に{~}へ{~}と{~}して
だけ{~}くらい{~}なのか{~}として{~}より{~}ほど{~}など{~}って{~}では{~}て」
特殊文字=「それ{~}ここまで{~}続ける{~}終わる{~}戻る{~}もし{~}違えば{~}条件分岐
反復{~}繰り返す{~}ループ」#{~}間{~}回#文中に含まれる可能性のある語は除外
//「"”『``{{・/*##//'’※
囲み文字=`「
"
”
`&"『
`
`"&`
{
{
/*
・
#
#
//
'
’
※`
閉じ文字=`」"”`&"』``"&`}}`#*/
囲み文字数=要素数(囲み文字)
もし、モード=0なら
文字列囲み=『<span style="color:』&文字列色&『;">』
コメント囲み=『<span style="color:』&コメント色&『;">』
関数囲み=『<span style="font-weight : bold ; color :』&関数色&『;">』
項目囲み=『<span style="color :』&項目色&『;">』
記号囲み=『span』&(CHR(4))&『style="color:』&記号色&『;"』
数字囲み=『span』&(CHR(4))&『style="color:』&数字色&『;"』
助詞囲み=『span』&(CHR(4))&『style="color:』&助詞色&『;"』
特殊囲み=『span』&(CHR(4))&『style="color:』&特殊色&『;"』
違えば
文字列囲み=『<span class="nstr">』
コメント囲み=『<span class="ncomment">』
関数囲み=『<span class="function">』
項目囲み=『<span class="member">』
記号囲み=『span』&(CHR(4))&『class="nsign"』
数字囲み=『span』&(CHR(4))&『class="nnumber"』
助詞囲み=『span』&(CHR(4))&『class="particle"』
特殊囲み=『span』&(CHR(4))&『class="special"』
記号囲み=「{CHR(1)}{記号囲み}{CHR(2)}」
数字囲み=「{CHR(1)}{数字囲み}{CHR(2)}」
助詞囲み=「{CHR(1)}{助詞囲み}{CHR(2)}」
特殊囲み=「{CHR(1)}{特殊囲み}{CHR(2)}」
終了部分=「{CHR(1)}/span{CHR(2)}」
最初部分=「」
(ソース!=『』)の間
最小文字数=文字数(ソース)
番号=-1
囲み文字を反復
ソースで対象が何文字目。
もし、(それ<最小文字数)かつ(それ>0)なら
最小文字数=それ。
番号=回数-1
次囲み文字=対象。
#関数を探す
「●{~}■{~}*」を反復
ソースを"^\t* * *{対象}"で正規表現マッチ。
それ=それ\0
もし、(それ<>「」)かつ(何文字目(ソース,それ)<最小文字数)なら
番号=囲み文字数+回数-1
次囲み文字=対象。
#次の囲み文字を言う。
もし、番号=-1なら、抜ける。#囲み文字が見つからなかった場合。
ソースの次囲み文字までを切り取る。
それを記号色付け。
最初部分=最初部分&それ。
#囲み文字に応じて切り取り
もし、番号<=9ならば
もし、番号<=8ならば、
もし、番号=8ならば
次閉じ文字="*/"
違えば
次閉じ文字=MID(閉じ文字,番号+1,1)
違えば、
もし、(何文字目(ソース," "))<(何文字目(ソース,改行))ならば
次閉じ文字=" "
違えば
次閉じ文字=改行。
違えば、次閉じ文字=改行
もし、次閉じ文字=改行なら、
ソースの改行までを切り取る。
切り取り部分=「{次囲み文字}{それ}」
ソース=改行&ソース
違えば、
ソースの次閉じ文字までを切り取る。
切り取り部分=「{次囲み文字}{それ}{次閉じ文字}」
切り取り部分をHTML特殊文字変換。
もし、番号<6なら、最初部分=最初部分&文字列囲み&それ&『</span>』
違えば、もし、番号<9なら、最初部分=最初部分&コメント囲み&それ&『</span>』
違えば、もし、番号=9なら、最初部分=最初部分&項目囲み&それ&『</span>』
違えば、もし、番号<16ならば、最初部分=最初部分&コメント囲み&それ&『</span>』
違えば、最初部分=最初部分&関数囲み&それ&『</span>』
ソースを記号色付け。
完成文=最初部分&それ。
「<code>{完成文}</code>」を戻す。
●記号色付け(ソースを)
#yukさんに教えてもらった部分
//記号に色つけ
ソースの「([!-@!-@←→])」を「{記号囲み}$1{終了部分}」へ正規表現置換。
「{記号囲み}(\d){終了部分}」を「{数字囲み}$1{終了部分}」へ正規表現置換。
「(\D){終了部分}{記号囲み}」を「$1」へ正規表現置換。
「(\d){終了部分}{数字囲み}」を「$1」へ正規表現置換。
ソースはそれ。
助詞一覧を反復
ソースのそれを「{助詞囲み}{それ}{終了部分}」に置換。
ソースはそれ。
特殊文字を反復
ソースのそれを「{特殊囲み}{それ}{終了部分}」に置換。
ソースはそれ。
ソースをHTML特殊文字変換。
//タグの"#"," ","<",">"を元に戻す
それの(CHR(3))を"#"に置換。
それの(CHR(4))を" "に置換。
「{CHR(1)}」を「<」に置換。
「{CHR(2)}」を「>」に置換。
#/yukさんに教えてもらった部分
戻る。
●HTML特殊文字変換(ソースを)
ソースの「&」を「&」に置換。
「<」を「<」に置換。
「>」を「>」に置換。
# 「"」を「"」に置換
改行を「<BR>{改行}」に置換。
「{\t}」をタブ文字に置換。
「 」を「 」に置換
戻る。
----
#comment()
----
*情報
作者名:fuji
引用元:[[なでしこプログラム掲示板「ソース高速HTML化」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=444&rev=&no=0]]
*概要
なでしこのソースをエディタ上と同じように見えるように色付けします。
&link(■サンプル[このプログラムのソース自身をHTML化したもの]){http://www26.atwiki.jp/isoroku_be?cmd=upload&act=open&pageid=100&file=temp.html}
*解説
モードの説明
モードには0と1が指定できます。
通常は0で十分です。
HTML化するソースがたくさんある場合には、
1モードにして、
<style type="text/css"><!--
.nstr { color : #000080 ; }
.ncomment { color : #008000 ; }
.function { color : #FF00FF ; }
.member { color : #800080 ; }
.nsign { color : #008080 ; }
.nnumber { color : #000080 ; }
.particle { color : #800000 ; }
.special { color : #000080 ; }
--></style>
上をHTMLファイルのどこかに(<head>タグ内推奨)書くか、
上が書かれたcssファイルをアップして置き、そこにリンクするようにしておくと、
多少HTMLがきれいになります。
*//本体
#ソース高速HTML化
!母艦設計=「母艦の可視はオフ」
#実行部分
#実際に使う時は、ここを必要に応じて変えてください。
#-----------------------------------------------------------------------
デバッグエディタハンドルに「copy」を、COPYDATA送信。
ソースはクリップボード
もし、ソース=空なら、
"nako"のファイル選択。
もし、それ=空なら終わる。
違えば
それを開く。
ソース=それ。
開始時間=システム時間。
ソースを0/*モード*/でHTML化。
完成文はそれ。
終了時間=システム時間。
所要時間=(終了時間-開始時間)/1000
'フッタの挿入。
'ここも必要に応じて変えてください。
クリップボード=完成文
ダイアログタイトル=「所要時間:{所要時間}秒」
「コード部分をクリップボードへコピーしました。
見てみますか?」と、二択。
もし、それなら
それ=「<html><body>{改行}」&完成文&「{改行}</body></html>」
「temp.html」へ、保存。
「temp.html」を、起動。
終わり。
#-----------------------------------------------------------------------
*HTML化(ソースをモードで)
'定数
タブ文字は「 」
文字列色は"#000080"
コメント色は"#008000"
関数色は"#FF00FF"
項目色は"#800080"
記号色は"{CHR(3)}008080"
数字色は"{CHR(3)}000080"
助詞色は"{CHR(3)}800000"
特殊色は"{CHR(3)}000080"
# CR=CHR(13)
助詞一覧=「とは{~}は{~}について{~}ならば{~}なら{~}でなければ{~}から
まで{~}までを{~}までの{~}で{~}を{~}の{~}が{~}に{~}へ{~}と{~}して
だけ{~}くらい{~}なのか{~}として{~}より{~}ほど{~}など{~}って{~}では{~}て」
特殊文字=「それ{~}ここまで{~}続ける{~}終わる{~}戻る{~}もし{~}違えば{~}条件分岐
反復{~}繰り返す{~}ループ」#{~}間{~}回#文中に含まれる可能性のある語は除外
//「"”『``{{・/*##//'’※
囲み文字=`「
"
”
`&"『
`
`"&`
{
{
/*
・
#
#
//
'
’
※`
閉じ文字=`」"”`&"』``"&`}}`#*/
囲み文字数=要素数(囲み文字)
もし、モード=0なら
文字列囲み=『<span style="color:』&文字列色&『;">』
コメント囲み=『<span style="color:』&コメント色&『;">』
関数囲み=『<span style="font-weight : bold ; color :』&関数色&『;">』
項目囲み=『<span style="color :』&項目色&『;">』
記号囲み=『span』&(CHR(4))&『style="color:』&記号色&『;"』
数字囲み=『span』&(CHR(4))&『style="color:』&数字色&『;"』
助詞囲み=『span』&(CHR(4))&『style="color:』&助詞色&『;"』
特殊囲み=『span』&(CHR(4))&『style="color:』&特殊色&『;"』
違えば
文字列囲み=『<span class="nstr">』
コメント囲み=『<span class="ncomment">』
関数囲み=『<span class="function">』
項目囲み=『<span class="member">』
記号囲み=『span』&(CHR(4))&『class="nsign"』
数字囲み=『span』&(CHR(4))&『class="nnumber"』
助詞囲み=『span』&(CHR(4))&『class="particle"』
特殊囲み=『span』&(CHR(4))&『class="special"』
記号囲み=「{CHR(1)}{記号囲み}{CHR(2)}」
数字囲み=「{CHR(1)}{数字囲み}{CHR(2)}」
助詞囲み=「{CHR(1)}{助詞囲み}{CHR(2)}」
特殊囲み=「{CHR(1)}{特殊囲み}{CHR(2)}」
終了部分=「{CHR(1)}/span{CHR(2)}」
最初部分=「」
(ソース!=『』)の間
最小文字数=文字数(ソース)
番号=-1
囲み文字を反復
ソースで対象が何文字目。
もし、(それ<最小文字数)かつ(それ>0)なら
最小文字数=それ。
番号=回数-1
次囲み文字=対象。
#関数を探す
「●{~}■{~}*」を反復
ソースを"^\t* * *{対象}"で正規表現マッチ。
それ=それ\0
もし、(それ<>「」)かつ(何文字目(ソース,それ)<最小文字数)なら
番号=囲み文字数+回数-1
次囲み文字=対象。
#次の囲み文字を言う。
もし、番号=-1なら、抜ける。#囲み文字が見つからなかった場合。
ソースの次囲み文字までを切り取る。
それを記号色付け。
最初部分=最初部分&それ。
#囲み文字に応じて切り取り
もし、番号<=9ならば
もし、番号<=8ならば、
もし、番号=8ならば
次閉じ文字="*/"
違えば
次閉じ文字=MID(閉じ文字,番号+1,1)
違えば、
もし、(何文字目(ソース," "))<(何文字目(ソース,改行))ならば
次閉じ文字=" "
違えば
次閉じ文字=改行。
違えば、次閉じ文字=改行
もし、次閉じ文字=改行なら、
ソースの改行までを切り取る。
切り取り部分=「{次囲み文字}{それ}」
ソース=改行&ソース
違えば、
ソースの次閉じ文字までを切り取る。
切り取り部分=「{次囲み文字}{それ}{次閉じ文字}」
切り取り部分をHTML特殊文字変換。
もし、番号<6なら、最初部分=最初部分&文字列囲み&それ&『</span>』
違えば、もし、番号<9なら、最初部分=最初部分&コメント囲み&それ&『</span>』
違えば、もし、番号=9なら、最初部分=最初部分&項目囲み&それ&『</span>』
違えば、もし、番号<16ならば、最初部分=最初部分&コメント囲み&それ&『</span>』
違えば、最初部分=最初部分&関数囲み&それ&『</span>』
ソースを記号色付け。
完成文=最初部分&それ。
「<code>{完成文}</code>」を戻す。
●記号色付け(ソースを)
#yukさんに教えてもらった部分
//記号に色つけ
ソースの「([!-@!-@←→])」を「{記号囲み}$1{終了部分}」へ正規表現置換。
「{記号囲み}(\d){終了部分}」を「{数字囲み}$1{終了部分}」へ正規表現置換。
「(\D){終了部分}{記号囲み}」を「$1」へ正規表現置換。
「(\d){終了部分}{数字囲み}」を「$1」へ正規表現置換。
ソースはそれ。
助詞一覧を反復
ソースのそれを「{助詞囲み}{それ}{終了部分}」に置換。
ソースはそれ。
特殊文字を反復
ソースのそれを「{特殊囲み}{それ}{終了部分}」に置換。
ソースはそれ。
ソースをHTML特殊文字変換。
//タグの"#"," ","<",">"を元に戻す
それの(CHR(3))を"#"に置換。
それの(CHR(4))を" "に置換。
「{CHR(1)}」を「<」に置換。
「{CHR(2)}」を「>」に置換。
#/yukさんに教えてもらった部分
戻る。
●HTML特殊文字変換(ソースを)
ソースの「&」を「&」に置換。
「<」を「<」に置換。
「>」を「>」に置換。
# 「"」を「"」に置換
改行を「<BR>{改行}」に置換。
「{\t}」をタブ文字に置換。
「 」を「 」に置換
戻る。
----
- <!-- TOP NAV - BEGIN --> -- fwさん (2010-01-21 18:21:52)
- シフトJISでは全角と半角の並び順が異なるので、「記号色つけ」の「([!-@!-@←→])」は「([!-@、-〓])」の方がいいと思います。 -- tw (2010-12-30 12:42:49)
- でも、長音記号「ー」が記号扱いされているのが気になるので、「([!-@\[-^|~、-〇―-¶])」がいいかと。 -- tw (2010-12-30 12:49:55)
#comment()
----