<!DOCTYPE html>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<html data-th-with="page=${request.adaptTo(@org.apache.sling.samples.fling.page.Page@class)}">
<head data-th-replace="/apps/fling/page/fragments/head.html::default">
</head>
<body>
<div class="container">
  <nav class="nav-main">
    <div class="pull-left">
      <ul class="breadcrumb" style="direction: rtl" data-th-replace="/apps/fling/page/fragments/navigation.html::breadcrumb"></ul>
    </div>
    <ul class="nav nav-pills" role="tablist" data-th-replace="/apps/fling/page/fragments/navigation.html::children"></ul>
  </nav>
  <div class="panel panel-primary">
    <div class="panel-heading">
      <span data-th-text="${page.title}">SIMPLE PAGE</span>
    </div>
    <div class="panel-body">
      <div data-th-utext="${page.content}"><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p><pre>At vero eos et accusam et justo duo dolores et ea rebum.</pre></div>
      <img src="../../../../assets/images/feather.png" width="355" height="111" data-th-attr="src='/fling/assets/images/feather.png'"/>
    </div>
    <div class="panel-footer" data-th-replace="/apps/fling/page/fragments/panel.html::footer"></div>
  </div>
</div>
</body>
</html>
