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?
御清聴
ありがとうございました

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

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