前振り:htmlconv.plを作りました
[Index]
 + 前フリ:htmlconv.plを作りました
 + 本スクリプトの目的と特徴
 + 動作環境
 + 使用方法
 + カスタマイズ
 + 今後の予定
 + 免責について
 + 著作権、利用について
 + 作成履歴

前振り:htmlconv.plを作りました

 ・今回はperlスクリプトとして、TxtファイルをHtmlへ変換するスクリプトを作ってみま
  した。
 
 ・スクリプトとドキュメントをセットにしたファイルは以下からダウンロードできます。
    htmlconv20030707.lzh (download:11kbyte)[2003/07/07版]
    htmlconv20030702.lzh (download:11kbyte)
 
 ・しかし、見ればわかるように公開するようなスクリプトでも何でもありません。Perl
  をちょっとでも触ったことがあれば「こんなの自分でも作れる」と思われるでしょう。
 
 ・本題は、スクリプト自身にある訳ではありません。この後の説明を読んでいただくと
  わかると思いますが、本スクリプトに関して今後の改良点を挙げ、「少しずつ改良す
  る」と宣言しています。
 
 ・真の本題は「改良コードの管理をどうするか」です。次回「管理」に関するネタを
  [IT全般]カテゴリにて扱う予定
です。今回はその種を植える位置付けです。
 
 ・といった訳で、まずは「前振り」として、以下の説明文に目を通すか、スクリプトで
  遊んでみて下さい。次回の本題ネタをお楽しみに。
  

--------------------------------------------------------------------------------
以下、スクリプトのドキュメント
--------------------------------------------------------------------------------

+==============================================================+
| テキスト→HTMLコンバータ Perlスクリプト           |
| htmlconv.pl                         |
| Coded by Monpe                        |
+--------------------------------------------------------------+
| Revision Date                        |
| * 2003/07/02 : Special Func. Implement : First Release Rev. |
+==============================================================+

本スクリプトの目的と特徴

 ・htmlconv.plは、txtファイルをhtmlファイルへ変換するPerlスクリプトです。以下の
  2点を特徴とします。
   ----------------------------------------------------------------------
   (1)オリジナルtxtファイルと全く同じ体裁でhtml変換を行います。
   (2)指定文字列で始まる行を「Index行」と見なし、自動で目次を作成します。
   ----------------------------------------------------------------------
 
 ・例えば、空白インデントに意味のあるファイル、プログラムのソースコードをhtml
  変換するケース等を想定しています。(変換結果:添付のhtmlconv.html)

   (例) // SampleはC++のコードですが
      #include <iostream>
      using namespace std;
     
      int main() {
        cout << "Hello World" << endl;
        return 0;
      }

  
 ・その他、下記のようにASCIIキャラとスペースで記述した簡易図を含むテキストファ
  イルの変換にも威力を発揮します。(変換結果:添付のhtmlconv.html)

   (例)┌──┐ 32 ┌───┐  32
     │CPU ┝━/━┥North ┝┳━/━> PCI_BUS
     └──┘   │Bridge│┃ 32
            └───┘┣━/━> MEM
                 ┃ 32 ┌───┐  16
                 ┗━/━┥South ├┬─/─> IDE
                    │Bridge││ 16
                    └───┘└─/─> Multi_I/O


