Hakyllで遊んでみた。

2,240 views
2,050 views

Published on

広島Ruby勉強会 #031 での LT。 最初のセッションの資料でHakyll を使ってみたのだけどその時のメモ。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,240
On SlideShare
0
From Embeds
0
Number of Embeds
394
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Hakyllで遊んでみた。

  1. 1. Hakyllで遊んでみた 2013-04-06 広島Ruby勉強会 #03113年4月7日日曜日
  2. 2. Hakyllって? Jekyll みたいなやつ 静的サイトジェネータ13年4月7日日曜日
  3. 3. Jekyllじゃダメなん? いや、いいけど。 Haskellしたい。13年4月7日日曜日
  4. 4. Jekyll と何が違うん? Jekyll はルールが決まってる Hakyll はルールから定義できる デフォだとJekyll似てる感じの構成 カスタマイズしやすそう13年4月7日日曜日
  5. 5. Jekyll と何が違うん? コードハイライトに pygements が不要 pandoc 使いたい13年4月7日日曜日
  6. 6. 目標・要求 Markdown でかきたい Pandoc つかいたい SCSS つかいたい compass つかいたい13年4月7日日曜日
  7. 7. 資料 http://jaspervdj.be/hakyll/ http://jaspervdj.be/hakyll/tutorials/01- installation.html13年4月7日日曜日
  8. 8. インストール haskellの環境をインストール http://www.haskell.org/platform/ $ cabal install hakyll13年4月7日日曜日
  9. 9. セットアップ $ hakyll-init my-site ファイルが生成されます $ cd my-site13年4月7日日曜日
  10. 10. 作成されたファイル ├── about.rst ├── contact.markdown ├── css │ └── default.css ├── images │ └── haskell-logo.png ├── index.html ├── posts │ ├── 2012-08-12-spqr.markdown │ ├── 2012-10-07-rosa-rosa-rosam.markdown │ ├── 2012-11-28-carpe-diem.markdown │ └── 2012-12-07-tu-quoque.markdown ├── site.hs └── templates ├── archive.html ├── default.html ├── post-item.html └── post.html13年4月7日日曜日
  11. 11. コンパイル サイトを生成するためのプログラムは作る 基本的な構成の例が用意してある site.hs $ ghc --make site.hs13年4月7日日曜日
  12. 12. サイトの生成 $ ./site build HTML が生成されます13年4月7日日曜日
  13. 13. _site の中身 _site ├── about.html ├── archive.html ├── contact.html ├── css │ └── default.css ├── images │ └── haskell-logo.png ├── index.html └── posts ├── 2012-08-12-spqr.html ├── 2012-10-07-rosa-rosa-rosam.html ├── 2012-11-28-carpe-diem.html └── 2012-12-07-tu-quoque.html13年4月7日日曜日
  14. 14. サイトのプレビュー $ ./site preview $ open http://localhost:8000/13年4月7日日曜日
  15. 15. デプロイ ./site deploy 設定がいるけどね13年4月7日日曜日
  16. 16. 13年4月7日日曜日
  17. 17. あれどっかでみた?13年4月7日日曜日
  18. 18. railsdoc.eiel.info13年4月7日日曜日
  19. 19. 13年4月7日日曜日
  20. 20. 解説 生成したファイルは _site その他のメタデータ _cache13年4月7日日曜日
  21. 21. 解説 マッチするファイルがみつかる 登録した処理をする 作成したいファイル名を登録 ファイルを生成 他のファイルの情報を利用したり13年4月7日日曜日
  22. 22. 解説 依存性の扱いがよくわからない 要勉強13年4月7日日曜日
  23. 23. markdown を使う なにもしなくても使える pandocCompilerを使う13年4月7日日曜日
  24. 24. pandocを使う pandocCompiler使った13年4月7日日曜日
  25. 25. SCSS を使う マッチしたときの処理の途中で unixFilter で コマンドをフィルターに sass コマンドで。13年4月7日日曜日
  26. 26. SCSS を使う場合 http://jaspervdj.be/hakyll/reference/Hakyll-Core-UnixFilter.html にかいてあるとおりでいけます match "css/*.scss" $ do route $ setExtension "css" compile $ getResourceString >>= withItemBody (unixFilter "sass" ["-s", "--scss"]) >>= return . fmap compressCss13年4月7日日曜日
  27. 27. compassを使う いろいろやったけどうまくいかない preprocess ってのがあったけど preprocess で生成したファイルを更新 したと認識してくれない 仕方ないので rake でラッパーかいた13年4月7日日曜日
  28. 28. Rakefile desc generate site task :generate do sh ghc --make site.hs && compass compile && ./site build end13年4月7日日曜日
  29. 29. URLまわり hoge.md には hoge/ でアクセスしたい hoge.md -> hoge/indexhtml customRoute に関数を渡せばよい Identify -> FilePath な関数13年4月7日日曜日
  30. 30. 例 let addIndex x = replaceBaseName x $ (takeBaseName x) ++ "/index" route $ customRoute $ addIndex . (`replaceExtension` "html") . toFilePath13年4月7日日曜日
  31. 31. ソースコード https://github.com/eiel/raildoc.eiel.info13年4月7日日曜日
  32. 32. ご清聴ありがとうございます13年4月7日日曜日

×