Bootlog详解 Supporting tagline

bootlog   document  

bootlog

bootlog是基于sbt、twirl、pegdown、bootstrap和bootflat创建的一个静态博客生成器,目标用户是scala、java以及github使用者。

bootlog提供了两个示例,分别展示了bootstrap主题bootflat的主题。 如果想快速创建自己的博客,可以参考这两种博客中的介绍。

使用方法

在你的project/plugins.sbt中添加:

addSbtPlugin("com.github.bootlog" % "bootlog" % "0.1.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "0.8.1")

resolvers += "jgit-repo" at "http://download.eclipse.org/jgit/maven"

addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.5.4")

注意:这里支持的sbt版本是0.13

然后在你的build.sbt文件中启动BootLog的插件,类似这样:

lazy val bootlogDemo = (project in file("."))
  .enablePlugins(BootLogPlugin)

然后加上sbt-sitesbt-ghpages的配置就可以使用了

site.settings

// KEEP This, or else fonts file will not be copied by sbt-ghpages
includeFilter in SiteKeys.makeSite := "*.html" | "*.css" | "*.png" | "*.jpg" | "*.gif" | "*.js" | "*.swf" | "*.ttf" | "*.woff" | "*.woff2"

ghpages.settings

git.remoteRepo := "https://github.com/{my github account}/{my blog repo}.git"

conf\application.conf中写入自己的参数,在_content\_posts中编辑自己的文章。 完成后进入sbt,运行makeMD生成网站,使用previewSite预览自己的网站,最后使用ghpagesPushSite将网站发布到github。

配置参数

sbt Setting

bootlog提供的sbt setting如下,可以通过修改build.sbt来修改这些配置:

val bootlogConfigFile = settingKey[File]("the user config that will be rendered in generated pages")
val generateDir = settingKey[File]("the output dir for bootlog.")
val assetResourceMapping = settingKey[Seq[(String, String)]]("the user config that will be rendered in generated pages")
val previewDrafts = settingKey[Boolean]("if this is true, then generated site will include the posts in _drafts")

bootlogConfigFile

bootlog读取的配置文件,默认是conf\application.conf

要设置为根目录下的blog.conf,可以这样修改:bootlogConfigFile := baseDirectory.value / "blog.conf"

generateDir

makeMD输出的目录,默认是src/site,这是为了能无缝衔接sbt-site

如果要修改generateDir,则需要使其输出可以配sbt-site读取。 可以使用generateDir := SiteKeys.siteSourceDirectory.value将两个配置连接起来。

assetResourceMapping

assetResourceMapping用来保存网站需要的静态文件,如js、css、字体等。

这个映射的key将要被拷贝到的文件;而value是资源的位置,如果以/开头,则将在类路径中查找,否则将在工程目录中查找。

为了减少用户的配置,bootlog把默认的资源都打包在插件或插件依赖的webjar中。

  "org.webjars.bower" % "bootstrap" % "3.3.6",
  "org.webjars.bower" % "Bootflat" % "2.0.4",
  "org.webjars.bower" % "jquery" % "1.11.3",
  "org.webjars.bower" % "octicons" % "3.1.0"

要使用打包在webjar中的资源,可以像下面这样:

assetResourceMapping += ("stylesheets/bootstrap.3.3.6.min.css" -> "/META-INF/resources/webjars/bootstrap/3.3.6/dist/css/bootstrap.min.css")

如果用户有自定义的资源文件(比如使用bower下载的资源文件),可以像下面这样使用:

assetResourceMapping += ("stylesheets/style.css" -> "assets/css/style.css"),

此时将把工程目录的assets/css/style.css文件,拷贝到generateDir / "stylesheets/style.css"

previewDrafts

如果需要预览_content/_drafts目录下的markdown文件,则需要修改该配置:previewDrafts := true

conf 文件介绍

bootlog使用typesafe config作为配置文件库,其格式很既灵活有易读,参见HOCON

bootlog支持的配置详见源代码,需要重点关注的是:

  • rootPath:该静态网站将被放在主站的哪个目录下。
  • production_url:该静态网站的主站链接

具体使用示例,可以参考bootlogDemobootlogFlatDemo

许可证

Apache License Version 2.0