2010/08/11

ClipboardでHTML形式を読み書きする

NILScriptには、クリップボードの読み書きを行うClipboardユニットが用意されています。
Clipboardユニットでは、単なるテキスト形式以外にも、ブラウザ上のWebページをコピーした時に格納されるHTML形式や、エクスプローラなどでファイルをコピーした時の形式なども操作できます。
これらの中でも特に役に立つのが、HTML形式の読み書きでしょう。

Webページの内容をコピーしてテキストエディタに貼り付けた場合、テキストとして表示されていなかったリンク先のURLなどは失われてしまいますが、ClipboardユニットのHTML形式読み取り機能を利用すれば、コピーされたHTMLを文字列として読み取ることが出来ます。
例えば、Webページ上のリンク集などをコピーした状態で以下のような式を使用すれば、コピーされたHTMLからリンクされていたURLを配列として抽出できます。

require("Clipboard").Clipboard.html.html.grep(/<a [^>]*href="([^"]*)"/i).map("1").toArray()

これを応用すれば「コピーした範囲にあるリンクを全て開く」などの機能を実現できます。
なお、grep()やmap()などは、SpiderMonkeyの「ジェネレータ」の拡張機能としてNILScriptで用意されているものです。詳細はNILScriptに同梱の「doc\base_stdex.txt」を参照してください。

また、以下のようにすれば、指定したHTMLをHTML形式としてクリップボードにコピーすることも出来ます。


require("Clipboard").Clipboard.html="<b>NILScript</b>"

これをブログの投稿画面などのWYSIWYG編集欄や、一部のワープロソフトなどに貼り付ければ、HTML内の文字装飾やレイアウト、リンクなどが反映されます。

これらの機能をHotstrokesなどと組み合わせて利用すれば、Webブラウジングや文書の編集などを効率化させられるでしょう。


0 件のコメント:

コメントを投稿