yesod でブログエンジンをつくってみた

44
Yesod Blog Engine をつくってみた @mr_konn

Upload: hiromi-ishii

Post on 29-Jan-2018

3.612 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Yesod でブログエンジンをつくってみた

Yesod で Blog Engine

をつくってみた@mr_konn

Page 2: Yesod でブログエンジンをつくってみた

自己紹介• @mr_konn

• 数学科三年

• auehtnticate-oauth / yesod-auth-oauth メンテナ

• ブログ:http://blog.konn-san.com

• Powered by Yesod & Mighty

• これ作ったときの話します

Page 3: Yesod でブログエンジンをつくってみた

Yablog: Yet Another Blog-engine

Page 4: Yesod でブログエンジンをつくってみた

Yablog: Yet Another Blog-engine• ブログとして一通りの機能

Page 5: Yesod でブログエンジンをつくってみた

Yablog: Yet Another Blog-engine• ブログとして一通りの機能

• 複数人執筆 / コメント / トラックバック /

Real Time Preview / タグ / フィード / コメント通知

Page 6: Yesod でブログエンジンをつくってみた

Yablog: Yet Another Blog-engine• ブログとして一通りの機能

• 複数人執筆 / コメント / トラックバック /

Real Time Preview / タグ / フィード / コメント通知

• ウェブサービスとの連携

Page 7: Yesod でブログエンジンをつくってみた

Yablog: Yet Another Blog-engine• ブログとして一通りの機能

• 複数人執筆 / コメント / トラックバック /

Real Time Preview / タグ / フィード / コメント通知

• ウェブサービスとの連携

• Social:Twitter / はてブ / はてスタ / G+ / いいね!

Page 8: Yesod でブログエンジンをつくってみた

Yablog: Yet Another Blog-engine• ブログとして一通りの機能

• 複数人執筆 / コメント / トラックバック /

Real Time Preview / タグ / フィード / コメント通知

• ウェブサービスとの連携

• Social:Twitter / はてブ / はてスタ / G+ / いいね!

• Google CSE / Google Analytics / Amazon Associates

Page 9: Yesod でブログエンジンをつくってみた

Yablog: Yet Another Blog-engine• ブログとして一通りの機能

• 複数人執筆 / コメント / トラックバック /

Real Time Preview / タグ / フィード / コメント通知

• ウェブサービスとの連携

• Social:Twitter / はてブ / はてスタ / G+ / いいね!

• Google CSE / Google Analytics / Amazon Associates

• 多くのマークアップ言語、 Syntax Colouring をサポート

Page 10: Yesod でブログエンジンをつくってみた

Yablog: Yet Another Blog-engine• ブログとして一通りの機能

• 複数人執筆 / コメント / トラックバック /

Real Time Preview / タグ / フィード / コメント通知

• ウェブサービスとの連携

• Social:Twitter / はてブ / はてスタ / G+ / いいね!

• Google CSE / Google Analytics / Amazon Associates

• 多くのマークアップ言語、 Syntax Colouring をサポート

• MathJax による美しい数式

Page 11: Yesod でブログエンジンをつくってみた

欲しい機能は、一通り。

Page 12: Yesod でブログエンジンをつくってみた

欲しいものは作ろう!

Page 13: Yesod でブログエンジンをつくってみた

作るのは大変……?

Page 14: Yesod でブログエンジンをつくってみた

そんなことはない!

Page 15: Yesod でブログエンジンをつくってみた

つかったもの

Page 16: Yesod でブログエンジンをつくってみた

つかったもの• Yesod

Page 17: Yesod でブログエンジンをつくってみた

つかったもの• Yesod

• Google Analytics は最初からサポート

Page 18: Yesod でブログエンジンをつくってみた

つかったもの• Yesod

• Google Analytics は最初からサポート

• 非同期版には書き換えました。

Page 19: Yesod でブログエンジンをつくってみた

つかったもの• Yesod

• Google Analytics は最初からサポート

• 非同期版には書き換えました。• Newsfeed の生成や国際化も楽チン

Page 20: Yesod でブログエンジンをつくってみた

つかったもの• Yesod

• Google Analytics は最初からサポート

• 非同期版には書き換えました。• Newsfeed の生成や国際化も楽チン

• 認証機構も好きなものを使える

Page 21: Yesod でブログエンジンをつくってみた

つかったもの• Yesod

• Google Analytics は最初からサポート

• 非同期版には書き換えました。• Newsfeed の生成や国際化も楽チン

