summaryrefslogblamecommitdiff
path: root/book/src/main/scalatex/book/Index.scalatex
blob: 8b1de5b716f5541a08b0666617c40e029523e6e8 (plain) (tree)
1
2
3
4
5
6
7
8
9
 
                                                                           


                                                                    
 


                                                                  
 

                                                                                                                                                                                                                                                                                        
 

                                                                                                                                                                                                                                                                                                                                                                                                                                                              
 

                            
 

                                    
 

                               
 

                                
 



                                    
 

                                        
 
                                                

                                                                                                                                                                                                                                                                                                                                                                                                                
 

                                       
 

                                         
 




                                         
@sect("Hands-on Scala.js", "Writing client-side web applications in Scala")
  @div(cls:="pure-g")
    @div(cls:="pure-u-1 pure-u-md-13-24")
      @hl.ref("examples/demos/src/main/scala/Splash.scala", "var x")

    @div(cls:="pure-u-1 pure-u-md-11-24")
      @canvas(id:="canvas1", display:="block")
      @script("Splash().main(document.getElementById('canvas1'))")

  @p
    @a("Scala.js", href:="http://www.scala-js.org/") is a compiler that compiles Scala source code to equivalent Javascript code. That lets you write Scala code that you can run in a web browser, or other environments (Chrome plugins, Node.js, etc.) where Javascript is supported.

  @p
    This book contains something for all levels of experience with Scala.js: absolute beginners can get started with the Introduction and Hands-on tutorial, people who have used it before can skip ahead to the later parts of the tutorial, building a canvas app or dynamic HTML page. Intermediate users will find the chapters on cross-publishing a Scala.js library interesting, and even experienced users will find the In-depth Documention useful.

  @sect("Intro to Scala.js")
    @Intro.template

  @sect("Getting Started")
    @handson.GettingStarted.template

  @sect("Making a Canvas App")
    @handson.CanvasApp.template

  @sect("Interactive Web Pages")
    @handson.WebPage.template

  @sect("The Scala.js Command Line")
    @handson.CommandLine.template
  @sect("Cross-platform Modules")
    @handson.CrossModules.template

  @sect("Integrating Client and Server")
    @handson.ClientServer.template

@sect("Scala.js in Depth", "Exploring Scala.js")
  @p
    This half of the book dives into a few aspects of Scala.js much more deeply that the hands-on introduction does. It's aimed at someone who has already used Scala.js, and wants to explore the edge-cases or how things work under-the-cover. It's not a formal specification; rather, it's aim is to be a useful reference to read instead of (or in preparation for) digging into the implementation code.

  @sect("Javascript Interoperability")
    @indepth.JavascriptInterop.template

  @sect("Deviations from Scala-JVM")
    @indepth.SemanticDifferences.template

  @sect("The Compilation Pipeline")
    @indepth.CompilationPipeline.template

  @sect("Scala.js' Design Space")
    @indepth.DesignSpace.template