summaryrefslogtreecommitdiff
path: root/book/src/main/scala/book
diff options
context:
space:
mode:
Diffstat (limited to 'book/src/main/scala/book')
-rw-r--r--book/src/main/scala/book/BookData.scala30
-rw-r--r--book/src/main/scala/book/Main.scala39
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 = {