★ソース高速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特殊文字変換(ソースを)
 ソースの「&」を「&」に置換。
 「<」を「<」に置換。
 「>」を「>」に置換。
# 「"」を「&quot;」に置換
 改行を「<BR>{改行}」に置換。
 「{\t}」をタブ文字に置換。
 「 」を「&nbsp;」に置換

 戻る。


  • <!-- 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)
名前:
コメント:


タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年12月30日 12:49
ツールボックス

下から選んでください:

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