diff options
Diffstat (limited to 'book/src/main/scala/book')
-rw-r--r-- | book/src/main/scala/book/BookData.scala | 29 | ||||
-rw-r--r-- | book/src/main/scala/book/Main.scala | 45 | ||||
-rw-r--r-- | book/src/main/scala/book/Utils.scala | 14 |
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] |