VBSで書いてみたインデント一括削除ツール

カテゴリー:ウェブ, ツール, ライティング 投稿日:

「Webライター」だろうがなんだろうが、ソースコードの状態で文章を読み書きできることは、電子文書の編集に関わる以上、最低限当たり前のスキルだと思っています。

ただ、そうは言っても人の書いたソースをいじるのはやっぱり面倒なもので…特に、divやらテーブルやらの入れ子が多い下手くそなソースをいじるのは、いくら工賃上乗せしてもらっても気分が悪いものです。

それでもhtmlソースなら、オーサリングツールにぶち込めば最悪なんとかなるわけですが、デタラメに作られたスクリプトとか、そのテンプレートファイルに記載されたテキストまで見なければならないときなんかは、仕事の半分以上を「デコード」作業が占めてしまったりもします。

そんなとき、htmlにしろ、スクリプト言語にしろ、正規の教育を受けてきた訳でない僕にとって、本当に邪魔くさいのが各行のインデントです。

命令の階層をわかりやすくすると言う意味では重要なのでしょう、でも…たかが数十~2、3百行ぐらいのソースでインデントしなきゃならない理由が本当にあるんだろうか?その分の文字をコメントにあてた方がマシじゃないだろうか?

データベースのデータとして使うXMLファイルなんかはインデントを使って記述を階層化した方がわかりやすいかもしれませんが、少なくともWebコンテンツのhtmlソースでは、インデントではなく空白行で「切れ目」やら「論理階層」を表現する方が「文章をマークアップしたもの」として読みやすいはずです。見た目にも美しいと思うし。

何より、僕が請ける仕事の傾向としては、オーサリングツールに頼って激しくインデントされたソースに限って、インテントがちっとも正規的でない上、htmlの記述もデタラメだったりするから、本当に困ったちゃんなのです。
(尤も、たいそう偉そうなことを書いておいて、このブログのソースには、大変いい加減な感じでインデントが残っていますが…)

まあ、そんなこんなで、サイト丸ごとの編集をお受けするような案件では、出来るだけhtmlソースのインデントを削って作業させてもらえるよう、依頼者側にいつもペコペコ頭を下げています。構文ミスを見つけるのも、その後の保守も楽になるので。

別に削るのは簡単。改行+半角スペース、改行+タブ文字を、検索置換で消していくだけ。DreamWeaverはじめ、複数ページを管理できるエディタがあれば、1サイト3分もかからないうちにすっかり綺麗になります。

ただねぇ、そんな単純な検索置換の為に、DreamWeaverのようなちゃんとしたソフトを使うのって、貧乏ライターとしては実に勿体ない気がする訳ですよ。

…いつものように回りくどくなりましたが、ようやく本題。
結構高度なテキスト処理を必要とするお仕事が舞い込んできて、どうにもデスクトップで動くツールを自作しなければならなくなったので、WSHプログラミングの練習として、インデントを一括消去するスクリプトをザックリ書いてみました。

インデントイレーサーインデントイレーサー (lzh圧縮,8KB)

Windows2000/XPでしか動作確認していませんが、ちゃんと動いているようなので、ご入り用の方はどうぞお試し下さい(いちおう、ご使用は自己責任で)。


ちなみにこのスクリプト、元はWSF形式-VBScriptで書いたものなんですが、Katsumiさんという方が公開しているフリーウェア「MakeExe」を使わせていただき、見事にEXEファイルになっています。

アイコンも独自のものに換えているので、ぎりぎり「アプリケーション」らしくまとまっているのではないかな、と。ソースもあらかじめ「Windows Script Encoder」で暗号化しているので、プログラム初級者の僕でも安心して、スクリプトを「オマケ納品」できます。

振り返れば、ファイルの整形とか、表記揺れの校正とか、データの抽出・マージとか、文字列処理の自動化で楽になるお仕事って結構多いです。これぐらいのスクリプトを作っておけば、あとは何でもその応用なので、いろいろ改造して使い廻してやる予定。




スポンサード リンク