動作環境
 
 ・日本語に対応したPerl環境での動作を想定しています。現在(2003/7/1)のところ、日
  本語に対応したPerl環境と言えば、以下の2種が代表的なものです。
  
   (1)perl v5.8.0 build 806
   ~~~~~~~~~~~~~~~~~~~~~~~~
    + 2002/07/18にReleaseされたperl v5.8.0は直接日本語を扱えるようです。
    
    + 以下のURLより各環境(Windows/Solaris/Linux)のbinary packageを入手可能。
      http://www.activestate.com/Products/ActivePerl/
      
    + 安定versionとしては最新のPerl環境です。こちらがお勧めです。

   (2)perl v5.005_03 build 522 + jperl 5.005_03-990822
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + こちらの環境を利用している方も多いと思います。
    
    + perlのWin版binaryとjperl Win32版binaryはそれぞれ下記より入手できます。
     * perl v5.005_03 build 522
      ftp://ftp.activestate.com/ActivePerl/Windows/5.005/Intel/APi522e.exe
     * jperl 5.005_03-990822
      http://homepage2.nifty.com/kipp/perl/jperl/win32/jperl522.zip
      
    + セットアップ方法は下記を参照下さい。
     * http://homepage2.nifty.com/kipp/perl/jperl/index.html
      (鈴木紀夫殿のHPです)
      
    + Solaris版/Linux版が必要な方は下記サイトにアクセスしてみて下さい。
     * http://www.context.co.jp/perlinfo/newest-info.html
      (コンテキスト殿のHPです)


使用方法

 ・htmlconv.pl 変換ソーステキストファイル名
 
 ・変換結果は標準出力(普通は画面)へ送られます。ファイル化したい場合はOSのリダイ
  レクト機能を利用して下さい。
  
   (例) htmlconv.pl sample.txt > sample.html
 
 ・尚、添付の「htmlconv.html」は、このファイル(htmlconv.txt)をhtmlconv.plで変換
  した結果です。
 
 ※Perlスクリプトの一般的な起動方法については説明を省きます。perlのセットアップ
  に関するドキュメントを参照下さい。


カスタマイズ

 ・スクリプト内のグローバル変数を変更することで付加機能カスタマイズが可能です。
  主な付加機能は以下の2種です。
   (1)インデックス文字列修飾指定
   (2)インデックス作成
 
 ・Perlスクリプトをある程度触れる方向けの機能なので、敢えてここでの詳細説明は省
  きます。スクリプト内のコメントを参照の上変更して下さい。


今後の予定

 ・現在のスクリプト(2003/07/01版)は、作者が最低限必要とする機能だけが実装されて
  います。
 
 ・今作者自身がこのスクリプトに感じている不満は、主に以下の4点です。
 
   (1)漢字コードがShiftJIS固定
     --> このテキストを書いているうちに気が付きました。アホなので最優先で直し
       たい。
     --> デフォルトはShiftJIS, コマンドラインオプションで他のコードを指定する
       ようにしたいと思います。

   (2)TABの変換
     --> 現在は規定の全角スペースに変換しているが、これだとTABで表構成してい
       るテキストが崩れてしまう。
     --> 今後はタブを含む文字列の解析をし、最適なスペースへ置換する機能を実装
       する。
  
   (3)Indexジャンプ機能が無い
     --> 今はインデックスが記述されているだけで、HTMLの特徴であるリンクが活用
       できていない。
     --> 作成したインデックスに自動でラベル付加し、ジャンプ機能を持たせる。
  
   (4)http: ftp:のURLへのリンク作成機能が無い
     --> HTMLにURLが記述されているのにリンクしてないのはすごく不自然。
     --> http://, ftp://, @マークを見て判断し、hrefタグの付加を行う。

 ・これらの不満点(他にもあるのですが)は、今後徐々に改善していく予定です。また修
  飾タグをスタイルシートへ移行することも予定の一つです。


免責について

 ・本スクリプト(htmlconv.pl)を使用したことにより生じた全ての結果について、作者
  (Monpe)は責を負いません。
 
 ・また本スクリプト(htmlconv.pl)の推奨環境構築で生じた全ての結果についても、作者
  (Monpe)は責を負いません。
 

著作権、利用について

 ・本スクリプト(htmlconv.pl)及び説明用ドキュメント(htmlconv.txt, htmlconv.html)
  の著作権は作者(Monpe)が保有します。(念のため書いておきます。著作権主張する価
  値は無いコードですけど。)
 
 ・免責と著作権に関する項目に同意頂ける限り、本スクリプトの利用/改変/配布は自由
  です。


作成履歴

 2003.06.26 : プロトタイプ版
 2003.07.02 : リリース版

[END]

[▲Perl Home▲]