Базовый шаблон XML


Я в настоящее время изучает основы игры. Я собираюсь заменить предложенную систему шаблонов, с помощью мощной обработки XML библиотеки на Scala. Вот что я пришел с:

import scala.xml._
import play.templates._
import play.mvc.results.ScalaAction

object Gui {

  def asset (file:String) = "/public/"+ file

  val cssIncludes = "main.css" ::
    "jquery-ui-1.8.16.custom.css" ::
    "dynaTree/skin/ui.dynatree.css" ::
    Nil

  val jsIncludes = "jquery-1.6.2.min.js" :: 
    "jquery.cookie.js" ::
    "jquery-ui-1.8.16.custom.min.js"::
    "jquery.dynatree.min.js" ::
    Nil  

  def pageBase(title: String = "", jsScript: Option[String])(body: => Seq[Node]) = {
    <html>
      <head>{
        val nodes :Seq[Node] = <title>{ title }</title>::
          (for (css <- cssIncludes) yield 
            <link rel="stylesheet" href={ asset("stylesheets/" + css) }></link>
          ):::
          (for (js <- jsIncludes) yield 
            <script src={asset("javascripts/" + js)} type="text/javascript"></script>
          ):::(
        <link rel="shortcut icon" type="image/png" href="public/images/favicon.png"></link> 
        <script type="text/javascript">{jsScript getOrElse ""}</script>).toList
        nodes
      }</head>
      <body>{ body }</body>
    </html>
  }
}

Это, кажется, работает хорошо и может стать основой для более сложных потребностей.

Я бы быть заинтересованы таким образом, чтобы улучшить pageBase способ. Я не нашел чистый способ создания таблицы стилей и JavaScript включения без ::: оператор. (Мне удалось получить код для компиляции, но только последнее выражение дает результат при исполнении)

Вы могли бы поделиться лучший способ, чтобы написать его, или показать свои внедрения, если вы взяли подобный путь?

Я все еще ищу лучший способ справиться с созданием путь (для актива и действий), что имитирует маршрутизации и обратной маршрутизации предлагается в шаблонах.



345
8
задан 17 октября 2011 в 06:10 Источник Поделиться
Комментарии