summaryrefslogtreecommitdiff
path: root/book/src/main/scala
diff options
context:
space:
mode:
Diffstat (limited to 'book/src/main/scala')
-rw-r--r--book/src/main/scala/book/Book.scala1
-rw-r--r--book/src/main/scala/book/BookData.scala25
-rw-r--r--book/src/main/scala/book/Main.scala8
-rw-r--r--book/src/main/scala/book/Utils.scala7
4 files changed, 26 insertions, 15 deletions
diff --git a/book/src/main/scala/book/Book.scala b/book/src/main/scala/book/Book.scala
index 09be8ee..71c0d65 100644
--- a/book/src/main/scala/book/Book.scala
+++ b/book/src/main/scala/book/Book.scala
@@ -25,6 +25,7 @@ object Book {
"META-INF/resources/webjars/font-awesome/4.2.0/fonts/fontawesome-webfont.woff",
"css/side-menu.css",
"example-opt.js",
+// "example-opt.js.map",
"webpage/weather.js",
"favicon.svg",
"favicon.png"
diff --git a/book/src/main/scala/book/BookData.scala b/book/src/main/scala/book/BookData.scala
index d927b5f..ff1f23a 100644
--- a/book/src/main/scala/book/BookData.scala
+++ b/book/src/main/scala/book/BookData.scala
@@ -1,9 +1,14 @@
package book
+import java.io.File
+
import acyclic.file
import scalatags.Text.TypedTag
import scalatags.Text.all._
object BookData {
+ val cloneRoot = System.getProperty("clone.root") + "/"
+
+
lazy val javaAPIs = {
import java.io.File
def recursiveListFiles(f: File): Array[File] = {
@@ -12,17 +17,17 @@ object BookData {
}
val roots = Seq(
- "output/scala-js/javalanglib/src/main/scala",
- "output/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(root))
+ file <- recursiveListFiles(new File(cloneRoot + root))
if file != null
if file.isFile
} yield{
val path = file.getPath
- .drop(root.length + 1)
+ .drop(cloneRoot.length + root.length + 1)
.dropRight(".scala".length)
val filename = path.replace('/', '.')
val docpath = s"https://docs.oracle.com/javase/7/docs/api/$path.html"
@@ -34,12 +39,22 @@ object BookData {
val tagId = "example"+counter
counter += 1
Seq(
- t(id:=tagId, display.block),
+ t(id:=tagId, display.block, overflow.scroll),
script(s"$main(document.getElementById('$tagId'))")
)
}
+
def split = div(cls:="pure-g")
def more = div(cls:="pure-u-1 pure-u-md-13-24")
def less = div(cls:="pure-u-1 pure-u-md-11-24")
def half = div(cls:="pure-u-1 pure-u-md-1-2")
+
+
+ val hl = new Highlighter(
+ 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"
+ )
+ )
}
diff --git a/book/src/main/scala/book/Main.scala b/book/src/main/scala/book/Main.scala
index cb8ef99..4b862d0 100644
--- a/book/src/main/scala/book/Main.scala
+++ b/book/src/main/scala/book/Main.scala
@@ -19,15 +19,15 @@ object Main {
def main(args: Array[String]): Unit = {
println("Writing Book")
-
- write(Book.site, "output/index.html")
+ val outputRoot = System.getProperty("output.root") + "/"
+ write(Book.site, s"$outputRoot/index.html")
val jsFiles = Book.autoResources.filter(_.endsWith(".js")).toSet
val cssFiles = Book.autoResources.filter(_.endsWith(".css")).toSet
val miscFiles = Book.autoResources -- cssFiles -- jsFiles
for(res <- Book.manualResources ++ miscFiles) {
- copy(getClass.getResourceAsStream("/" + res), "output/" + res)
+ copy(getClass.getResourceAsStream("/" + res), outputRoot + res)
}
for((resources, dest) <- Seq(jsFiles -> "scripts.js", cssFiles -> "styles.css")) {
@@ -35,7 +35,7 @@ object Main {
io.Source.fromInputStream(getClass.getResourceAsStream("/"+res)).mkString
}
- write(blobs.mkString("\n"), "output/"+dest)
+ write(blobs.mkString("\n"), outputRoot + dest)
}
val allNames = {
diff --git a/book/src/main/scala/book/Utils.scala b/book/src/main/scala/book/Utils.scala
index 8c5c920..2c861d0 100644
--- a/book/src/main/scala/book/Utils.scala
+++ b/book/src/main/scala/book/Utils.scala
@@ -123,7 +123,7 @@ object lnk{
}
}
-object hl{
+class Highlighter(mappings: Seq[(String, String)]){
def highlight(snippet: Seq[String], lang: String) = {
val string = snippet.mkString
val lines = string.split("\n", -1)
@@ -147,11 +147,6 @@ object hl{
def diff(code: String*) = highlight(code, "diff")
def html(code: String*) = highlight(code, "xml")
- val mappings = Seq(
- "output/scala-js" -> "https://github.com/scala-js/scala-js",
- "output/workbench-example-app" -> "https://github.com/lihaoyi/workbench-example-app",
- "" -> "https://github.com/lihaoyi/hands-on-scala-js"
- )
def ref(filepath: String, start: String = "", end: String = "\n") = {
val lang = filepath.split('.').last match {