diff options
Diffstat (limited to 'dottydoc/js/src/DottyDoc.scala')
-rw-r--r-- | dottydoc/js/src/DottyDoc.scala | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/dottydoc/js/src/DottyDoc.scala b/dottydoc/js/src/DottyDoc.scala new file mode 100644 index 000000000..33adc0aca --- /dev/null +++ b/dottydoc/js/src/DottyDoc.scala @@ -0,0 +1,44 @@ +package dotty.tools.dottydoc +package js + +import scala.scalajs.js +import js.Dynamic.global +import js.JSApp +import js.annotation.{ JSExport, JSName } +import org.scalajs.dom +import model.Entities._ + +@JSExport object DottyDocJS { + @JSExport def main(target: dom.html.Div) = { + global.document.title = "Dotty " + ParsedIndex.currentEntity.path.mkString(".") + target.appendChild(html.Index.layout(ParsedIndex.currentEntity).render) + hljs.initHighlightingOnLoad() + } +} + +object ParsedIndex { + import prickle._ + import model.Entities._ + + val packages: Map[String, Package] = Unpickle[Map[String, Package]] + .fromString(js.JSON.stringify(Index.packages)) + .toOption + .getOrElse(Map.empty) + + val currentEntity: Entity = Unpickle[Entity] + .fromString(js.JSON.stringify(Index.currentEntity)) + .toOption + .getOrElse(NonEntity) +} + +@js.native +object Index extends js.Object { + def packages: js.Any = js.native + + def currentEntity: js.Any = js.native +} + +@js.native +object hljs extends js.Object { + def initHighlightingOnLoad(): js.Any = js.native +} |