★ソース高速HTML化

「★ソース高速HTML化」の編集履歴(バックアップ)一覧に戻る
★ソース高速HTML化」を以下のとおり復元します。
*情報
作者名:fuji
引用元:[[なでしこプログラム掲示板「ソース高速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特殊文字変換(ソースを)
  ソースの「&」を「&」に置換。
  「<」を「<」に置換。
  「>」を「>」に置換。
 # 「"」を「&quot;」に置換
  改行を「<BR>{改行}」に置換。
  「{\t}」をタブ文字に置換。
  「 」を「&nbsp;」に置換
 
  戻る。

----
#comment()

----

復元してよろしいですか?

ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。