S3でブログの最近の投稿みたいなものを再現する方法

# S3でブログの最新の投稿を表示した話

# <i class="fa fa-bookmark" aria-hidden="true"></i> 結論
[Feed43](https://feed43.com/)で rss を配信して、
[FeedWind](https://feed.mikle.com/ja/)でブログパーツにしてくっつけた話です

## <i class="fa fa-cubes"></i> 対象者

私の前回の投稿
[S3でWordpressブログを表示した話](http://xhift.com/blog/tech/blog-on-s3-by-wordpress/)
では、対象者をS3で既にサイトを運用していて、さらにブログを運用したい方、としていました。
この状況で、せっかくブログを書いたのであれば、こんなブログがあって投稿してますよ、というのを自動でサイトの方に表示したくなるわけです。
それを実現したい方になります。

こんな感じになります。
![feedwind.png](https://qiita-image-store.s3.amazonaws.com/0/77891/2ae43a4c-2bc8-a3a4-e21e-ebd458ad0730.png)


# <i class="fa fa-bookmark" aria-hidden="true"></i> 全体像
1. Feed43
2. FeedWind

## <i class="fa fa-cubes"></i> 1. Feed43
![feed43.png](https://qiita-image-store.s3.amazonaws.com/0/77891/01145da7-97de-b640-b0bd-b5304eaeb00e.png)

[Feed43](https://feed43.com/) は無料で使える、RSSを配信できるサイトです。
あるページのパターンを認識させると、それをXMLとして公開してくれます。

### <i class="fa fa-cube"></i> 1.1 使い方
まずは CreateAccount でアカウントを作成します
その後 Create your own feed でフィード作成に取り掛かります。

ここからが本番です

### <i class="fa fa-cube"></i> 1.2 Specify source page address (URL)
まずはURLの指定をします。
これは問題ないのではないかと思います。

![Feed43-Step1-1.png](https://qiita-image-store.s3.amazonaws.com/0/77891/9737d474-d3e1-3849-67e9-2abc9186c28d.png)

成功すれば以下のようにHTMLが読み込まれます

![Feed43-Step1-2.png](https://qiita-image-store.s3.amazonaws.com/0/77891/ed479a64-2c85-a0ba-6e90-afe587b252bd.png)

### <i class="fa fa-cube"></i> 1.3 Define extraction rules
パターンの定義部分です。

![Feed43-Step2-1.png](https://qiita-image-store.s3.amazonaws.com/0/77891/1c10c814-1f28-4a63-06b5-55f26a6e14f3.png)

##### <i class="fa fa-key"></i> 1.3.1 Global Search Pattern の指定
これは {%} で良いんじゃないですかね。

##### <i class="fa fa-key"></i> 1.3.2 Item (repeatable) Search Pattern
探査パターンの指定部分です。
[?] の部分にカーソルを当ててみるとチュートリアルが見れるのでそれが参考になります。
http://feed43.com/tutorial.html

基本的には {%} と {\*} さえ使えればなんとかるかと思います。
チュートリアルの例で言えば、
&lt;h1&gt;{%}&lt;/h1&gt;{\*}&lt;div class="content"&gt;{%}&lt;/div&gt;
のようにすると、{%}の部分が後で参照出来るようになります。
{\*}の部分はスキップされます。

ここだけだと簡単な気がしますが、落とし穴がありまして、
例えば
\<a href="[http://xhift.com]()"\>\</a&gt;
を切り取る場合はおそらく &lt;a>タグをまるごと切り取らないといけないっぽいです。
そこに気をつければ難しいことはないかと思います。

成功していればこのようにリストアップの結果が表示されます。

![Feed43-Step2-2.png](https://qiita-image-store.s3.amazonaws.com/0/77891/a28aab53-ca70-a8fa-ca25-da03c52945b8.png)

### <i class="fa fa-cube"></i> 1.4 Define output format
最後のステップ、出力の指定です。
![Feed43-Step3-1.png](https://qiita-image-store.s3.amazonaws.com/0/77891/fe7dbb58-cb89-18ed-2603-34b7d16b9bdc.png)

Step 2で{%}で指定したものがここで参照可能です。
{%1}は１つめの{%}で指定したものが参照できます。

あとは Preview で見てみて、期待通りの内容が出ていれば完了です。

![Feed43-Step3-2.png](https://qiita-image-store.s3.amazonaws.com/0/77891/bd710913-25c3-e66e-6586-81cb7f5929f1.png)

### <i class="fa fa-cube"></i> 1.5 Get your RSS feed
![Feed43-Step4.png](https://qiita-image-store.s3.amazonaws.com/0/77891/7e593165-6864-35b4-0026-02dd606431cc.png)

エラーが起きていなければ Feed URL is ... のところでURLが取得出来ます。
これは後ほど使うのでメモしておきましょう。

ちなみにここまでの設定の保存ボタンなどはありません。
Preview等を見た際に自動で保存されます。

## <i class="fa fa-cubes"></i> 2. FeedWind
![FeedWindLogo.png](https://qiita-image-store.s3.amazonaws.com/0/77891/93079a3c-7602-4f80-7a0d-4ce9e68b9884.png)

こちらはXMLで配信されているRSSをブログパーツにしてくれるサービスです。
日本語対応もされているのでこちらは困らないかと。
URL入れた時点で右の方にパーツの表示がされるのでちゃんと動作するかどうかはそこで確認出来ます。
XMLの方の反映が遅れている事もあるので少し時間を置いてからの方が良いかもしれません。

問題が無ければ右上の「保存してコードを取得する」を押して出てくるHTMLを
埋め込みたい場所に記述するだけです。
![FeedWindCap.png](https://qiita-image-store.s3.amazonaws.com/0/77891/3addce04-fba8-a6e5-755c-a34fbe4827fb.png)

実際の反映された状況は
[http://xhift.com/bonopri/](http://xhift.com/bonopri/)
でみることが出来ます。

この内容は
[@xhift(ブログ)](http://xhift.com/blog/) でも投稿されております。

---
お仕事募集しております
[株式会社xhift](http://xhift.com/)

北千住でコワーキングスペースも運営しております
[Bono Prince(ぼのプリ)](http://xhift.com/bonopri/)

---