summaryrefslogtreecommitdiff
path: root/book/src/main/scala/book/BookData.scala
blob: dc4d717d0552c15e2dc431c7923887669362315c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package book

import java.io.File

import acyclic.file
import ammonite.ops._
import ammonite.ops.Path
import scalatags.Text.TypedTag
import scalatags.Text.all._
import scalatex.site
import scalatex.site.Highlighter

object BookData {
  val wd = cwd
  val cloneRoot = Path(System.getProperty("clone.root"))
  val lnk = book.lnk
  val pureTable = book.pureTable
  lazy val javaAPIs = {
    import java.io.File


    val roots = Seq(
      "scala-js"/'javalanglib/'src/'main/'scala,
      "scala-js"/'javalib/'src/'main/'scala
    )
    for{
      root <- roots
      file <- ls.rec! cloneRoot/root
      if file.ext == "scala"
    } yield{

      val path = (file - cloneRoot - root).toString.stripSuffix(".scala")
      val filename = path.replace('/', '.')

      val docpath = s"https://docs.oracle.com/javase/7/docs/api/$path.html"
      filename -> docpath
    }
  }
  var counter = 0
  def example(t: TypedTag[String], main: String) = {
    val tagId = "example"+counter
    counter += 1
    Seq(
      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")

  lazy val hl = new Highlighter {
    override def pathMappings = Seq(
      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"
    )
  }

  val sect = new site.Section{}
}