• 認証機構も好きなものを使える• Yablog ではそのまま Google か BrowserId

Page 22: Yesod でブログエンジンをつくってみた

つかったもの• Yesod

• Google Analytics は最初からサポート

• 非同期版には書き換えました。• Newsfeed の生成や国際化も楽チン

• 認証機構も好きなものを使える• Yablog ではそのまま Google か BrowserId

• HashDB とかのがよかったかなぁ。

Page 23: Yesod でブログエンジンをつくってみた

つかったもの(続)

Page 24: Yesod でブログエンジンをつくってみた

つかったもの(続)• Pandoc

Page 25: Yesod でブログエンジンをつくってみた

つかったもの(続)• Pandoc

• Markdown (+lhs) / ReST / HTML / TeX…

Page 26: Yesod でブログエンジンをつくってみた

つかったもの(続)• Pandoc

• Markdown (+lhs) / ReST / HTML / TeX…

• マークアップのパーズ&HTML整形に

Page 27: Yesod でブログエンジンをつくってみた

つかったもの(続)• Pandoc

• Markdown (+lhs) / ReST / HTML / TeX…

• マークアップのパーズ&HTML整形に

• HTML はYesodと共通の blaze を利用

Page 28: Yesod でブログエンジンをつくってみた

つかったもの(続)• Pandoc

• Markdown (+lhs) / ReST / HTML / TeX…

• マークアップのパーズ&HTML整形に

• HTML はYesodと共通の blaze を利用

• highlighting-kate

Page 29: Yesod でブログエンジンをつくってみた

つかったもの(続)• Pandoc

• Markdown (+lhs) / ReST / HTML / TeX…

• マークアップのパーズ&HTML整形に

• HTML はYesodと共通の blaze を利用

• highlighting-kate

• シンタックスカラーリング。

Page 30: Yesod でブログエンジンをつくってみた

つかったもの(続)• Pandoc

• Markdown (+lhs) / ReST / HTML / TeX…

• マークアップのパーズ&HTML整形に

• HTML はYesodと共通の blaze を利用

• highlighting-kate

• シンタックスカラーリング。

• Yablog では直接叩いていますが、Pandoc からも叩ける。

Page 31: Yesod でブログエンジンをつくってみた

Amazon Associates

• Pandoc + SYB の威力

• URL を見付けたら Amazon かどうか判定、自動でアフィリンク化

Page 32: Yesod でブログエンジンをつくってみた

つかったもの

Page 33: Yesod でブログエンジンをつくってみた

つかったもの• MongoDB

Page 34: Yesod でブログエンジンをつくってみた

つかったもの• MongoDB

• バックエンド。モダン!

Page 35: Yesod でブログエンジンをつくってみた

つかったもの• MongoDB

• バックエンド。モダン!

• Day や TimeOfDay をそのままでは保存できないので注意!

Page 36: Yesod でブログエンジンをつくってみた

つかったもの• MongoDB

• バックエンド。モダン!

• Day や TimeOfDay をそのままでは保存できないので注意!

• auth の掛かったDBにアクセス出来ない?

Page 37: Yesod でブログエンジンをつくってみた

つかったもの

• Bootstrap

• お手軽に Twitter モドキのWeb UI を!

• 最新の Yesod からは同梱……?

Page 38: Yesod でブログエンジンをつくってみた

つかったもの

Page 39: Yesod でブログエンジンをつくってみた

つかったもの

• Mighty

• @kazu_yamamoto さんのHTTPサーバ

• Reverse Proxy を使ってサブドメインで運用している

Page 40: Yesod でブログエンジンをつくってみた

今後の予定• トラバ飛ばす機能

• 面倒なので作ってなかった^^;

• 画像の埋め込み

• どこにどう保存すべき?

• JavaScript 重いのを何とかする

• 適当に突っ込んだら読み込みが凄く遅い……。

• UST以外の時間帯のサポート

Page 41: Yesod でブログエンジンをつくってみた

配布場所

• レポジトリ:http://gitweb.konn-san.com/

repo/Yablog/tree/master

• このレポジトリも Yesod アプリ

• まだ発展途上なので、要望があれば

GitHub の方にもレポ作ります

Page 42: Yesod でブログエンジンをつくってみた

まとめ

• Haskell には沢山のライブラリがある

• 組み合わせているといつの間にか完成している

• 欲しいものを作れる!

Page 43: Yesod でブログエンジンをつくってみた

Any Questions?

Page 44: Yesod でブログエンジンをつくってみた

御清聴ありがとうございました