手順3(Regex)いよいよ仕上げ。手順2の準備は、ここで使われます。ライブラリから「Regex」を選択し、配置します。手順1のFetchPageをRegexに連結。alt属性をシンプルに置換。その後、alt属性とclass属性の組み合わせによって手順2で作っておいた値と置換。結果、サイズ指定の入った個別のHTMLが完成しました。今回、Regexで新たな表現を使ってます。「”iPhone.*?”」という表現。「?」があるか無いかで結果が変わってきます。通常「.*”」とした場合、該当文字列の最後に登場する「”」がヒットしてしまいます。alt属性だけでなく、class属性も含めて変換されてしまうのです。「?”」とした場合には、最初に現れる「”」がヒット、つまりalt属性だけの変換が実現するのです。シンプルになったalt属性にclass属性が付き、最後にwidth属性が追加されました。親のPipeの中で子供のPipeを呼ぶかなり長いエントリーになってきた...。飛ばし気味で説明します。完成した親のPipeは「講座09」という名前にしました。講座09(ScreenShots)手順4(URLInput、ItemBuilder)入力値であるURLをitemに変換し、スクショを取得する直前の状態にします。Builder」を選択し、配置します。ここまでは難しい部分は無く、入力値がitem.urlになっただけ。今回は意図的にItemBuilderを使いました。ここに深い意味があるのです。手順5(NumberInput、SimpleMath)子供のPipeを呼ぶ前に、子供のPipeに渡す値を準備します。入力値はiPhone縦サイズのpxとiPadスクショにした場合の比率。これらの2つの値から以下の4パターンのwidth値を作成します。前提としてスクショの縦横比率は2:3。Math」を選択し、配置します。作らなければならないのは「iPhone縦幅」意外の3つ。NumberInputの値に対し、SimpleMathのモジュールは単純に四則演算をしてくれるんです。上記は左から順に「iPhone横幅」「iPad縦幅」「iPad横幅」を計算してます。手順6(Loop、MyPipes、Rename)いよいよ子供のモジュールをLoopで呼んで親にマッピングしていきます。先ほど手順4でわざわざItemBuilderを作ったのは、Loopがスタートモジュールとして使えないから...。Loopはベースとなるメインの流れがあった中でしか使えないという制約があるのです。いうことで今回は強引にItemBuilderでメインの流れを作り、そのメインの流れにLoopで子供のPipeの結果をぶら下げてimage1からimage5を作っていくようにしました。ライブラリから「Loop」「子供のPipe」「Rename」を選択し、配置します。子供のPipeに渡す値は、手順4と手順5で作った値を使います。urlには「item.url」をセットし、その他の値は手順5の結果と紐付けます。all」でitem.loopの直下に全件取ってくるように設定しました。デバッガーでRenameする前の状態は上記な感じ。urlと同じレベルにloopがあり、その下に0から4までのスクショが並んでます。この状態でRenameでurlと同じレベルにloopの下の値を移動します。上記のRenameモジュールの通りに設定してみて下さい。デバッガーでRenameした後の状態は上記な感じ。urlと同じレベルにimage1からimage5までが並びます。これがやりたかったこと。Loopの下にスクショが3枚しか無かったとしたら、自動的にimage4とimage5は空になるのでitemから消えます。手順7(Regex)締めはitem.loopを空にするだけ。ライブラリから「Regex」を選択し、配置します。以上で講座09のPipeは完成です。あとがき...今回は概念的に今までで一番難しかったかも...。Pipeのテクニックも必要なんですが、どうやって元サイトの法則を把握し、それをPipeで取ってくるように表現するか。やりごたえがあったんじゃないかなぁと。ここで、次回の予告をしておきます。次回の講座10は、講座09が理解できてればPipe自体は簡単です。アイコンを取ってくるPipeを作ります。講座09の理解度を試す意味で、次回までに挑戦してみて下さい!一応、答えを紹介しときます。講座10(AppIcon)尚、講座10では、その他のトピックとして、これまで使ってきた「Regex」の中の正規表現をまとめておこうと思ってます。乞うご期待!全般を通じて、こうやって欲しいとか要望があればTwitterやコメントにてご指摘下さい。今後のカリキュラムですが、以下の構成で進めていきます。←今ココ講座10(良く使う正規表現まとめ)講座11(MyPipeの可読性の向上)講座12(Javascriptとの連携)いよいよ残すは3回。12:06何時もご参考にさせて頂いています。pipeで質問があります。Out]なのですが、取得した結果からimageタグ等の特定のタグかたまりを排除する方法は有るのでしょうか?宜しくご教授願います。RSS検索このサイトについて普通のサラリーマンの普通なiPhone日記です。アプリの感想とかiPhoneを使うことで加わった習慣など気の向くままに記録してみようと思います。最近、はてなからWordpressに引っ越しました。iPhoneに最適化されたBlogを作りたかったので...。TwitterのIDはhiro45jpです。お気軽にFollow/Removeして下さいな。【近況】Bookmarkletを見直してます...。本日朝、開発チームより対応完了したとの報告を受けました。お手数ですが、再度試して頂ければと思います。今後とも宜しくお願いします。詳細なご説明ありがとうございます。本件、既にチーム内で情報を共有し、対処に向けて動き出しています。ご不便をおかけしますが、少々お待ち下さいまし。今後とも変なところがあれば、ご指摘お願いします。