HTML::SiteTear
What's HTML::SiteTear ?
Web サイトの一部分だけを抜き出すPerlスクリプト/モジュールです。
Web サイトのあるページには、そのサイト内のいろいろなところへリンク(ほかのページへのリンクだけではなく、画像やJavaScript、cascading style sheet)が張られていると思います。指定したページを指定された場所にコピーし、さらにその下にフォルダを作り、そのページが一つの独立した Web サイトとして成立するための全てのファイルをコピーします。
![](../../images/BeforeAfter.png)
ウェブサイトの一部を独立した配布可能な文書として扱いたい時に、お役に立てると思います。例えば、僕はこの文書をウェブサイトの一部として製作しておりますが、ウェブサイトから SiteTear を使って、独立した HTML 文書として配布パッケージにも含めております。
Requirements
- Perl 5.8
- MacOS X 10.5.6 の Perl 5.8.8 でテストしておりますが、OS に依存しない形でスクリプトを書いたつもりです。
- 必要な Perl モジュール(CPAN からインストールしてください)
- HTML::Parser 3.40 以降
- Class::Accessor
- URI
- HTML::Copy
Install
CPAN にも登録していますので、CPAN からインストールすることもできます。
インストールすべき Perl モジュールおよびコマンドラインツールはすべてフォルダ「Perl_Module」以下に配置されています。
Install SiteTear
をダブルクリックして起動してください。Terminal.app でインストールコマンドが実行されます。一部、管理者権限(sudo)でコマンドが実行されますので適宜パスワードを入力してください。
![](../images/install_on_terminal.png)
Perl モジュール「SiteTear.pm」(など)は、次の場所にインストールされます
/Library/Perl
以下に、コマンドラインツール「sitetear」は、次の場所にインストールされます
/usr/local/bin
How to use
ターミナルで以下のように以下のように実行します。
sitetear source_path target_path
例えば、~/Sites/
の中にweb siteが構築されていたとして、その中の
~/Sites/index.html
を関連するファイルを引き連れて
にコピーしたいとします。ターミナルで以下のように実行します。
sitetear ~/Sites/index.html ~/Documents/HTMLDoc/index.html
すると以下のように、source_path ファイルからリングが張られているファイルが全て target_path ファイル以下にコピーされて配置されます。HTMLファイルは、pages
というフォルダの中にコピーされ、それ以外のファイル(画像、CSS、JavaScriptなど)は assets
というフォルダ内に配置されます。
![](../../images/BeforeAfter.png)
History
- 1.4.5 -- 2016-02-08
- コピー先のファイル名が重複した時、後からコピーするファイルで上書きしてしまう不具合を修正。
- ファイル名が重複した時は、適当にファイル名を変更するようにしました。
- コピー先として、ディレクトリへの相対パスが与えられるとエラーが起きる不具合を修正。
- embed タグと param タグのサポートを追加。
- 属性の中のエンティティをデコードしないようにした。
- ソースコードのクリーンアップ。
- 1.4.4 -- 2009-05-17
- コピー元としてディレクトリの相対パスを設定するとエラーが発生する不具合を修正。
- 1.4.3 -- 2009-05-16
- コピー元としてディレクトリを指定できるようにした。
- ディレクトリに含まれている HTML ファイルが対象になります。
- 拡張子「.xhtml」のファイルを HTML ファイルとして扱うようにした。
- 出力先のファイルを開けないときのエラー処理を追加。
- 1.4.2 -- 2007.08.10
- fragment をもった URI を正しく処理しないことがある不具合を修正
- 1.4.1 -- 2007.08.08
- URI の fragment 部分(#〜) が抜け落ちる不具合を修正
- 1.4 -- 2007.06.04
- XHTML を正しく処理できるようにした。
- <base> タグによる base URI を考慮して処理するようにした。
- リンクの変換に File::Spec モジュールではなく URI モジュールを使うようにした。
- たぶん、Windows などでも動作するようになったと思います(未確認)。
- 1.3 -- 2007.03.09
- CPAN に登録した。
- 一部 モジュールのインターフェースを変更
- HTML ファイルの encoding を考慮した処理を行うようにした。
- 1.2.3 -- 2006.08.15
- ファイルを重複してコピーしてしまうことがある不具合を修正
- 1.2.2 -- 2006.04.26
- 存在しないファイルへのリンクがあったら die するようにした。
- 絶対パスのリンクがあるとエラーが起きる不具合を修正
- CSS 中に画像へのリンクがあると、エラーが起きることがある不具合を修正
- 1.2.1 -- 2006.01.15
- リンクの変換を間違えることがある不具合を修正
- コマンドラインツール sitetear のオンラインヘルプ(--help, --man オプション)を追加。
- コマンドラインツール sitetear でコピー先として directory を受け付けるようにした。
- インストーラ を UniversalBinary 化
- 1.2 -- 2006.01.03
- 徹底的に書き直した
- CSS 内の リンクにも対応した。
- 1.1 -- 2004.03.25(未公開)
- 対象とするHTMLを基準として、それ以下の階層のファイルはフォルダ構造をできるだけ保持するようにした。
- 1.0 -- 2003.05.01
|
This page was last built on Thu, Feb 24, 2011 ; 2:53:36 PM . Thanks for checking it out! |