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.scala29
-rw-r--r--book/src/main/scala/book/Main.scala45
-rw-r--r--book/src/main/scala/book/Utils.scala14
3 files changed, 28 insertions, 60 deletions
diff --git a/book/src/main/scala/book/BookData.scala b/book/src/main/scala/book/BookData.scala
index 9fa4d5e..dc4d717 100644
--- a/book/src/main/scala/book/BookData.scala
+++ b/book/src/main/scala/book/BookData.scala
@@ -3,15 +3,18 @@ package book
import java.io.File
import acyclic.file
-import ammonite.all._
+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 = processWorkingDir
+ 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
@@ -48,23 +51,13 @@ object BookData {
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 scalatex.site.Highlighter {
- override val pathMappings = Seq(
+ 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"
)
- override val suffixMappings = Map(
- "scala" -> "scala",
- "sbt" -> "scala",
- "js" -> "javascript"
- )
- def scala(s: String) = this.highlight(s, "scala")
- def bash(s: String) = this.highlight(s, "bash")
- def html(s: String) = this.highlight(s, "html")
- def xml(s: String) = this.highlight(s, "xml")
- def diff(s: String) = this.highlight(s, "diff")
- def javascript(s: String) = this.highlight(s, "javascript")
}
+
+ val sect = new site.Section{}
}
diff --git a/book/src/main/scala/book/Main.scala b/book/src/main/scala/book/Main.scala
index 737c130..7586e54 100644
--- a/book/src/main/scala/book/Main.scala
+++ b/book/src/main/scala/book/Main.scala
@@ -7,12 +7,14 @@ 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 => _, _}
+import scalatex.site
+
+import scalatex.site.{Tree, Site}
+import ammonite.ops._
object Main {
- val wd = processWorkingDir
+ val wd = cwd
+
def main(args: Array[String]): Unit = {
val googleAnalytics =
"""
@@ -25,12 +27,15 @@ object Main {
| ga('send', 'pageview');
""".stripMargin
- def data = upickle.write(sect.structure)
+
val s = new Site {
- def content = Map("index.html" -> Index())
+ def content = Map("index.html" -> scalatex.Index())
- override def autoResources = super.autoResources ++ Seq(
+ override def autoResources =
+ super.autoResources ++
+ BookData.hl.autoResources ++
+ site.Sidebar.autoResources ++ Seq(
root/"META-INF"/'resources/'webjars/'pure/"0.5.0"/"grids-responsive-min.css",
root/'css/"side-menu.css",
root/"example-opt.js",
@@ -56,25 +61,9 @@ object Main {
script(raw(googleAnalytics))
)
override def bodyFrag(frag: Frag) = body(
-
- div(id:="layout")(
- a(href:="#menu", id:="menuLink", cls:="menu-link")(
- span
- ),
- div(id:="menu")
-
- ),
- div(
- id:="main",
- div(
- id:="main-box",
- cls:="scalatex-content",
- maxWidth:="840px",
- lineHeight:="1.6em",
- frag
- )
- ),
- onload:=s"scrollmenu.Controller().main($data)"
+ super.bodyFrag(frag),
+ site.Sidebar.snippet(BookData.sect.structure.children),
+ scalatex.site.Highlighter.snippet
)
}
@@ -85,7 +74,7 @@ object Main {
def rec(n: Tree[String]): Seq[String] = {
n.value +: n.children.flatMap(rec)
}
- rec(sect.structure).toSet
+ rec(BookData.sect.structure).toSet
}
val dupes = allNames.groupBy(x => x)
.values
@@ -95,7 +84,7 @@ object Main {
assert(dupes.size == 0, s"Duplicate names: $dupes")
- val dangling = sect.usedRefs -- allNames
+ val dangling = BookData.sect.usedRefs -- allNames
assert(dangling.size == 0, s"Dangling Refs: $dangling")
diff --git a/book/src/main/scala/book/Utils.scala b/book/src/main/scala/book/Utils.scala
index c62f71f..5698dd8 100644
--- a/book/src/main/scala/book/Utils.scala
+++ b/book/src/main/scala/book/Utils.scala
@@ -13,20 +13,6 @@ case class pureTable(header: Frag*){
)
}
}
-object sect extends scalatex.site.Section{
- var indent = 0
-
- override val headers: Seq[Header] = Seq(
- Header(
- (l, h, s) => div(cls:="header")(h1(h, l), br, h2(s)),
- f => div(cls:="content", f)
- ),
- Header(
- (l, h, s) => div(cls:="header")(h1(id:=munge(h), h, l), br)),
- h1, h2, h3, h4, h5, h6
- )
-}
-
object lnk{
val usedLinks = mutable.Set.empty[String]