diff options
Diffstat (limited to 'book/src/main/scala/book')
-rw-r--r-- | book/src/main/scala/book/BookData.scala | 30 | ||||
-rw-r--r-- | book/src/main/scala/book/Main.scala | 39 |
2 files changed, 35 insertions, 34 deletions
diff --git a/book/src/main/scala/book/BookData.scala b/book/src/main/scala/book/BookData.scala index 8484f10..b21f660 100644 --- a/book/src/main/scala/book/BookData.scala +++ b/book/src/main/scala/book/BookData.scala @@ -3,33 +3,31 @@ package book import java.io.File import acyclic.file +import ammonite.all._ import scalatags.Text.TypedTag import scalatags.Text.all._ object BookData { - val cloneRoot = System.getProperty("clone.root") + "/" + val wd = processWorkingDir + val cloneRoot = root/System.getProperty("clone.root").split('/') lazy val javaAPIs = { import java.io.File - def recursiveListFiles(f: File): Array[File] = { - val these = f.listFiles - these ++ these.filter(_.isDirectory).flatMap(recursiveListFiles) - } + val roots = Seq( - "scala-js/javalanglib/src/main/scala", - "scala-js/javalib/src/main/scala" + "scala-js"/'javalanglib/'src/'main/'scala, + "scala-js"/'javalib/'src/'main/'scala ) for{ root <- roots - file <- recursiveListFiles(new File(cloneRoot + root)) - if file != null - if file.isFile + file <- ls.rec! cloneRoot/root + if file.ext == "scala" } yield{ - val path = file.getPath - .drop(cloneRoot.length + root.length + 1) - .dropRight(".scala".length) + + val path = (file - cloneRoot).toString.stripSuffix(".scala") val filename = path.replace('/', '.') + val docpath = s"https://docs.oracle.com/javase/7/docs/api/$path.html" filename -> docpath } @@ -52,9 +50,9 @@ object BookData { val hl = new scalatex.site.Highlighter { override val pathMappings = Seq( - s"$cloneRoot/scala-js" -> "https://github.com/scala-js/scala-js", - s"$cloneRoot/workbench-example-app" -> "https://github.com/lihaoyi/workbench-example-app", - "" -> "https://github.com/lihaoyi/hands-on-scala-js" + cloneRoot/"scala-js" -> "https://github.com/scala-js/scala-js/blob/master", + cloneRoot/"workbench-example-app" -> "https://github.com/lihaoyi/workbench-example-app/blob/master", + wd -> "https://github.com/lihaoyi/hands-on-scala-js/blob/master" ) override val suffixMappings = Map( "scala" -> "scala", diff --git a/book/src/main/scala/book/Main.scala b/book/src/main/scala/book/Main.scala index 90b0738..9696874 100644 --- a/book/src/main/scala/book/Main.scala +++ b/book/src/main/scala/book/Main.scala @@ -3,13 +3,16 @@ import acyclic.file import java.io.InputStream import java.nio.file.{Paths, Files} +import ammonite.ops.Path + import scalatags.Text.{attrs, tags2, all} import scalatags.Text.all._ import scalatex.site.Section.Tree import scalatex.site.Site - +import ammonite.all.{rel => _, _} object Main { + val wd = processWorkingDir def main(args: Array[String]): Unit = { val googleAnalytics = """ @@ -27,22 +30,23 @@ object Main { val s = new Site { def content = Map("index.html" -> Index()) - override def autoResources = super.autoResources | Set( - "META-INF/resources/webjars/pure/0.5.0/grids-responsive-min.css", - "css/side-menu.css", - "example-opt.js", - "webpage/weather.js", - "favicon.svg", - "favicon.png" + override def autoResources = super.autoResources ++ Seq( + wd/"META-INF"/'resources/'webjars/'pure/"0.5.0"/"grids-responsive-min.css", + wd/'css/"side-menu.css", + wd/"example-opt.js", + wd/'webpage/"weather.js", + wd/"favicon.svg", + wd/"favicon.png" ) - override def manualResources = super.manualResources | Set( - "images/javascript-the-good-parts-the-definitive-guide.jpg", - "images/Hello World.png", - "images/Hello World White.png", - "images/Hello World Console.png", - "images/IntelliJ Hello.png", - "images/Dropdown.png", - "images/Scalatags Downloads.png" + + override def manualResources = super.manualResources ++ Seq( + wd/'images/"javascript-the-good-parts-the-definitive-guide.jpg", + wd/'images/"Hello World.png", + wd/'images/"Hello World White.png", + wd/'images/"Hello World Console.png", + wd/'images/"IntelliJ Hello.png", + wd/'images/"Dropdown.png", + wd/'images/"Scalatags Downloads.png" ) override def headFrags = super.headFrags ++ Seq( meta(charset:="utf-8"), @@ -72,10 +76,9 @@ object Main { ), onload:=s"Controller().main($data)" ) - } - s.renderTo(System.getProperty("output.root") + "/") + s.renderTo(Path(System.getProperty("output.root"))) val allNames = { |