huruyosi’s blog

プログラミングとかインフラとかのメモです。

Apache lucene で名寄せを実現する その二 PlayFrameworkのプロジェクト作成とtwitter bootstrapを組み込む

まずはPlay frameworkのプロジェクト作成

普通に play new nayoseでプロジェクトを作ります

twitter bootstrapを組み込む

必要なファイルを取得

レイアウトの枠組みとして twitter bootstrap を導入します。 http://getbootstrap.com/getting-started/#download から bootstrap-3.3.5-dist.zip をダウンロードして プロジェクトの public フォルダにコピーします。

また、examples の http://getbootstrap.com/examples/dashboard/ を利用するために、Source Codeのzipファイルにある下のファイルを使います。

  • docs/examples/dashboard/dashborad.css
  • docs/examples/dashboard/index.html
  • docs/assets/js/vender/holder.min.js
  • docs/assets/js/ie10-viewport-bug-workaround.js

さらに dashboard/index.html が参照している jQuery 1.11.3を入手しておきます。

PlayFrameworkのプロジェクトに組み込む

f:id:huruyosi:20150711150520p:plain このように配置します。

app/views/main.html を作成

この内容にします。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="${_response_encoding}">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>#{get 'title' /}</title>

    <!-- Bootstrap -->
    <link href="@{'/public/bootstrap-3.3.5/css/bootstrap.min.css'}" rel="stylesheet"  media="screen">
    <link rel="stylesheet" media="screen" href="@{'/public/stylesheets/main.css'}">
    <!-- Custom styles for this template -->
    <link href="@{'/public/bootstrap-3.3.5/dashboard.css'}" rel="stylesheet">
    #{get 'moreStyles' /}

    <link rel="shortcut icon" type="image/png" href="@{'/public/images/favicon.png'}">
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="@{'/public/bootstrap-3.3.5/assets/js/jquery.min.js'}" type="text/javascript"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="@{'/public/bootstrap-3.3.5/js/bootstrap.min.js'}" type="text/javascript" ></script>
    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <!-- Just to make our placeholder images work. Don't actually copy the next line! -->
    <script src="@{'/public/bootstrap-3.3.5/assets/js/vendor/holder.min.js'}"></script>
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="@{'/public/bootstrap-3.3.5/assets/js/ie10-viewport-bug-workaround.js'}"></script>
    #{get 'moreScripts' /}

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">lucene で名寄せ </a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav navbar-right">
            <li><a href="#">Dashboard</a></li>
            <li><a href="#">Settings</a></li>
            <li><a href="#">Profile</a></li>
            <li><a href="#">Help</a></li>
          </ul>
          <form class="navbar-form navbar-right">
            <input type="text" class="form-control" placeholder="Search...">
          </form>
        </div>
      </div>
    </nav>
        <div class="container-fluid">
      <div class="row">
        <div class="col-sm-3 col-md-2 sidebar">
          <ul class="nav nav-sidebar">
            <li class="active"><a href="#">Overview <span class="sr-only">(current)</span></a></li>
            <li><a href="#">Reports</a></li>
            <li><a href="#">Analytics</a></li>
            <li><a href="#">Export</a></li>
          </ul>
          <ul class="nav nav-sidebar">
            <li><a href="">Nav item</a></li>
            <li><a href="">Nav item again</a></li>
            <li><a href="">One more nav</a></li>
            <li><a href="">Another nav item</a></li>
            <li><a href="">More navigation</a></li>
          </ul>
          <ul class="nav nav-sidebar">
            <li><a href="">Nav item again</a></li>
            <li><a href="">One more nav</a></li>
            <li><a href="">Another nav item</a></li>
          </ul>
        </div>
        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
#{doLayout /}
        </div>
      </div>
    </div>

  </body>
</html>

app/views/Application/index.html を作成して確認

この内容にします。

#{extends 'main.html' /}
#{set title:'Home' /}

#{set 'moreStyles'}
#{/set}
#{set 'moreScripts'}
#{/set}

          <h1 class="page-header">bootstrapの組み込み確認</h1>
上のH1タグとこの文章は app/views/Application/index.html に書いてあります。

PlayFrameworkを起動して http://localhost:9000/ にアクセスすると下のような表示になります。f:id:huruyosi:20150711152755p:plain