GitBookを出力するためのFAKE拡張の試作品を作った #FsAdvent

この記事はF# Advent Calendar 2015の30日目の記事です。

最近はやりのあの子

最近GitBookが流行っぽいですね。

GitbookIO/gitbook · GitHub

そんでもって、Scala界隈では下記リポジトリのようにtut + GitBookでいい感じにコンパイルチェックもできるような感じのようです。

xuwei-k/gitbook-sample · GitHub

これ、F# でもやりたいですね?

そして F# 界隈には FAKE と FSharp.Formatting がありますね?

よろしい、ならば連携だ。

FAKE.GitBook

pocketberserker/FAKE.GitBook · GitHub

FSharp.FormattingにはMarkdown出力がない*1ので、GitBook用のMarkdownを出力するようにします……と言えればかっこよかったのですが、まだ試作品なのでそこまでちゃんと動きません。

あと、現時点で既にわりと力尽きかけているので、本格的に使い方がコントリビューションお願いします…。

使い方

GitBookとの連携が前提になっているので、package.jsonbook.jsonが必要です。

あとは FAKE と FAKE.GitBook をロードして以下のようにスクリプトを書きます。

open Fake

Target "GenerateBook" (fun _ ->
  GitBook id (fun p -> { p with SrcDir = currentDirectory @@ "doc" }) Html
)

RunTargetOrDefault "GenerateBook"

pdfやepubを出力したいなら、Htmlの部分をPdfやEPubにすればいいです。

終わりに

以上、年末恒例の進捗帳尻合わせ回でした。

*1:Markdown、方言すぎだからあっても困る