yesod でブログエンジンをつくってみた
TRANSCRIPT
Yesod で Blog Engine
をつくってみた@mr_konn
自己紹介• @mr_konn
• 数学科三年
• auehtnticate-oauth / yesod-auth-oauth メンテナ
• ブログ:http://blog.konn-san.com
• Powered by Yesod & Mighty
• これ作ったときの話します
Yablog: Yet Another Blog-engine
Yablog: Yet Another Blog-engine• ブログとして一通りの機能
Yablog: Yet Another Blog-engine• ブログとして一通りの機能
• 複数人執筆 / コメント / トラックバック /
Real Time Preview / タグ / フィード / コメント通知
Yablog: Yet Another Blog-engine• ブログとして一通りの機能
• 複数人執筆 / コメント / トラックバック /
Real Time Preview / タグ / フィード / コメント通知
• ウェブサービスとの連携
Yablog: Yet Another Blog-engine• ブログとして一通りの機能
• 複数人執筆 / コメント / トラックバック /
Real Time Preview / タグ / フィード / コメント通知
• ウェブサービスとの連携
• Social:Twitter / はてブ / はてスタ / G+ / いいね!
Yablog: Yet Another Blog-engine• ブログとして一通りの機能
• 複数人執筆 / コメント / トラックバック /
Real Time Preview / タグ / フィード / コメント通知
• ウェブサービスとの連携
• Social:Twitter / はてブ / はてスタ / G+ / いいね!
• Google CSE / Google Analytics / Amazon Associates
Yablog: Yet Another Blog-engine• ブログとして一通りの機能
• 複数人執筆 / コメント / トラックバック /
Real Time Preview / タグ / フィード / コメント通知
• ウェブサービスとの連携
• Social:Twitter / はてブ / はてスタ / G+ / いいね!
• Google CSE / Google Analytics / Amazon Associates
• 多くのマークアップ言語、 Syntax Colouring をサポート
Yablog: Yet Another Blog-engine• ブログとして一通りの機能
• 複数人執筆 / コメント / トラックバック /
Real Time Preview / タグ / フィード / コメント通知
• ウェブサービスとの連携
• Social:Twitter / はてブ / はてスタ / G+ / いいね!
• Google CSE / Google Analytics / Amazon Associates
• 多くのマークアップ言語、 Syntax Colouring をサポート
• MathJax による美しい数式
欲しい機能は、一通り。
欲しいものは作ろう!
作るのは大変……?
そんなことはない!
つかったもの
つかったもの• Yesod
つかったもの• Yesod
• Google Analytics は最初からサポート
つかったもの• Yesod
• Google Analytics は最初からサポート
• 非同期版には書き換えました。
つかったもの• Yesod
• Google Analytics は最初からサポート
• 非同期版には書き換えました。• Newsfeed の生成や国際化も楽チン
つかったもの• Yesod
• Google Analytics は最初からサポート
• 非同期版には書き換えました。• Newsfeed の生成や国際化も楽チン
• 認証機構も好きなものを使える
つかったもの• Yesod
• Google Analytics は最初からサポート
• 非同期版には書き換えました。• Newsfeed の生成や国際化も楽チン
• 認証機構も好きなものを使える• Yablog ではそのまま Google か BrowserId
つかったもの• Yesod
• Google Analytics は最初からサポート
• 非同期版には書き換えました。• Newsfeed の生成や国際化も楽チン
• 認証機構も好きなものを使える• Yablog ではそのまま Google か BrowserId
• HashDB とかのがよかったかなぁ。
つかったもの(続)
つかったもの(続)• Pandoc
つかったもの(続)• Pandoc
• Markdown (+lhs) / ReST / HTML / TeX…
つかったもの(続)• Pandoc
• Markdown (+lhs) / ReST / HTML / TeX…
• マークアップのパーズ&HTML整形に
つかったもの(続)• Pandoc
• Markdown (+lhs) / ReST / HTML / TeX…
• マークアップのパーズ&HTML整形に
• HTML はYesodと共通の blaze を利用
つかったもの(続)• Pandoc
• Markdown (+lhs) / ReST / HTML / TeX…
• マークアップのパーズ&HTML整形に
• HTML はYesodと共通の blaze を利用
• highlighting-kate
つかったもの(続)• Pandoc
• Markdown (+lhs) / ReST / HTML / TeX…
• マークアップのパーズ&HTML整形に
• HTML はYesodと共通の blaze を利用
• highlighting-kate
• シンタックスカラーリング。
つかったもの(続)• Pandoc
• Markdown (+lhs) / ReST / HTML / TeX…
• マークアップのパーズ&HTML整形に
• HTML はYesodと共通の blaze を利用
• highlighting-kate
• シンタックスカラーリング。
• Yablog では直接叩いていますが、Pandoc からも叩ける。
Amazon Associates
• Pandoc + SYB の威力
• URL を見付けたら Amazon かどうか判定、自動でアフィリンク化
つかったもの
つかったもの• MongoDB
つかったもの• MongoDB
• バックエンド。モダン!
つかったもの• MongoDB
• バックエンド。モダン!
• Day や TimeOfDay をそのままでは保存できないので注意!
つかったもの• MongoDB
• バックエンド。モダン!
• Day や TimeOfDay をそのままでは保存できないので注意!
• auth の掛かったDBにアクセス出来ない?
つかったもの
• Bootstrap
• お手軽に Twitter モドキのWeb UI を!
• 最新の Yesod からは同梱……?
つかったもの
つかったもの
• Mighty
• @kazu_yamamoto さんのHTTPサーバ
• Reverse Proxy を使ってサブドメインで運用している
今後の予定• トラバ飛ばす機能
• 面倒なので作ってなかった^^;
• 画像の埋め込み
• どこにどう保存すべき?
• JavaScript 重いのを何とかする
• 適当に突っ込んだら読み込みが凄く遅い……。
• UST以外の時間帯のサポート
配布場所
• レポジトリ:http://gitweb.konn-san.com/
repo/Yablog/tree/master
• このレポジトリも Yesod アプリ
• まだ発展途上なので、要望があれば
GitHub の方にもレポ作ります
まとめ
• Haskell には沢山のライブラリがある
• 組み合わせているといつの間にか完成している
• 欲しいものを作れる!
Any Questions?
御清聴ありがとうございました